AccessToken::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 3
c 1
b 0
f 0
nc 1
nop 3
dl 0
loc 5
ccs 4
cts 4
cp 1
crap 1
rs 10
1
<?php
2
3
namespace TestMonitor\DevOps;
4
5
use League\OAuth2\Client\Token\AccessToken as AzureAccessToken;
6
7
class AccessToken
8
{
9
    /**
10
     * @var string
11
     */
12
    public $accessToken;
13
14
    /**
15
     * @var string
16
     */
17
    public $refreshToken;
18
19
    /**
20
     * @var int
21
     */
22
    public $expiresIn;
23
24
    /**
25
     * Token constructor.
26
     *
27
     * @param string $accessToken
28
     * @param string $refreshToken
29
     * @param int $expiresIn
30
     */
31 6
    public function __construct(string $accessToken = '', string $refreshToken = '', int $expiresIn = 0)
32
    {
33 6
        $this->accessToken = $accessToken;
34 6
        $this->refreshToken = $refreshToken;
35 6
        $this->expiresIn = $expiresIn;
36
    }
37
38
    /**
39
     * @param \League\OAuth2\Client\Token\AccessToken $token
40
     * @return \TestMonitor\DevOps\AccessToken
41
     */
42 2
    public static function fromDevOps(AzureAccessToken $token)
43
    {
44 2
        return new self(
45 2
            $token->getToken(),
46 2
            $token->getRefreshToken(),
47 2
            $token->getExpires()
48 2
        );
49
    }
50
51
    /**
52
     * Determines if the access token has expired.
53
     *
54
     * @return bool
55
     */
56 5
    public function expired()
57
    {
58 5
        return ($this->expiresIn - time()) < 60;
59
    }
60
61
    /**
62
     * Returns the token as an array.
63
     *
64
     * @return array
65
     */
66 1
    public function toArray()
67
    {
68 1
        return [
69 1
            'access_token' => $this->accessToken,
70 1
            'refresh_token' => $this->refreshToken,
71 1
            'expires_in' => $this->expiresIn,
72 1
        ];
73
    }
74
}
75