Completed
Push — master ( 87c4cc...6f3280 )
by Sergey
03:25
created

Api::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
c 2
b 0
f 0
dl 0
loc 4
rs 10
cc 1
eloc 2
nc 1
nop 1
1
<?php
2
3
namespace seregazhuk\Favro\Api;
4
5
use seregazhuk\Favro\Api\Endpoints\Cards;
6
use seregazhuk\Favro\Api\Endpoints\Tasks;
7
use seregazhuk\Favro\Api\Endpoints\Users;
8
use seregazhuk\Favro\Api\Endpoints\Columns;
9
use seregazhuk\Favro\Api\Endpoints\Widgets;
10
use seregazhuk\Favro\Api\Endpoints\Endpoint;
11
use seregazhuk\Favro\Api\Endpoints\Collections;
12
use seregazhuk\Favro\Api\Endpoints\Organizations;
13
use seregazhuk\Favro\Api\Endpoints\EndpointsContainer;
14
15
/**
16
 * Class Api
17
 *
18
 * @property Organizations $organizations
19
 * @property Users $users
20
 * @property Collections $collections
21
 * @property Widgets $widgets
22
 * @property Columns $columns
23
 * @property Cards $cards
24
 * @property Tasks $tasks
25
 */
26
class Api
27
{
28
    /**
29
     * @var EndpointsContainer
30
     */
31
    protected $endpointsContainer;
32
33
    /**
34
     * @var string
35
     */
36
    protected $organizationId;
37
38
    public function __construct(EndpointsContainer $endpointsContainer)
39
    {
40
        $this->endpointsContainer = $endpointsContainer;
41
    }
42
43
    /**
44
     * Magic method to access different endpoints.
45
     *
46
     * @param string $endpoint
47
     *
48
     * @return Endpoint
49
     */
50
    public function __get($endpoint)
51
    {
52
        $endpoint = $this->endpointsContainer->resolve($endpoint);
53
54
        if (method_exists($endpoint, 'setOrganizationId')) {
55
            $endpoint->setOrganizationId($this->organizationId);
56
        }
57
58
        return $endpoint;
59
    }
60
61
    /**
62
     * @param string $organization
63
     * @return $this
64
     */
65
    public function setOrganization($organization)
66
    {
67
        $organizations = $this->organizations->getAll();
68
        foreach ($organizations['entities'] as $entity) {
69
            if($entity['name'] == $organization) {
70
                $this->organizationId = $entity['organizationId'];
71
            }
72
        }
73
74
        return $this;
75
    }
76
77
    /**
78
     * @param int $organizationId
79
     * @return $this
80
     */
81
    public function setOrganizationId($organizationId)
82
    {
83
        $this->organizationId = $organizationId;
0 ignored issues
show
Documentation Bug introduced by
The property $organizationId was declared of type string, but $organizationId is of type integer. Maybe add a type cast?

This check looks for assignments to scalar types that may be of the wrong type.

To ensure the code behaves as expected, it may be a good idea to add an explicit type cast.

$answer = 42;

$correct = false;

$correct = (bool) $answer;
Loading history...
84
85
        return $this;
86
    }
87
88
89
    /**
90
     * @return string
91
     */
92
    public function getOrganizationId()
93
    {
94
        return $this->organizationId;
95
    }
96
}