Completed
Push — master ( d7b107...959971 )
by Sergey
04:12 queued 01:51
created

SendsMessages::buildMessageData()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 8
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 5
nc 1
nop 3
1
<?php
2
3
namespace seregazhuk\PinterestBot\Api\Traits;
4
5
use seregazhuk\PinterestBot\Exceptions\InvalidRequest;
6
use seregazhuk\PinterestBot\Helpers\UrlBuilder;
7
8
trait SendsMessages
9
{
10
    use HandlesRequest;
11
12
    /**
13
     * @param array|int $userIds
14
     * @param array|string $emails
15
     *
16
     * @param array $data
17
     * @return bool
18
     */
19
    protected function callSendMessage($userIds, $emails, array $data)
20
    {
21
        $userIds = is_array($userIds) ? $userIds : [$userIds];
22
        $emails = is_array($emails) ? $emails : [$emails];
23
24
        $this->guardAgainstEmptyData($userIds, $emails);
25
26
        $requestOptions = array_merge([
27
                'emails'   => $emails,
28
                'user_ids' => $userIds,
29
            ],
30
            $data);
31
32
        return $this->execPostRequest($requestOptions, UrlBuilder::RESOURCE_SEND_MESSAGE);
33
    }
34
35
    /**
36
     * @param string $text
37
     * @param string $pinId
38
     * @param string $boardId
39
     * @return array
40
     */
41
    protected function buildMessageData($text = null, $pinId = null, $boardId = null)
42
    {
43
        return [
44
            'pin'   => $pinId,
45
            'text'  => $text,
46
            'board' => $boardId,
47
        ];
48
    }
49
50
    /**
51
     * @param $userId
52
     * @param array $emails
53
     * @throws InvalidRequest
54
     */
55
    protected function guardAgainstEmptyData($userId, array $emails)
56
    {
57
        if (empty($userId) && empty($emails)) {
58
            throw new InvalidRequest('You must specify user_ids or emails to send message.');
59
        }
60
    }
61
}