Completed
Branch v4.x (236e76)
by Dmitry
40:20 queued 32s
created

Credentials::getUseOperatorUnits()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 0
dl 0
loc 4
rs 10
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Gladyshev\Yandex\Direct;
6
7
final class Credentials implements \Gladyshev\Yandex\Direct\CredentialsInterface
8
{
9
    private $token;
10
    private $masterToken;
11
    private $login;
12
    private $useOperatorUnits;
13
    private $isAgency;
14
    private $language;
15
    private $baseUrl;
16
17
    /**
18
     * Credentials constructor.
19
     *
20
     * @param string $token                 # OAuth2 токен доступа
21
     * @param string|null $masterToken      # Токен для финансовых операций (не поддерживается API V5)
22
     * @param string|null $clientLogin      # Логин клиента Агентства (если isAgency = true, иначе NULL)
23
     * @param bool|null $useOperatorUnits   # Расходовать баллы агентства (если isAgency = true, иначе NULL)
24
     * @param bool $isAgency                # Аккаунт Агентства или Клиента
25
     * @param string $language              # Язык в тексте ответов
26
     * @param string $baseUrl               # URL сервера API
27
     */
28
    public function __construct(
29
        string $token,
30
        ?string $masterToken,
31
        ?string $clientLogin,
32
        ?bool $useOperatorUnits,
33
        bool $isAgency,
34
        string $language,
35
        string $baseUrl
36
    ) {
37
        $this->token = $token;
38
        $this->masterToken = $masterToken;
39
        $this->login = $clientLogin;
40
        $this->useOperatorUnits = $useOperatorUnits;
41
        $this->language = $language;
42
        $this->baseUrl = $baseUrl;
43
        $this->isAgency = $isAgency;
44
    }
45
46
    public static function agency(
47
        string $token,
48
        ?string $masterToken = null,
49
        ?string $login = null,
50
        bool $useOperatorUnits = true,
51
        string $language = self::LANGUAGE_RU
52
    ): self {
53
        return new self(
54
            $token,
55
            $masterToken,
56
            $login,
57
            $useOperatorUnits,
58
            true,
59
            $language,
60
            self::DEFAULT_BASE_URL
61
        );
62
    }
63
64
    public static function agencySandbox(
65
        string $token,
66
        ?string $masterToken = null,
67
        ?string $login = null,
68
        bool $useOperatorUnits = true,
69
        string $language = self::LANGUAGE_RU
70
    ): self {
71
        return new self(
72
            $token,
73
            $masterToken,
74
            $login,
75
            $useOperatorUnits,
76
            true,
77
            $language,
78
            self::DEFAULT_SANDBOX_BASE_URL
79
        );
80
    }
81
82
    public static function client(
83
        string $token,
84
        ?string $masterToken = null,
85
        string $language = self::LANGUAGE_RU
86
    ): self {
87
        return new self(
88
            $token,
89
            $masterToken,
90
            null,
91
            null,
92
            false,
93
            $language,
94
            self::DEFAULT_BASE_URL
95
        );
96
    }
97
98
    public static function clientSandbox(
99
        string $token,
100
        ?string $masterToken = null,
101
        string $language = self::LANGUAGE_RU
102
    ): self {
103
        return new self(
104
            $token,
105
            $masterToken,
106
            null,
107
            null,
108
            false,
109
            $language,
110
            self::DEFAULT_SANDBOX_BASE_URL
111
        );
112
    }
113
114
    /**
115
     * @return string
116
     */
117
    public function getToken(): string
118
    {
119
        return $this->token;
120
    }
121
122
    /**
123
     * @return string|null
124
     */
125
    public function getMasterToken(): ?string
126
    {
127
        return $this->masterToken;
128
    }
129
130
    /**
131
     * @return string|null
132
     */
133
    public function getClientLogin(): ?string
134
    {
135
        return $this->login;
136
    }
137
138
    /**
139
     * @return bool|null
140
     */
141
    public function getUseOperatorUnits(): ?bool
142
    {
143
        return $this->useOperatorUnits;
144
    }
145
146
    /**
147
     * @return string
148
     */
149
    public function getLanguage(): string
150
    {
151
        return $this->language;
152
    }
153
154
    /**
155
     * @return string
156
     */
157
    public function getBaseUrl(): string
158
    {
159
        return $this->baseUrl;
160
    }
161
162
    /**
163
     * @return bool
164
     */
165
    public function isAgency(): bool
166
    {
167
        return $this->isAgency;
168
    }
169
}
170