* * This source file is subject to the MIT license that is bundled * with this source code in the file LICENSE. */ namespace EasyWeChat\Work\User; use EasyWeChat\Kernel\BaseClient; /** * Class TagClient. * * @author mingyoung */ class TagClient extends BaseClient { /** * Create tag. * * @param string $tagName * @param int|null $tagId * * @return mixed * * @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException * @throws \GuzzleHttp\Exception\GuzzleException */ public function create(string $tagName, int $tagId = null) { $params = [ 'tagname' => $tagName, 'tagid' => $tagId, ]; return $this->httpPostJson('cgi-bin/tag/create', $params); } /** * Update tag. * * @param int $tagId * @param string $tagName * * @return mixed * * @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException * @throws \GuzzleHttp\Exception\GuzzleException */ public function update(int $tagId, string $tagName) { $params = [ 'tagid' => $tagId, 'tagname' => $tagName, ]; return $this->httpPostJson('cgi-bin/tag/update', $params); } /** * Delete tag. * * @param int $tagId * * @return mixed * * @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException */ public function delete(int $tagId) { return $this->httpGet('cgi-bin/tag/delete', ['tagid' => $tagId]); } /** * @param int $tagId * * @return mixed * * @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException */ public function get(int $tagId) { return $this->httpGet('cgi-bin/tag/get', ['tagid' => $tagId]); } /** * @param int $tagId * @param array $userList * * @return mixed * * @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException * @throws \GuzzleHttp\Exception\GuzzleException */ public function tagUsers(int $tagId, array $userList = []) { return $this->tagOrUntagUsers('cgi-bin/tag/addtagusers', $tagId, $userList); } /** * @param int $tagId * @param array $partyList * * @return mixed * * @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException * @throws \GuzzleHttp\Exception\GuzzleException */ public function tagDepartments(int $tagId, array $partyList = []) { return $this->tagOrUntagUsers('cgi-bin/tag/addtagusers', $tagId, [], $partyList); } /** * @param int $tagId * @param array $userList * * @return mixed * * @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException * @throws \GuzzleHttp\Exception\GuzzleException */ public function untagUsers(int $tagId, array $userList = []) { return $this->tagOrUntagUsers('cgi-bin/tag/deltagusers', $tagId, $userList); } /** * @param int $tagId * @param array $partyList * * @return mixed * * @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException * @throws \GuzzleHttp\Exception\GuzzleException */ public function untagDepartments(int $tagId, array $partyList = []) { return $this->tagOrUntagUsers('cgi-bin/tag/deltagusers', $tagId, [], $partyList); } /** * @param string $endpoint * @param int $tagId * @param array $userList * @param array $partyList * * @return mixed * * @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException * @throws \GuzzleHttp\Exception\GuzzleException */ protected function tagOrUntagUsers(string $endpoint, int $tagId, array $userList = [], array $partyList = []) { $data = [ 'tagid' => $tagId, 'userlist' => $userList, 'partylist' => $partyList, ]; return $this->httpPostJson($endpoint, $data); } /** * @return mixed * * @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException */ public function list() { return $this->httpGet('cgi-bin/tag/list'); } }