Completed
Push — master ( eb575e...c103e9 )
by Romain
13s
created

AirlineBoardingPassTemplate::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 6
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 3
nc 1
nop 3
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Kerox\Messenger\Model\Message\Attachment\Template;
6
7
use Kerox\Messenger\Model\Message\Attachment\Template;
8
9
class AirlineBoardingPassTemplate extends AbstractAirlineTemplate
10
{
11
    /**
12
     * @var string
13
     */
14
    protected $introMessage;
15
16
    /**
17
     * @var \Kerox\Messenger\Model\Message\Attachment\Template\Airline\BoardingPass[]
18
     */
19
    protected $boardingPass;
20
21
    /**
22
     * AirlineBoardingPass constructor.
23
     *
24
     * @param string                                                                    $introMessage
25
     * @param string                                                                    $locale
26
     * @param \Kerox\Messenger\Model\Message\Attachment\Template\Airline\BoardingPass[] $boardingPass
27
     *
28
     * @throws \InvalidArgumentException
29
     */
30
    public function __construct(string $introMessage, string $locale, array $boardingPass)
31
    {
32
        parent::__construct($locale);
33
34
        $this->introMessage = $introMessage;
35
        $this->boardingPass = $boardingPass;
36
    }
37
38
    /**
39
     * @param string $introMessage
40
     * @param string $locale
41
     * @param array  $boardingPass
42
     *
43
     * @throws \InvalidArgumentException
44
     *
45
     * @return \Kerox\Messenger\Model\Message\Attachment\Template\AirlineBoardingPassTemplate
46
     */
47
    public static function create(string $introMessage, string $locale, array $boardingPass): self
48
    {
49
        return new self($introMessage, $locale, $boardingPass);
50
    }
51
52
    /**
53
     * @return array
54
     */
55
    public function toArray(): array
56
    {
57
        $array = parent::toArray();
58
        $array += [
59
            'payload' => [
60
                'template_type' => Template::TYPE_AIRLINE_BOARDINGPASS,
61
                'intro_message' => $this->introMessage,
62
                'locale'        => $this->locale,
63
                'theme_color'   => $this->themeColor,
64
                'boarding_pass' => $this->boardingPass,
65
            ],
66
        ];
67
68
        return $this->arrayFilter($array);
69
    }
70
}
71