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

OpenGraphTemplate   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 49
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 3
dl 0
loc 49
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A toArray() 0 11 1
A __construct() 0 7 1
A create() 0 3 1
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 OpenGraphTemplate extends Template
10
{
11
    /**
12
     * @var \Kerox\Messenger\Model\Message\Attachment\Template\Element\OpenGraphElement[]
13
     */
14
    protected $elements = [];
15
16
    /**
17
     * OpenGraph constructor.
18
     *
19
     * @param \Kerox\Messenger\Model\Message\Attachment\Template\Element\OpenGraphElement[] $elements
20
     *
21
     * @throws \InvalidArgumentException
22
     */
23
    public function __construct(array $elements)
24
    {
25
        parent::__construct();
26
27
        $this->isValidArray($elements, 1);
28
29
        $this->elements = $elements;
30
    }
31
32
    /**
33
     * @param array $elements
34
     *
35
     * @throws \InvalidArgumentException
36
     *
37
     * @return \Kerox\Messenger\Model\Message\Attachment\Template\OpenGraphTemplate
38
     */
39
    public static function create(array $elements): self
40
    {
41
        return new self($elements);
42
    }
43
44
    /**
45
     * @return array
46
     */
47
    public function toArray(): array
48
    {
49
        $array = parent::toArray();
50
        $array += [
51
            'payload' => [
52
                'template_type' => Template::TYPE_OPEN_GRAPH,
53
                'elements'      => $this->elements,
54
            ],
55
        ];
56
57
        return $this->arrayFilter($array);
58
    }
59
}
60