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 text message.
26: *
27: * @package LINE\LINEBot\MessageBuilder
28: */
29: class TextMessageBuilder implements MessageBuilder
30: {
31: /** @var string[] */
32: private $texts;
33: /** @var array */
34: private $message = [];
35:
36: /**
37: * TextMessageBuilder constructor.
38: *
39: * @param string $text
40: * @param string[] $extraTexts
41: */
42: public function __construct($text, ...$extraTexts)
43: {
44: $this->texts = array_merge([$text], $extraTexts);
45: }
46:
47: /**
48: * Builds text message structure.
49: *
50: * @return array
51: */
52: public function buildMessage()
53: {
54: if (!empty($this->message)) {
55: return $this->message;
56: }
57:
58: foreach ($this->texts as $text) {
59: $this->message[] = [
60: 'type' => MessageType::TEXT,
61: 'text' => $text,
62: ];
63: }
64:
65: return $this->message;
66: }
67: }
68: