Completed
Push — master ( 76b355...56bea0 )
by Luca
01:20
created

BotModel::enableBot()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
1
<?php
2
/**
3
 * This Driver is based entirely on official documentation of the Mattermost Web
4
 * Services API and you can extend it by following the directives of the documentation.
5
 *
6
 * God bless this mess.
7
 *
8
 * @author Luca Agnello <[email protected]>
9
 * @link https://api.mattermost.com/
10
 */
11
12
namespace Gnello\Mattermost\Models;
13
14
use GuzzleHttp\RequestOptions;
15
use Psr\Http\Message\ResponseInterface;
16
17
/**
18
 * Class BotModel
19
 *
20
 * @package Gnello\Mattermost\Models
21
 */
22
class BotModel extends AbstractModel
23
{
24
    /**
25
     * @var string
26
     */
27
    private static $endpoint = '/bots';
28
29
    /**
30
     * @param array $requestOptions
31
     * @return ResponseInterface
32
     */
33
    public function createBot(array $requestOptions)
34
    {
35
        return $this->client->post(self::$endpoint, $requestOptions);
36
    }
37
38
    /**
39
     * @param array $requestOptions
40
     * @return ResponseInterface
41
     */
42
    public function getBots(array $requestOptions = [])
43
    {
44
        return $this->client->get(self::$endpoint, $requestOptions);
45
    }
46
47
    /**
48
     * @param       $botUserId
49
     * @param array $requestOptions
50
     * @return ResponseInterface
51
     */
52
    public function patchBot($botUserId, array $requestOptions)
53
    {
54
        return $this->client->put(self::$endpoint . '/' . $botUserId, $requestOptions);
55
    }
56
57
    /**
58
     * @param       $botUserId
59
     * @param array $requestOptions
60
     * @return ResponseInterface
61
     */
62
    public function getBot($botUserId, array $requestOptions = [])
63
    {
64
        return $this->client->get(self::$endpoint . '/' . $botUserId, $requestOptions);
65
    }
66
67
    /**
68
     * @param $botUserId
69
     * @return ResponseInterface
70
     */
71
    public function disableBot($botUserId)
72
    {
73
        return $this->client->post(self::$endpoint . '/' . $botUserId . '/disable');
74
    }
75
76
    /**
77
     * @param $botUserId
78
     * @return ResponseInterface
79
     */
80
    public function enableBot($botUserId)
81
    {
82
        return $this->client->post(self::$endpoint . '/' . $botUserId . '/enable');
83
    }
84
85
    /**
86
     * @param $botUserId
87
     * @param $userId
88
     * @return ResponseInterface
89
     */
90
    public function assignBotToUser($botUserId, $userId)
91
    {
92
        return $this->client->post(self::$endpoint . '/' . $botUserId . '/assign/' . $userId);
93
    }
94
95
    /**
96
     * @param $botUserId
97
     * @return ResponseInterface
98
     */
99
    public function getBotIcon($botUserId)
100
    {
101
        return $this->client->get(self::$endpoint . '/' . $botUserId . '/icon');
102
    }
103
104
    /**
105
     * @param $botUserId
106
     * @return ResponseInterface
107
     */
108
    public function setBotIcon($botUserId, array $requestOptions)
109
    {
110
        $internalRequestOptions = self::buildMultipartDataOptions($requestOptions, ['image']);
111
112
        return $this->client->post(self::$endpoint . '/' . $botUserId . '/icon', $internalRequestOptions, RequestOptions::MULTIPART);
113
    }
114
115
    /**
116
     * @param $botUserId
117
     * @return ResponseInterface
118
     */
119
    public function deleteBotIcon($botUserId)
120
    {
121
        return $this->client->delete(self::$endpoint . '/' . $botUserId . '/icon');
122
    }
123
}
124