Passed
Pull Request — master (#13)
by
unknown
02:12
created

CustomerVerificationRequest::__construct()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 20
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 1
Metric Value
eloc 11
c 2
b 0
f 1
dl 0
loc 20
rs 9.9
cc 2
nc 2
nop 6
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Skrill\Request;
6
7
use Skrill\ValueObject\Email;
8
use Skrill\ValueObject\Customer;
9
use Skrill\ValueObject\DateOfBirth;
10
use Skrill\ValueObject\Address;
11
use Skrill\ValueObject\CustomerId;
12
use Skrill\Request\Traits\GetPayloadTrait;
13
use Skrill\ValueObject\MerchantID;
14
15
/**
16
 * Class CustomerVerificationRequest.
17
 */
18
final class CustomerVerificationRequest
19
{
20
    use GetPayloadTrait;
21
22
    /**
23
     * CustomerVerificationRequest constructor.
24
     * @param Email $email
25
     * @param Customer $customer
26
     * @param DateOfBirth $dateOfBirth
27
     * @param Address $address
28
     * @param MerchantID $merchantId
29
     * @param CustomerId|null $customerId
30
     */
31
    public function __construct(
32
        Email $email,
33
        Customer $customer,
34
        DateOfBirth $dateOfBirth,
35
        Address $address,
36
        MerchantID $merchantId,
37
        CustomerId $customerId = null
38
    ) {
39
        $this->payload = [
40
            'email' => (string)$email,
41
            'firstName' => $customer->getFirstName(),
42
            'lastName' => $customer->getLastName(),
43
            'dateOfBirth' => (string)$dateOfBirth,
44
            'postCode' => $address->getPostCode(),
45
            'country' => $address->getCountry(),
46
            'houseNumber' => $address->getHouseNumber(),
47
            'merchantId' => $merchantId->getValue(),
48
        ];
49
        if ($customerId !== null) {
50
            $this->payload['customerId'] = $customerId;
51
        }
52
    }
53
}
54