Completed
Pull Request — master (#12)
by Sullivan
02:11
created

AuthorizeRequest   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 64
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 4
Bugs 1 Features 0
Metric Value
wmc 5
c 4
b 1
f 0
lcom 1
cbo 1
dl 0
loc 64
rs 10

4 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 7 1
A setCardVerificationValue() 0 4 1
A getRequestId() 0 4 1
A getParameters() 0 13 2
1
<?php
2
3
namespace Nexy\PayboxDirect\Request;
4
5
/**
6
 * @author Sullivan Senechal <[email protected]>
7
 */
8
final class AuthorizeRequest extends AbstractReferencedTransactionRequest
9
{
10
    /**
11
     * @var string
12
     */
13
    private $cardSerial;
14
15
    /**
16
     * @var string
17
     */
18
    private $cardValidity;
19
20
    /**
21
     * @var string
22
     */
23
    private $cardVerificationValue = null;
24
25
    /**
26
     * @param string $reference
27
     * @param int    $amount
28
     * @param string $cardSerial
29
     * @param string $cardValidity
30
     */
31
    public function __construct($reference, $amount, $cardSerial, $cardValidity)
32
    {
33
        parent::__construct($reference, $amount);
34
35
        $this->cardSerial = $cardSerial;
36
        $this->cardValidity = $cardValidity;
37
    }
38
39
    /**
40
     * @param string|null $cardVerificationValue
41
     */
42
    public function setCardVerificationValue($cardVerificationValue = null)
43
    {
44
        $this->cardVerificationValue = $cardVerificationValue;
45
    }
46
47
    /**
48
     * {@inheritdoc}
49
     */
50
    public function getRequestId()
51
    {
52
        return RequestInterface::AUTHORIZE;
53
    }
54
55
    /**
56
     * {@inheritdoc}
57
     */
58
    public function getParameters()
59
    {
60
        $parameters = [
61
            'PORTEUR' => $this->cardSerial,
62
            'DATEVAL' => $this->cardValidity,
63
        ];
64
65
        if (null !== $this->cardVerificationValue) {
66
            $parameters['CVV'] = $this->cardVerificationValue;
67
        }
68
69
        return array_merge(parent::getParameters(), $parameters);
70
    }
71
}
72