<?php /* * This file is part of the overtrue/wechat. * * (c) overtrue <i@overtrue.me> * * This source file is subject to the MIT license that is bundled * with this source code in the file LICENSE. */ namespace EasyWeChat\OfficialAccount\ShakeAround; use EasyWeChat\Kernel\BaseClient; /** * Class DeviceClient. * * @author allen05ren <allen05ren@outlook.com> */ class DeviceClient extends BaseClient { /** * @param array $data * * @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string * * @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException * @throws \GuzzleHttp\Exception\GuzzleException */ public function apply(array $data) { return $this->httpPostJson('shakearound/device/applyid', $data); } /** * Get audit status. * * @param int $applyId * * @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string * * @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException * @throws \GuzzleHttp\Exception\GuzzleException */ public function status(int $applyId) { $params = [ 'apply_id' => $applyId, ]; return $this->httpPostJson('shakearound/device/applystatus', $params); } /** * Update a device comment. * * @param array $deviceIdentifier * @param string $comment * * @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string * * @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException * @throws \GuzzleHttp\Exception\GuzzleException */ public function update(array $deviceIdentifier, string $comment) { $params = [ 'device_identifier' => $deviceIdentifier, 'comment' => $comment, ]; return $this->httpPostJson('shakearound/device/update', $params); } /** * Bind location for device. * * @param array $deviceIdentifier * @param int $poiId * * @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string * * @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException * @throws \GuzzleHttp\Exception\GuzzleException */ public function bindPoi(array $deviceIdentifier, int $poiId) { $params = [ 'device_identifier' => $deviceIdentifier, 'poi_id' => $poiId, ]; return $this->httpPostJson('shakearound/device/bindlocation', $params); } /** * @param array $deviceIdentifier * @param int $poiId * @param string $appId * * @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string * * @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException * @throws \GuzzleHttp\Exception\GuzzleException */ public function bindThirdPoi(array $deviceIdentifier, int $poiId, string $appId) { $params = [ 'device_identifier' => $deviceIdentifier, 'poi_id' => $poiId, 'type' => 2, 'poi_appid' => $appId, ]; return $this->httpPostJson('shakearound/device/bindlocation', $params); } /** * Fetch batch of devices by deviceIds. * * @param array $deviceIdentifiers * * @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string */ public function listByIds(array $deviceIdentifiers) { $params = [ 'type' => 1, 'device_identifiers' => $deviceIdentifiers, ]; return $this->search($params); } /** * Pagination to get batch of devices. * * @param int $lastId * @param int $count * * @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string */ public function list(int $lastId, int $count) { $params = [ 'type' => 2, 'last_seen' => $lastId, 'count' => $count, ]; return $this->search($params); } /** * Fetch batch of devices by applyId. * * @param int $applyId * @param int $lastId * @param int $count * * @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string */ public function listByApplyId(int $applyId, int $lastId, int $count) { $params = [ 'type' => 3, 'apply_id' => $applyId, 'last_seen' => $lastId, 'count' => $count, ]; return $this->search($params); } /** * Fetch batch of devices. * * @param array $params * * @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string * * @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException * @throws \GuzzleHttp\Exception\GuzzleException */ public function search(array $params) { return $this->httpPostJson('shakearound/device/search', $params); } }