Issues (8)

src/Actions/ManagesTasks.php (2 issues)

Labels
Severity
1
<?php
2
3
namespace TestMonitor\DoneDone\Actions;
4
5
use TestMonitor\DoneDone\Resources\Task;
6
use TestMonitor\DoneDone\Transforms\TransformsTasks;
7
use TestMonitor\DoneDone\Responses\PaginatedResponse;
8
9
trait ManagesTasks
10
{
11
    use TransformsTasks;
12
13
    /**
14
     * Get a list of of tasks.
15
     *
16
     * @param int $accountId
17
     * @param int $projectId
18
     * @param string $query
19
     * @param int $page
20
     * @return \TestMonitor\DoneDone\Responses\PaginatedResponse
21
     */
22 5
    public function tasks(int $accountId, int $projectId, string $query = '', int $page = 1): PaginatedResponse
23
    {
24 5
        $result = $this->get("{$accountId}/tasks/all", [
0 ignored issues
show
It seems like get() must be provided by classes using this trait. How about adding it as abstract method to this trait? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

24
        /** @scrutinizer ignore-call */ 
25
        $result = $this->get("{$accountId}/tasks/all", [
Loading history...
25 5
            'query' => [
26 5
                'internal_project_ids' => $projectId,
27 5
                'search_term' => $query,
28 5
                'page' => $page,
29 5
            ],
30 5
        ]);
31
32 1
        return new PaginatedResponse(
33 1
            items: array_map(fn ($task) => $this->fromDoneDoneTask($task), $result['listTasks']) ?? [],
34 1
            total: $result['totalTaskCount'],
35 1
            perPage: $result['itemsPerPage'],
36 1
            currentPage: $result['page'],
37 1
        );
38
    }
39
40
    /**
41
     * Get a single task.
42
     *
43
     * @param int $id
44
     * @param int $accountId
45
     * @param int $projectId
46
     * @return Task
47
     */
48 2
    public function task(int $id, int $accountId, int $projectId): Task
49
    {
50 2
        $result = $this->get("{$accountId}/internal-projects/{$projectId}/tasks/{$id}");
51
52 2
        return $this->fromDoneDoneTask($result);
53
    }
54
55
    /**
56
     * Create a new task.
57
     *
58
     * @param \TestMonitor\DoneDone\Resources\Task $task
59
     * @param int $accountId
60
     * @param int $projectId
61
     * @return Task
62
     */
63 1
    public function createTask(Task $task, int $accountId, int $projectId)
64
    {
65 1
        $result = $this->post("{$accountId}/internal-projects/{$projectId}/tasks/", [
0 ignored issues
show
It seems like post() must be provided by classes using this trait. How about adding it as abstract method to this trait? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

65
        /** @scrutinizer ignore-call */ 
66
        $result = $this->post("{$accountId}/internal-projects/{$projectId}/tasks/", [
Loading history...
66 1
            'json' => $this->toDoneDoneTask($task),
67 1
        ]);
68
69 1
        return $this->task($result['id'], $accountId, $projectId);
70
    }
71
}
72