Completed
Pull Request — master (#29)
by Hugo
01:27
created

CallTrackings::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Yproximite\WannaSpeakBundle\Api;
6
7
use Yproximite\WannaSpeakBundle\HttpClientInterface;
8
9
class CallTrackings implements CallTrackingsInterface
10
{
11
    private $client;
12
13
    public function __construct(HttpClientInterface $client)
14
    {
15
        $this->client = $client;
16
    }
17
18
    public function getNumbers(?string $method = null, array $additionalArguments = []): array
19
    {
20
        $method = $method ?? static::NUMBERS_LIST;
21
22
        if (!in_array($method, $allowedMethods = [static::NUMBERS_LIST, self::NUMBERS_AVAILABLE, self::NUMBERS_DELETED], true)) {
23
            throw new \InvalidArgumentException(sprintf('Method "%s" for listing numbers is valid, valid values are "%s".', $method, implode('", "', $allowedMethods)));
24
        }
25
26
        $response = $this->client->request(self::API, $method, $additionalArguments);
27
28
        return $response->toArray(); // @phpstan-ignore-line
29
    }
30
31
    public function add(string $phoneDid, string $phoneDestination, string $name, array $additionalArguments = []): array
32
    {
33
        $arguments = array_merge($additionalArguments, [
34
            'did'         => $phoneDid,
35
            'destination' => $phoneDestination,
36
            'name'        => $name,
37
        ]);
38
39
        $response = $this->client->request(self::API, 'add', $arguments);
40
41
        return $response->toArray(); // @phpstan-ignore-line
42
    }
43
44
    public function modify(string $phoneDid, array $additionalArguments = []): array
45
    {
46
        $arguments = array_merge($additionalArguments, [
47
            'did' => $phoneDid,
48
        ]);
49
50
        $response = $this->client->request(self::API, 'modify', $arguments);
51
52
        return $response->toArray(); // @phpstan-ignore-line
53
    }
54
55
    public function delete(string $phoneDid, array $additionalArguments = []): array
56
    {
57
        $arguments = array_merge($additionalArguments, [
58
            'did' => $phoneDid,
59
        ]);
60
61
        $response = $this->client->request(self::API, 'delete', $arguments);
62
63
        return $response->toArray(); // @phpstan-ignore-line
64
    }
65
66
    public function expires(string $phoneDid, \DateTimeInterface $when, array $additionalArguments = []): array
67
    {
68
        $arguments = array_merge($additionalArguments, [
69
            'did'      => $phoneDid,
70
            'stopdate' => $when->format('Y-m-d'),
71
        ]);
72
73
        $response = $this->client->request(self::API, 'modify', $arguments);
74
75
        return $response->toArray(); // @phpstan-ignore-line
76
    }
77
}
78