GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.

Payment   A
last analyzed

Complexity

Total Complexity 9

Size/Duplication

Total Lines 141
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Test Coverage

Coverage 100%

Importance

Changes 2
Bugs 0 Features 0
Metric Value
wmc 9
c 2
b 0
f 0
lcom 1
cbo 2
dl 0
loc 141
ccs 38
cts 38
cp 1
rs 10

8 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 6 1
A setSuccessUrl() 0 5 1
A setFailedUrl() 0 5 1
A setCancelledUrl() 0 5 1
A setExpiredUrl() 0 5 1
A setCallbackUrl() 0 5 1
A toArray() 0 19 1
A setUrlIfAvailable() 0 8 2
1
<?php
2
3
namespace CMPayments\PaymentSdk\Entities;
4
5
use CMPayments\PaymentSdk\MoneyConverter;
6
use Money\Money;
7
8
/**
9
 * Class Payment
10
 * @package CMPayments\PaymentSdk\Entities
11
 * @author Jory Geerts <[email protected]>
12
 */
13
class Payment
14
{
15
    /**
16
     * @var Money
17
     */
18
    private $money;
19
    /**
20
     * @var string
21
     */
22
    private $method;
23
    /**
24
     * @var string
25
     */
26
    private $purchaseId;
27
    /**
28
     * @var string
29
     */
30
    private $successUrl;
31
    /**
32
     * @var string
33
     */
34
    private $failedUrl;
35
    /**
36
     * @var string
37
     */
38
    private $cancelledUrl;
39
    /**
40
     * @var string
41
     */
42
    private $expiredUrl;
43
    /**
44
     * @var string
45
     */
46
    private $callbackUrl;
47
48
49
    /**
50
     * Payment constructor.
51
     * @param Money $money
52
     * @param string $method
53
     * @param string $purchaseId
54
     */
55 12
    public function __construct(Money $money, $method, $purchaseId)
56
    {
57 12
        $this->money = $money;
58 12
        $this->method = $method;
59 12
        $this->purchaseId = $purchaseId;
60 12
    }
61
62
    /**
63
     * @param string $successUrl
64
     * @return Payment
65
     */
66 1
    public function setSuccessUrl($successUrl)
67
    {
68 1
        $this->successUrl = $successUrl;
69 1
        return $this;
70
    }
71
72
    /**
73
     * @param string $failedUrl
74
     * @return Payment
75
     */
76 1
    public function setFailedUrl($failedUrl)
77
    {
78 1
        $this->failedUrl = $failedUrl;
79 1
        return $this;
80
    }
81
82
    /**
83
     * @param string $cancelledUrl
84
     * @return Payment
85
     */
86 1
    public function setCancelledUrl($cancelledUrl)
87
    {
88 1
        $this->cancelledUrl = $cancelledUrl;
89 1
        return $this;
90
    }
91
92
    /**
93
     * @param string $expiredUrl
94
     * @return Payment
95
     */
96 1
    public function setExpiredUrl($expiredUrl)
97
    {
98 1
        $this->expiredUrl = $expiredUrl;
99 1
        return $this;
100
    }
101
102
    /**
103
     * @param string $callbackUrl
104
     * @return Payment
105
     */
106 1
    public function setCallbackUrl($callbackUrl)
107
    {
108 1
        $this->callbackUrl = $callbackUrl;
109 1
        return $this;
110
    }
111
112
    /**
113
     * Create an array that represents all the required data to create a payment.
114
     *
115
     * @return array
116
     */
117 10
    public function toArray()
118
    {
119
        $array = [
120 10
            'amount'          => (new MoneyConverter())->toFloat($this->money),
121 10
            'currency'        => $this->money->getCurrency(),
122 10
            'payment_method'  => $this->method,
123
            'payment_details' => [
124 10
                'purchase_id' => $this->purchaseId,
125 10
            ],
126 10
        ];
127
128 10
        $array = $this->setUrlIfAvailable($array, 'success_url', 'successUrl');
129 10
        $array = $this->setUrlIfAvailable($array, 'cancelled_url', 'cancelledUrl');
130 10
        $array = $this->setUrlIfAvailable($array, 'failed_url', 'failedUrl');
131 10
        $array = $this->setUrlIfAvailable($array, 'expired_url', 'expiredUrl');
132 10
        $array = $this->setUrlIfAvailable($array, 'callback_url', 'callbackUrl');
133
134 10
        return $array;
135
    }
136
137
    /**
138
     * Set a URL in the array structure if it is available.
139
     *
140
     * @param array $structure
141
     * @param string $jsonNode
142
     * @param string $propertyName
143
     * @return array
144
     */
145 10
    private function setUrlIfAvailable($structure, $jsonNode, $propertyName)
146
    {
147 10
        if (!empty($this->$propertyName)) {
148 1
            $structure['payment_details'][$jsonNode] = $this->$propertyName;
149 1
        }
150
151 10
        return $structure;
152
    }
153
}
154