Passed
Push — master ( 9c2182...d8c1e1 )
by Carlos
06:27 queued 03:14
created

Client::hideTypingStatusToUser()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 3
nc 1
nop 1
dl 0
loc 5
ccs 4
cts 4
cp 1
crap 1
rs 10
c 0
b 0
f 0
1
<?php
2
3
/*
4
 * This file is part of the overtrue/wechat.
5
 *
6
 * (c) overtrue <[email protected]>
7
 *
8
 * This source file is subject to the MIT license that is bundled
9
 * with this source code in the file LICENSE.
10
 */
11
12
namespace EasyWeChat\OfficialAccount\CustomerService;
13
14
use EasyWeChat\Kernel\BaseClient;
15
16
/**
17
 * Class Client.
18
 *
19
 * @author overtrue <[email protected]>
20
 */
21
class Client extends BaseClient
22
{
23
    /**
24
     * List all staffs.
25
     *
26
     * @return mixed
27
     */
28 1
    public function list()
29
    {
30 1
        return $this->httpGet('cgi-bin/customservice/getkflist');
31
    }
32
33
    /**
34
     * List all online staffs.
35
     *
36
     * @return mixed
37
     */
38 1
    public function online()
39
    {
40 1
        return $this->httpGet('cgi-bin/customservice/getonlinekflist');
41
    }
42
43
    /**
44
     * Create a staff.
45
     *
46
     * @param string $account
47
     * @param string $nickname
48
     *
49
     * @return mixed
50
     */
51 1
    public function create(string $account, string $nickname)
52
    {
53
        $params = [
54 1
            'kf_account' => $account,
55 1
            'nickname' => $nickname,
56
        ];
57
58 1
        return $this->httpPostJson('customservice/kfaccount/add', $params);
59
    }
60
61
    /**
62
     * Update a staff.
63
     *
64
     * @param string $account
65
     * @param string $nickname
66
     *
67
     * @return mixed
68
     */
69 1
    public function update(string $account, string $nickname)
70
    {
71
        $params = [
72 1
            'kf_account' => $account,
73 1
            'nickname' => $nickname,
74
        ];
75
76 1
        return $this->httpPostJson('customservice/kfaccount/update', $params);
77
    }
78
79
    /**
80
     * Delete a staff.
81
     *
82
     * @param string $account
83
     *
84
     * @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
85
     */
86 1
    public function delete(string $account)
87
    {
88 1
        return $this->httpPostJson('customservice/kfaccount/del', [], ['kf_account' => $account]);
89
    }
90
91
    /**
92
     * Invite a staff.
93
     *
94
     * @param string $account
95
     * @param string $wechatId
96
     *
97
     * @return mixed
98
     */
99 1
    public function invite(string $account, string $wechatId)
100
    {
101
        $params = [
102 1
            'kf_account' => $account,
103 1
            'invite_wx' => $wechatId,
104
        ];
105
106 1
        return $this->httpPostJson('customservice/kfaccount/inviteworker', $params);
107
    }
108
109
    /**
110
     * Set staff avatar.
111
     *
112
     * @param string $account
113
     * @param string $path
114
     *
115
     * @return mixed
116
     */
117 1
    public function setAvatar(string $account, string $path)
118
    {
119 1
        return $this->httpUpload('customservice/kfaccount/uploadheadimg', ['media' => $path], [], ['kf_account' => $account]);
120
    }
121
122
    /**
123
     * Get message builder.
124
     *
125
     * @param \EasyWeChat\Kernel\Messages\Message|string $message
126
     *
127
     * @return \EasyWeChat\OfficialAccount\CustomerService\Messenger
128
     *
129
     * @throws \EasyWeChat\Kernel\Exceptions\InvalidArgumentException
130
     */
131 1
    public function message($message)
132
    {
133 1
        $messageBuilder = new Messenger($this);
134
135 1
        return $messageBuilder->message($message);
136
    }
137
138
    /**
139
     * Send a message.
140
     *
141
     * @param string|array $message
142
     *
143
     * @return mixed
144
     */
145 1
    public function send(array $message)
146
    {
147 1
        return $this->httpPostJson('cgi-bin/message/custom/send', $message);
148
    }
149
150
    /**
151
     * Show typing status.
152
     *
153
     * @param string $openid
154
     *
155
     * @return mixed
156
     */
157 1
    public function showTypingStatusToUser(string $openid)
158
    {
159 1
        return $this->httpPostJson('cgi-bin/message/custom/typing', [
160 1
            'touser' => $openid,
161 1
            'command' => 'Typing',
162
        ]);
163
    }
164
165
    /**
166
     * Hide typing status.
167
     *
168
     * @param string $openid
169
     *
170
     * @return mixed
171
     */
172 1
    public function hideTypingStatusToUser(string $openid)
173
    {
174 1
        return $this->httpPostJson('cgi-bin/message/custom/typing', [
175 1
            'touser' => $openid,
176 1
            'command' => 'CancelTyping',
177
        ]);
178
    }
179
180
    /**
181
     * Get messages history.
182
     *
183
     * @param int $startTime
184
     * @param int $endTime
185
     * @param int $msgId
186
     * @param int $number
187
     *
188
     * @return mixed
189
     */
190 1
    public function messages($startTime, $endTime, int $msgId = 1, int $number = 10000)
191
    {
192
        $params = [
193 1
            'starttime' => is_numeric($startTime) ? $startTime : strtotime($startTime),
0 ignored issues
show
introduced by
The condition is_numeric($startTime) is always true.
Loading history...
194 1
            'endtime' => is_numeric($endTime) ? $endTime : strtotime($endTime),
0 ignored issues
show
introduced by
The condition is_numeric($endTime) is always true.
Loading history...
195 1
            'msgid' => $msgId,
196 1
            'number' => $number,
197
        ];
198
199 1
        return $this->httpPostJson('customservice/msgrecord/getmsglist', $params);
200
    }
201
}
202