Completed
Pull Request — master (#4)
by Ruben
03:24
created

Guzzle5ApiClientFactory::createHttpClient()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 6
CRAP Score 1.037

Importance

Changes 0
Metric Value
dl 0
loc 9
ccs 6
cts 9
cp 0.6667
rs 9.6666
c 0
b 0
f 0
cc 1
eloc 6
nc 1
nop 3
crap 1.037
1
<?php
2
3
namespace MovingImage\Client\VMPro\Factory;
4
5
use GuzzleHttp\Client;
6
use GuzzleHttp\ClientInterface;
7
use MovingImage\Client\VMPro\ApiClient\Guzzle5ApiClient;
8
use MovingImage\Client\VMPro\Manager\TokenManager;
9
use MovingImage\Client\VMPro\Subscriber\TokenSubscriber;
10
11
/**
12
 * Class Guzzle5.
13
 *
14
 * @author Ruben Knol <[email protected]>
15
 */
16
class Guzzle5ApiClientFactory extends AbstractApiClientFactory
17
{
18
    /**
19
     * Use the Guzzle5-specific API client class.
20
     *
21
     * @return string
22
     */
23 3
    protected function getApiClientClass()
24
    {
25 3
        return Guzzle5ApiClient::class;
26
    }
27
28 3
    protected function getGuzzleBaseUriOptionKey()
29
    {
30 3
        return 'base_url';
31
    }
32
33
    /**
34
     * Instantiate a TokenSubscriber instance with a TokenManager.
35
     *
36
     * @param TokenManager $tokenManager
37
     *
38
     * @return TokenSubscriber
39
     */
40 6
    public function createTokenSubscriber(TokenManager $tokenManager)
41
    {
42 6
        return new TokenSubscriber($tokenManager);
43
    }
44
45
    /**
46
     * Method to instantiate a HTTP client.
47
     *
48
     * @param string $baseUri
49
     * @param array  $subscribers
50
     * @param array  $options
51
     *
52
     * @return ClientInterface
53
     */
54 3
    public function createHttpClient($baseUri, array $subscribers = [], array $options = [])
55
    {
56 3
        return new Client(array_merge([
57 3
            'base_url' => $baseUri,
58
            'defaults' => [
59 3
                'subscribers' => $subscribers,
60 2
            ],
61 2
        ], $options));
62
    }
63
}
64