Completed
Push — master ( 10b44f...a11b2a )
by Thijs
17:21 queued 17:19
created

TransformsTasks   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 35
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 2
Bugs 0 Features 0
Metric Value
eloc 16
c 2
b 0
f 0
dl 0
loc 35
ccs 16
cts 16
cp 1
rs 10
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A toDoneDoneTask() 0 8 1
A fromDoneDoneTask() 0 13 1
1
<?php
2
3
namespace TestMonitor\DoneDone\Transforms;
4
5
use TestMonitor\DoneDone\Validator;
6
use TestMonitor\DoneDone\Resources\Task;
7
8
trait TransformsTasks
9
{
10
    /**
11
     * @param \TestMonitor\DoneDone\Resources\Task $task
12
     * @return array
13
     */
14 1
    protected function toDoneDoneTask(Task $task): array
15
    {
16
        return [
17 1
            'title' => $task->title,
18 1
            'description' => $task->description,
19 1
            'statusID' => $task->status,
20 1
            'priorityID' => $task->priority,
21 1
            'assigneeID' => $task->assignee ?? null,
22
        ];
23
    }
24
25
    /**
26
     * @param array $task
27
     *
28
     * @return \TestMonitor\DoneDone\Resources\Task
29
     */
30 3
    protected function fromDoneDoneTask($task): Task
31
    {
32 3
        Validator::isArray($task);
33 3
        Validator::keysExists($task, ['id', 'status', 'priority']);
34
35 3
        return new Task([
36 3
            'id' => $task['id'],
37 3
            'title' => $task['title'] ?? '',
38 3
            'description' => $task['description'] ?? '',
39
40 3
            'status' => ['id' => $task['status']['id'], 'name' => $task['status']['name']],
41 3
            'priority' => ['id' => $task['priority']['id'], 'name' => $task['priority']['name']],
42 3
            'assignee' => ['id' => $task['assignee']['id'] ?? null, 'name' => $task['assignee']['name'] ?? null],
43
        ]);
44
    }
45
}
46