1: <?php
2:
3: /**
4: * Copyright 2016 LINE Corporation
5: *
6: * LINE Corporation licenses this file to you under the Apache License,
7: * version 2.0 (the "License"); you may not use this file except in compliance
8: * with the License. You may obtain a copy of the License at:
9: *
10: * https://www.apache.org/licenses/LICENSE-2.0
11: *
12: * Unless required by applicable law or agreed to in writing, software
13: * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
14: * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
15: * License for the specific language governing permissions and limitations
16: * under the License.
17: */
18:
19: namespace LINE\LINEBot\MessageBuilder;
20:
21: use LINE\LINEBot\Constant\MessageType;
22: use LINE\LINEBot\MessageBuilder;
23:
24: /**
25: * A builder class for template message.
26: *
27: * @package LINE\LINEBot\MessageBuilder
28: */
29: class TemplateMessageBuilder implements MessageBuilder
30: {
31: /** @var string */
32: private $altText;
33: /** @var TemplateBuilder */
34: private $templateBuilder;
35:
36: /**
37: * TemplateMessageBuilder constructor.
38: * @param string $altText
39: * @param TemplateBuilder $templateBuilder
40: */
41: public function __construct($altText, TemplateBuilder $templateBuilder)
42: {
43: $this->altText = $altText;
44: $this->templateBuilder = $templateBuilder;
45: }
46:
47: /**
48: * Builds template message structure.
49: *
50: * @return array
51: */
52: public function buildMessage()
53: {
54: return [
55: [
56: 'type' => MessageType::TEMPLATE,
57: 'altText' => $this->altText,
58: 'template' => $this->templateBuilder->buildTemplate(),
59: ]
60: ];
61: }
62: }
63: