PaxList   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 48
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 1
Metric Value
wmc 7
eloc 25
c 2
b 0
f 1
dl 0
loc 48
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
B loadPaxes() 0 33 6
1
<?php
2
3
namespace Amadeus\Client\Struct\Travel;
4
5
use Amadeus\Client\RequestOptions\Travel as TravelRequest;
6
7
/**
8
 * PaxList
9
 *
10
 * @package Amadeus\Client\Struct\Travel
11
 * @author Artem Zakharchenko <[email protected]>
12
 */
13
class PaxList
14
{
15
    /**
16
     * @var Pax[]
17
     */
18
    public $Pax;
19
20
    /**
21
     * @param TravelRequest\PaxList $requestPaxList
22
     */
23
    public function __construct(TravelRequest\PaxList $requestPaxList)
24
    {
25
        $this->loadPaxes($requestPaxList);
26
    }
27
28
    private function loadPaxes(TravelRequest\PaxList $requestPaxList)
29
    {
30
        $this->Pax = array_map(static function (TravelRequest\Pax $requestPax) {
31
            $individual = null;
32
33
            if ($requestPax->firstName && $requestPax->lastName) {
34
                $individual = new Individual(
35
                    $requestPax->firstName,
36
                    $requestPax->lastName,
37
                    $requestPax->genderCode
38
                );
39
            }
40
41
            $contactInfo = null;
42
43
            if (($phoneNumber = $requestPax->phoneNumber) && ($email = $requestPax->email)) {
44
                $contactInfo = new ContactInfo(
45
                    new Phone($phoneNumber),
46
                    new EmailAddress('HOME', $email),
47
                    $requestPax->passengerContactRefused,
48
                );
49
            }
50
51
            return new Pax(
52
                $requestPax->paxId,
53
                $requestPax->ptc,
54
                ($dob = $requestPax->dob) ? $dob->format('Y-m-d') : null,
55
                $requestPax->genderCode,
56
                $individual,
57
                $contactInfo,
58
                $requestPax->paxRefId
59
            );
60
        }, $requestPaxList->pax);
61
    }
62
}
63