Passed
Push — master ( 78880b...ac7e2f )
by Jens
20:00 queued 13s
created

TokenStorageProvider::storeToken()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 1
Metric Value
eloc 2
c 1
b 0
f 1
dl 0
loc 4
ccs 3
cts 3
cp 1
rs 10
cc 1
nc 1
nop 1
crap 1
1
<?php
2
3
namespace Commercetools\Core\Client\OAuth;
4
5
class TokenStorageProvider implements RefreshTokenProvider
6
{
7
    /**
8
     * @var TokenStorage
9
     */
10
    private $tokenStorage;
11
12
    /**
13
     * @var AnonymousFlowTokenProvider;
14
     */
15
    private $anonymousProvider;
16
17
    /**
18
     * TokenStorageProvider constructor.
19
     * @param TokenStorage $tokenStorage
20
     * @param AnonymousFlowTokenProvider $anonymousProvider
21
     */
22 13
    public function __construct(TokenStorage $tokenStorage, AnonymousFlowTokenProvider $anonymousProvider)
23
    {
24 13
        $this->tokenStorage = $tokenStorage;
25 13
        $this->anonymousProvider = $anonymousProvider;
26 13
    }
27
28
    /**
29
     * @inheritDoc
30
     */
31 2
    public function refreshToken()
32
    {
33 2
        $token = $this->anonymousProvider->refreshToken();
34 2
        $this->storeToken($token);
35
36 2
        return $token;
37
    }
38
39
    /**
40
     * @inheritDoc
41
     */
42 12
    public function getToken()
43
    {
44 12
        $token = $this->tokenStorage->getAccessToken();
45 12
        if (!is_null($token)) {
0 ignored issues
show
introduced by
The condition is_null($token) is always false.
Loading history...
46 9
            return new Token($token);
47
        }
48
49 5
        if ($this->tokenStorage->getRefreshToken()) {
50 1
            return $this->refreshToken();
51
        }
52
53 4
        $token = $this->anonymousProvider->getToken();
54 4
        $this->storeToken($token);
55
56 4
        return $token;
57
    }
58
59 6
    private function storeToken(Token $token)
60
    {
61 6
        $this->tokenStorage->setAccessToken($token->getToken());
62 6
        $this->tokenStorage->setRefreshToken($token->getRefreshToken());
63 6
    }
64
}
65