Passed
Pull Request — master (#17)
by
unknown
05:31
created

ImageCarouselTemplateBuilder::buildTemplate()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 17
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 17
rs 9.4285
c 0
b 0
f 0
cc 3
eloc 9
nc 3
nop 0
1
<?php
2
3
namespace LineMob\Core\LineCorp\LINEBot\MessageBuilder\TemplateBuilder;
4
5
use LINE\LINEBot\MessageBuilder\TemplateBuilder;
6
7
/**
8
 * remove this class, when 'linecorp/line-bot-sdk' updated.
9
 */
10
class ImageCarouselTemplateBuilder implements TemplateBuilder
11
{
12
    /** @var ImageCarouselColumnTemplateBuilder[] */
13
    private $columnTemplateBuilders;
14
15
    /** @var array */
16
    private $template;
17
18
    /**
19
     * ImageCarouselTemplateBuilder constructor.
20
     *
21
     * @param ImageCarouselColumnTemplateBuilder[] $columnTemplateBuilders
22
     */
23
    public function __construct(array $columnTemplateBuilders)
24
    {
25
        $this->columnTemplateBuilders = $columnTemplateBuilders;
26
    }
27
28
    /**
29
     * Builds carousel template structure.
30
     *
31
     * @return array
32
     */
33
    public function buildTemplate()
34
    {
35
        if (!empty($this->template)) {
36
            return $this->template;
37
        }
38
39
        $columns = [];
40
        foreach ($this->columnTemplateBuilders as $columnTemplateBuilder) {
41
            $columns[] = $columnTemplateBuilder->buildTemplate();
42
        }
43
44
        $this->template = [
45
            'type' => 'image_carousel',
46
            'columns' => $columns,
47
        ];
48
49
        return $this->template;
50
    }
51
}
52