Test Failed
Pull Request — master (#96)
by
unknown
08:52
created

AbstractRefreshToken::getUsername()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 0
1
<?php
2
3
/*
4
 * This file is part of the GesdinetJWTRefreshTokenBundle package.
5
 *
6
 * (c) Gesdinet <http://www.gesdinet.com/>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
namespace Gesdinet\JWTRefreshTokenBundle\Entity;
13
14
use Symfony\Component\Validator\Constraints as Assert;
15
use Gesdinet\JWTRefreshTokenBundle\Model\RefreshTokenInterface;
16
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
17
18
/**
19
 * Abstract Refresh Token.
20
 *
21
 * @UniqueEntity("refreshToken")
22
 */
23
abstract class AbstractRefreshToken implements RefreshTokenInterface
24
{
25
    /**
26
     * @var string
27
     *
28
     * @Assert\NotBlank()
29
     */
30
    private $refreshToken;
31
32
    /**
33
     * @var string
34
     *
35
     * @Assert\NotBlank()
36
     */
37
    private $username;
38
39
    /**
40
     * @var \DateTime
41
     *
42
     * @Assert\NotBlank()
43
     */
44
    private $valid;
45
46
    /**
47
     * {@inheritdoc}
48
     */
49
    abstract public function getId();
50
51
    /**
52
     * Set refreshToken.
53
     *
54
     * @param string $refreshToken
55
     *
56
     * @return AbstractRefreshToken
57
     */
58
    public function setRefreshToken($refreshToken = null)
59
    {
60
        if (null === $refreshToken) {
61
            $this->refreshToken = bin2hex(openssl_random_pseudo_bytes(64));
62
        } else {
63
            $this->refreshToken = $refreshToken;
64
        }
65
66
        return $this;
67
    }
68
69
    /**
70
     * Get refreshToken.
71
     *
72
     * @return string
73
     */
74
    public function getRefreshToken()
75
    {
76
        return $this->refreshToken;
77
    }
78
79
    /**
80
     * Set valid.
81
     *
82
     * @param \DateTime $valid
83
     *
84
     * @return AbstractRefreshToken
85
     */
86
    public function setValid($valid)
87
    {
88
        $this->valid = $valid;
89
90
        return $this;
91
    }
92
93
    /**
94
     * Get valid.
95
     *
96
     * @return \DateTime
97
     */
98
    public function getValid()
99
    {
100
        return $this->valid;
101
    }
102
103
    /**
104
     * Set username.
105
     *
106
     * @param string $username
107
     *
108
     * @return AbstractRefreshToken
109
     */
110
    public function setUsername($username)
111
    {
112
        $this->username = $username;
113
114
        return $this;
115
    }
116
117
    /**
118
     * Get username.
119
     *
120
     * @return string
121
     */
122
    public function getUsername()
123
    {
124
        return $this->username;
125
    }
126
127
    /**
128
     * Check if is a valid refresh token.
129
     *
130
     * @return bool
131
     */
132
    public function isValid()
133
    {
134
        $datetime = new \DateTime();
135
136
        return $this->valid >= $datetime;
137
    }
138
139
    /**
140
     * @return string Refresh Token
141
     */
142
    public function __toString()
143
    {
144
        return $this->getRefreshToken();
145
    }
146
}
147