Completed
Push — master ( 4c48e6...2c6b77 )
by Gianluca
01:26
created

Card::toJSON()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 9

Duplication

Lines 9
Ratio 100 %

Importance

Changes 0
Metric Value
dl 9
loc 9
rs 9.9666
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
namespace Getnet\API;
4
5
/**
6
 * Class Card
7
 *
8
 * @package Getnet\API
9
 */
10
class Card implements \JsonSerializable
11
{
12
    const BRAND_MASTERCARD  = "Mastercard";
13
    const BRAND_VISA        = "Visa";
14
    const BRAND_AMEX        = "Amex";
15
    const BRAND_ELO         = "Elo";
16
    const BRAND_HIPERCARD   = "Hipercard";
17
18
    /** @var */
19
    private $brand;
20
21
    /** @var */
22
    private $cardholder_name;
23
24
    /** @var */
25
    private $expiration_month;
26
27
    /** @var */
28
    private $expiration_year;
29
30
    /** @var */
31
    private $number_token;
32
33
    /** @var */
34
    private $security_code;
35
36
    /**
37
     * Card constructor.
38
     * @param Token $token
39
     */
40
    public function __construct(Token $token)
41
    {
42
        $this->setNumberToken($token);
43
    }
44
45
    /**
46
     *
47
     * @return array
48
     */
49 View Code Duplication
    public function jsonSerialize()
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
50
    {
51
        $vars = get_object_vars($this);
52
        $vars_clear = array_filter($vars, function ($value) {
53
            return null !== $value;
54
        });
55
56
        return $vars_clear;
57
    }
58
59
    /**
60
     * @return mixed
61
     */
62
    public function getBrand()
63
    {
64
        return $this->brand;
65
    }
66
67
    /**
68
     * @param $brand
69
     * @return $this
70
     */
71
    public function setBrand($brand)
72
    {
73
        $this->brand = (string)$brand;
74
75
        return $this;
76
    }
77
78
    /**
79
     * @return mixed
80
     */
81
    public function getCardholderName()
82
    {
83
        return $this->cardholder_name;
84
    }
85
86
    /**
87
     * @param $cardholder_name
88
     * @return $this
89
     */
90
    public function setCardholderName($cardholder_name)
91
    {
92
        $this->cardholder_name = (string)$cardholder_name;
93
94
        return $this;
95
    }
96
97
    /**
98
     * @return mixed
99
     */
100
    public function getExpirationMonth()
101
    {
102
        return $this->expiration_month;
103
    }
104
105
    /**
106
     * @param $expiration_month
107
     * @return $this
108
     */
109
    public function setExpirationMonth($expiration_month)
110
    {
111
        $this->expiration_month = (string)$expiration_month;
112
113
        return $this;
114
    }
115
116
    /**
117
     * @return mixed
118
     */
119
    public function getExpirationYear()
120
    {
121
        return $this->expiration_year;
122
    }
123
124
    /**
125
     * @param $expiration_year
126
     * @return $this
127
     */
128
    public function setExpirationYear($expiration_year)
129
    {
130
        $this->expiration_year = (string)$expiration_year;
131
132
        return $this;
133
    }
134
135
    /**
136
     * @return mixed
137
     */
138
    public function getNumberToken()
139
    {
140
        return $this->number_token;
141
    }
142
143
    /**
144
     * @param $token
145
     * @return $this
146
     */
147
    public function setNumberToken($token)
148
    {
149
        $this->number_token = (string)$token->getNumberToken();
150
151
        return $this;
152
    }
153
154
    /**
155
     * @return mixed
156
     */
157
    public function getSecurityCode()
158
    {
159
        return $this->security_code;
160
    }
161
162
    /**
163
     * @param $security_code
164
     * @return $this
165
     */
166
    public function setSecurityCode($security_code)
167
    {
168
        $this->security_code = (string)$security_code;
169
170
        return $this;
171
    }
172
173
    /**
174
     * @return false|string
175
     */
176 View Code Duplication
    public function toJSON()
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
177
    {
178
        $vars = get_object_vars($this);
179
        $vars_clear = array_filter($vars, function ($value) {
180
            return null !== $value;
181
        });
182
183
        return json_encode($vars_clear, JSON_PRETTY_PRINT);
184
    }
185
}
186