Passed
Push — master ( 9b3fb0...881b80 )
by Jérémy
02:18
created

Workspace   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 29
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 10
c 1
b 0
f 0
dl 0
loc 29
rs 10
wmc 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A workspaces() 0 9 1
A createWorkspace() 0 5 1
A __construct() 0 3 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace JDecool\Clockify\Api\Workspace;
6
7
use JDecool\Clockify\{
8
    Client,
9
    Model\WorkspaceDto
10
};
11
12
class Workspace
13
{
14
    private $http;
15
16
    public function __construct(Client $http)
17
    {
18
        $this->http = $http;
19
    }
20
21
    /**
22
     * @return WorkspaceDto[]
23
     */
24
    public function workspaces(): array
25
    {
26
        $data = $this->http->get('/workspaces');
27
28
        return array_map(
29
            static function(array $workspace): WorkspaceDto {
30
                return WorkspaceDto::fromArray($workspace);
31
            },
32
            $data
33
        );
34
    }
35
36
    public function createWorkspace(WorkspaceRequest $request): WorkspaceDto
37
    {
38
        $data = $this->http->post('/workspaces', $request->toArray());
39
40
        return WorkspaceDto::fromArray($data);
41
    }
42
}
43