Completed
Branch v4.x (712f3d)
by Dmitry
04:56
created

ClientCredentials   A

Complexity

Total Complexity 10

Size/Duplication

Total Lines 109
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
dl 0
loc 109
ccs 0
cts 65
cp 0
rs 10
c 0
b 0
f 0
wmc 10
lcom 0
cbo 0

10 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 11 1
A build() 0 13 1
A buildForSandbox() 0 13 1
A getToken() 0 4 1
A getMasterToken() 0 4 1
A getLanguage() 0 4 1
A getBaseUrl() 0 4 1
A getClientLogin() 0 4 1
A getUseOperatorUnits() 0 4 1
A isAgency() 0 4 1
1
<?php
2
declare(strict_types=1);
3
4
namespace Gladyshev\Yandex\Direct;
5
6
final class ClientCredentials implements CredentialsInterface
7
{
8
    /**
9
     * @var string
10
     */
11
    private $token;
12
13
    /**
14
     * @var string|null
15
     */
16
    private $masterToken;
17
18
    /**
19
     * @var string
20
     */
21
    private $language;
22
23
    /**
24
     * @var string
25
     */
26
    private $baseUrl;
27
28
    public function __construct(
29
        string $token,
30
        ?string $masterToken,
31
        string $language,
32
        string $baseUrl
33
    ) {
34
        $this->token = $token;
35
        $this->masterToken = $masterToken;
36
        $this->language = $language;
37
        $this->baseUrl = $baseUrl;
38
    }
39
40
    public static function build(
41
        string $token,
42
        ?string $masterToken = null,
43
        string $language = self::LANGUAGE_RU,
44
        string $baseUrl = self::DEFAULT_BASE_URL
45
    ): self {
46
        return new self(
47
            $token,
48
            $masterToken,
49
            $language,
50
            $baseUrl
51
        );
52
    }
53
54
    public static function buildForSandbox(
55
        string $token,
56
        ?string $masterToken = null,
57
        string $language = self::LANGUAGE_RU,
58
        string $baseUrl = self::DEFAULT_SANDBOX_BASE_URL
59
    ): self {
60
        return new self(
61
            $token,
62
            $masterToken,
63
            $language,
64
            $baseUrl
65
        );
66
    }
67
68
    /**
69
     * @return string
70
     */
71
    public function getToken(): string
72
    {
73
        return $this->token;
74
    }
75
76
    /**
77
     * @return string|null
78
     */
79
    public function getMasterToken(): ?string
80
    {
81
        return $this->masterToken;
82
    }
83
84
    /**
85
     * @return string
86
     */
87
    public function getLanguage(): string
88
    {
89
        return $this->language;
90
    }
91
92
    /**
93
     * @return string
94
     */
95
    public function getBaseUrl(): string
96
    {
97
        return $this->baseUrl;
98
    }
99
100
    public function getClientLogin(): ?string
101
    {
102
        return null;
103
    }
104
105
    public function getUseOperatorUnits(): ?bool
106
    {
107
        return null;
108
    }
109
110
    public function isAgency(): bool
111
    {
112
        return false;
113
    }
114
}
115