testmonitor /
donedone-client
| 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
Bug
introduced
by
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
Loading history...
|
|||||||
| 66 | 1 | 'json' => $this->toDoneDoneTask($task), |
|||||
| 67 | 1 | ]); |
|||||
| 68 | |||||||
| 69 | 1 | return $this->task($result['id'], $accountId, $projectId); |
|||||
| 70 | } |
||||||
| 71 | } |
||||||
| 72 |