Completed
Push — master ( 02c948...7d3739 )
by keika
02:01
created

Cookies   A

Complexity

Total Complexity 9

Size/Duplication

Total Lines 72
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 94.44%

Importance

Changes 2
Bugs 0 Features 0
Metric Value
wmc 9
c 2
b 0
f 0
lcom 1
cbo 1
dl 0
loc 72
ccs 17
cts 18
cp 0.9444
rs 10

5 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A saveToken() 0 6 2
A loadToken() 0 8 2
A isStoreTokenCookie() 0 4 2
A getStoreTokenCookieName() 0 8 2
1
<?php
2
3
namespace keika299\ConohaAPI\Common\DataStore;
4
5
6
use keika299\ConohaAPI\Conoha;
7
8
/**
9
 * Class Cookies
10
 *
11
 * This class manage cookies.
12
 *
13
 * @package keika299\ConohaAPI\Common
14
 */
15
class Cookies
16
{
17
    /**
18
     * @var array
19
     */
20
    private $cookiesData;
21
22
    /**
23
     * Cookies constructor.
24
     *
25
     * @param Conoha $client
26
     */
27 55
    public function __construct(Conoha $client)
28
    {
29 55
        $this->cookiesData = $client->getCookiesData();
30 55
    }
31
32
    /**
33
     * Save token.
34
     *
35
     * @param string $token
36
     * @return null
37
     */
38 55
    public function saveToken($token)
39
    {
40 55
        if ($this->isStoreTokenCookie()) {
41 1
            setcookie($this->getStoreTokenCookieName(), $token);
42 1
        }
43 55
    }
44
45
    /**
46
     * Get stored token.
47
     *
48
     * If not set token cookie, this function will return null.
49
     *
50
     * @return string|null
51
     */
52 2
    public function loadToken()
53
    {
54 2
        if ($this->isStoreTokenCookie()){
55
            return filter_input(INPUT_COOKIE, $this->getStoreTokenCookieName());
56
        }
57
58 2
        return null;
59
    }
60
61
    /**
62
     * Get allow store token cookie.
63
     *
64
     * @return bool
65
     */
66 55
    public function isStoreTokenCookie()
67
    {
68 55
        return (isset($this->cookiesData['isStoreTokenCookie']) && $this->cookiesData['isStoreTokenCookie']);
69
    }
70
71
    /**
72
     * Get store token cookie name.
73
     *
74
     * Default value is 'ConohaAPIToken'.
75
     *
76
     * @return string
77
     */
78 2
    public function getStoreTokenCookieName()
79
    {
80 2
        if (isset($this->cookiesData['storeTokenCookieName'])) {
81 1
            return $this->cookiesData['storeTokenCookieName'];
82
        }
83
84 1
        return 'ConohaAPIToken';
85
    }
86
}
87