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 location message.
26: *
27: * @package LINE\LINEBot\MessageBuilder
28: */
29: class LocationMessageBuilder implements MessageBuilder
30: {
31: /** @var string */
32: private $title;
33: /** @var string */
34: private $address;
35: /** @var double */
36: private $latitude;
37: /** @var double */
38: private $longitude;
39:
40: /**
41: * LocationMessageBuilder constructor.
42: *
43: * @param string $title
44: * @param string $address
45: * @param double $latitude
46: * @param double $longitude
47: */
48: public function __construct($title, $address, $latitude, $longitude)
49: {
50: $this->title = $title;
51: $this->address = $address;
52: $this->latitude = $latitude;
53: $this->longitude = $longitude;
54: }
55:
56: /**
57: * Builds location message structure.
58: *
59: * @return array
60: */
61: public function buildMessage()
62: {
63: return [
64: [
65: 'type' => MessageType::LOCATION,
66: 'title' => $this->title,
67: 'address' => $this->address,
68: 'latitude' => $this->latitude,
69: 'longitude' => $this->longitude,
70: ]
71: ];
72: }
73: }
74: