Passed
Push — master ( e83711...c51e21 )
by Romain
80:11 queued 41:19
created

Message::hasAttachments()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 2
cts 2
cp 1
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 0
crap 1
1
<?php
2
namespace Kerox\Messenger\Model\Callback;
3
4
class Message
5
{
6
7
    /**
8
     * @var string
9
     */
10
    protected $messageId;
11
12
    /**
13
     * @var int
14
     */
15
    protected $sequence;
16
17
    /**
18
     * @var null|string
19
     */
20
    protected $text;
21
22
    /**
23
     * @var null|string
24
     */
25
    protected $quickReply;
26
27
    /**
28
     * @var array
29
     */
30
    protected $attachments;
31
32
    /**
33
     * Message constructor.
34
     *
35
     * @param string $messageId
36
     * @param int $sequence
37
     * @param string $text
38
     * @param string $quickReply
39
     * @param array $attachments
40
     */
41 7
    public function __construct(
42
        string $messageId,
43
        int $sequence,
44
        string $text = null,
45
        string $quickReply = null,
46
        array $attachments = []
47
    ) {
48 7
        $this->messageId = $messageId;
49 7
        $this->sequence = $sequence;
50 7
        $this->text = $text;
51 7
        $this->quickReply = $quickReply;
52 7
        $this->attachments = $attachments;
53 7
    }
54
55
    /**
56
     * @return string
57
     */
58 2
    public function getMessageId(): string
59
    {
60 2
        return $this->messageId;
61
    }
62
63
    /**
64
     * @return int
65
     */
66 2
    public function getSequence(): int
67
    {
68 2
        return $this->sequence;
69
    }
70
71
    /**
72
     * @return null|string
73
     */
74 1
    public function getText()
75
    {
76 1
        return $this->text;
77
    }
78
79
    /**
80
     * @return bool
81
     */
82 1
    public function hasText(): bool
83
    {
84 1
        return !empty($this->text);
85
    }
86
87
    /**
88
     * @return null|string
89
     */
90 1
    public function getQuickReply()
91
    {
92 1
        return $this->quickReply;
93
    }
94
95
    /**
96
     * @return bool
97
     */
98 1
    public function hasQuickReply(): bool
99
    {
100 1
        return !empty($this->quickReply);
101
    }
102
103
    /**
104
     * @return array
105
     */
106 1
    public function getAttachments(): array
107
    {
108 1
        return $this->attachments;
109
    }
110
111
    /**
112
     * @return bool
113
     */
114 1
    public function hasAttachments(): bool
115
    {
116 1
        return !empty($this->attachments);
117
    }
118
119
    /**
120
     * @param array $payload
121
     * @return static
122
     */
123 4
    public static function create(array $payload)
124
    {
125 4
        $text = $payload['text'] ?? null;
126 4
        $quickReply = $payload['quick_reply']['payload'] ?? null;
127 4
        $attachments = $payload['attachments'] ?? [];
128
129 4
        return new static($payload['mid'], $payload['seq'], $text, $quickReply, $attachments);
130
    }
131
}
132