Completed
Push — master ( 1fe24e...c4923e )
by Pieter
03:31
created

Configuration::getSslServerAddresses()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 1
c 0
b 0
f 0
nc 1
nop 0
dl 0
loc 3
ccs 2
cts 2
cp 1
crap 1
rs 10
1
<?php declare(strict_types=1);
2
3
namespace ekinhbayar\GitAmp;
4
5
use League\Uri\Contracts\UriInterface;
6
use Monolog\Logger;
7
use ekinhbayar\GitAmp\Github\Token;
8
9
final class Configuration
10
{
11
    private int $logLevel = Logger::INFO;
12
13
    /** @var array<UriInterface> */
14
    private array $websocketAddresses = [];
15
16
    /** @var array<ServerAddress> */
17
    private array $bind = [];
18
19
    /** @var array<string> */
20
    private array $specialRepositories = [];
21
22
    /** @var array<SslServerAddress> */
23
    private array $bindSsl = [];
24
25
    private Token $githubToken;
26
27 14
    public function __construct(Token $githubToken)
28
    {
29 14
        $this->githubToken = $githubToken;
30
    }
31
32 1
    public function setLogLevel(int $logLevel): self
33
    {
34 1
        $this->logLevel = $logLevel;
35
36 1
        return $this;
37
    }
38
39 2
    public function getLogLevel(): int
40
    {
41 2
        return $this->logLevel;
42
    }
43
44 9
    public function addWebsocketAddress(UriInterface $address): self
45
    {
46 9
        $this->websocketAddresses[] = $address;
47
48 9
        return $this;
49
    }
50
51 3
    public function websocketAddressExists(string $origin): bool
52
    {
53 3
        foreach ($this->websocketAddresses as $websocketAddress) {
54 3
            if ((string) $websocketAddress === $origin) {
55 2
                return true;
56
            }
57
        }
58
59 2
        return false;
60
    }
61
62 9
    public function bind(ServerAddress $address): self
63
    {
64 9
        $this->bind[] = $address;
65
66 9
        return $this;
67
    }
68
69 1
    public function bindSsl(SslServerAddress $sslServerAddress): self
70
    {
71 1
        $this->bindSsl[] = $sslServerAddress;
72
73 1
        return $this;
74
    }
75
76
    /**
77
     * @return array<ServerAddress>
78
     */
79 2
    public function getServerAddresses(): array
80
    {
81 2
        return $this->bind;
82
    }
83
84
    /**
85
     * @return array<SslServerAddress>
86
     */
87 2
    public function getSslServerAddresses(): array
88
    {
89 2
        return $this->bindSsl;
90
    }
91
92
    public function addSpecialRepository(string $repository): self
93
    {
94
        $this->specialRepositories[] = $repository;
95
96
        return $this;
97
    }
98
99
    /**
100
     * @return array<string>
101
     */
102 1
    public function getSpecialRepositories(): array
103
    {
104 1
        return $this->specialRepositories;
105
    }
106
107 2
    public function getGithubToken(): Token
108
    {
109 2
        return $this->githubToken;
110
    }
111
}
112