Passed
Push — master ( 86ee69...c3f643 )
by Rafal
02:42 queued 27s
created

SpotifyApiConnectFactory::createSpotifyApiAuth()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 0
dl 0
loc 4
rs 10
c 0
b 0
f 0
1
<?php declare(strict_types=1);
2
3
namespace SpotifyApiConnect;
4
5
use SpotifyApiConnect\Application\SpotifyApiAuth;
6
use SpotifyApiConnect\Application\SpotifyApiAuthInterface;
7
use SpotifyApiConnect\Application\SpotifyWebApiPhp\Session;
8
use SpotifyApiConnect\Application\SpotifyWebApiPhp\SessionInterface;
9
use SpotifyApiConnect\Application\SpotifyWebApiPhp\SpotifyWebApi;
10
use SpotifyApiConnect\Application\SpotifyWebApiInterface;
11
use SpotifyApiConnect\Domain\Model\Config;
12
use SpotifyApiConnect\Domain\Model\ConfigInterface;
13
14
final class SpotifyApiConnectFactory
15
{
16
    /**
17
     * @param string $accessToken
18
     * @return SpotifyWebApiInterface
19
     */
20
    public function createSpotifyWebApi(string $accessToken) : SpotifyWebApiInterface
21
    {
22
        return new SpotifyWebApi($accessToken);
23
    }
24
25
    /**
26
     * @return SpotifyApiAuthInterface
27
     */
28
    public function createSpotifyApiAuth(): SpotifyApiAuthInterface
29
    {
30
        return new SpotifyApiAuth(
31
            $this->createSpotifyWebApiPhpSession()
32
        );
33
    }
34
35
    /**
36
     * @return SessionInterface
37
     */
38
    private function createSpotifyWebApiPhpSession(): SessionInterface
39
    {
40
        return new Session(
41
            $this->createConfig()
42
        );
43
    }
44
45
    /**
46
     * @return ConfigInterface
47
     */
48
    private function createConfig(): ConfigInterface
49
    {
50
        return new Config();
51
    }
52
53
}