123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855 |
- <?php
- namespace Easemob;
- use Easemob\Http\Http;
- /**
- * \~chinese
- * Room 用于管理聊天室
- *
- * \~english
- * The `Room` is used to manage chat rooms
- */
- final class Room
- {
- /**
- * @ignore
- * @var Auth $auth 授权对象
- */
- private $auth;
- /// @cond
- public function __construct($auth)
- {
- $this->auth = $auth;
- }
- /// @endcond
- /**
- * \~chinese
- * \brief
- * 获取 app 中所有的聊天室(分页)
- *
- * @param int $limit 每页显示的数量,默认取 10 条
- * @param string $cursor 分页游标
- * @return array 聊天室列表信息或者错误
- *
- * \~english
- * \brief
- * Get all chat rooms in the app (paging)
- *
- * @param int $limit The number displayed on each page is 10 by default
- * @param string $cursor Paging cursor
- * @return array Chat room list information or error
- */
- public function listRooms($limit = 10, $cursor = '')
- {
- $limit = (int)$limit >= 0 ? (int)$limit : 10;
- $uri = $this->auth->getBaseUri() . '/chatrooms';
- $uri .= $limit ? '?limit=' . $limit : '';
- $uri .= ($limit && $cursor) ? '&cursor='.$cursor : '';
- $resp = Http::get($uri, $this->auth->headers());
- if (!$resp->ok()) {
- return \Easemob\error($resp);
- }
- $data = $resp->data();
- return array(
- 'cursor' => isset($data['cursor']) ? $data['cursor'] : '',
- 'data' => $data['data'],
- );
- }
- /**
- * \~chinese
- * \brief
- * 获取 app 中所有的聊天室
- *
- * @return array 聊天室列表信息或者错误
- *
- * \~english
- * \brief
- * Get all chat rooms in the app
- *
- * @return array Chat room list information or error
- */
- public function listAllRooms()
- {
- $result = $this->listRooms(0);
- return $result['data'];
- }
- /**
- * \~chinese
- * \brief
- * 获取用户加入的聊天室(分页)
- *
- * \details
- * 根据用户名称获取该用户加入的全部聊天室
- *
- * @param string $username 用户名
- * @param int $pageSize 每页获取的群组数量,默认取 10 条
- * @param int $pageNum 当前页码,默认取第 1 页
- * @return array 用户加入的聊天室列表或者错误
- *
- * \~english
- * \brief
- * Get the chat room that the user joined (paging)
- *
- * \details
- * Get all chat rooms joined by the user according to the user name
- *
- * @param string $username User name
- * @param int $pageSize The number of groups obtained per page is 10 by default
- * @param int $pageNum The current page number is page 1 by default
- * @return array The chat room list added by the user is incorrect
- */
- public function listRoomsUserJoined($username, $pageSize = 10, $pageNum = 1)
- {
- if (!trim($username)) {
- \Easemob\exception('Please pass the user name');
- }
- $pageSize = (int)$pageSize >= 0 ? (int)$pageSize : 10;
- $pageNum = (int)$pageNum > 0 ? (int)$pageNum : 1;
- $uri = $this->auth->getBaseUri() . '/users/' . trim($username) . '/joined_chatrooms';
- $uri .= $pageSize ? ('?pagesize=' . $pageSize . '&pagenum=' . $pageNum) : '';
- $resp = Http::get($uri, $this->auth->headers());
- if (!$resp->ok()) {
- return \Easemob\error($resp);
- }
- $data = $resp->data();
- return $data['data'];
- }
- /**
- * \~chinese
- * \brief
- * 获取用户加入的聊天室
- *
- * \details
- * 根据用户名称获取该用户加入的全部聊天室
- *
- * @param string $username 用户名
- * @return array 用户加入的聊天室列表或者错误
- *
- * \~english
- * \brief
- * Get the chat room that the user joined
- *
- * \details
- * Get all chat rooms joined by the user according to the user name
- *
- * @param string $username User name
- * @return array The chat room list added by the user is incorrect
- */
- public function listAllRoomsUserJoined($username)
- {
- return $this->listRoomsUserJoined($username, 0);
- }
- /**
- * \~chinese
- * \brief
- * 获取聊天室详情
- *
- * \details
- * 可以获取一个或多个聊天室的详情。当获取多个聊天室的详情时,可以直接填写多个 chatroom_id 并用 “,” 隔开,一次调用最多输入 100 个聊天室 ID,会返回所有存在的聊天室的详情,对于不存在的聊天室,response body 内返回 “chatroom id doesn’t exist”。
- *
- * @param string $roomId 聊天室 ID,多个之间用 “,” 分隔
- * @return array 聊天室详情或者错误
- *
- * \~english
- * \brief
- * Get chat room details
- *
- * \details
- * You can get details of one or more chat rooms. When obtaining the details of multiple chat rooms, you can directly fill in multiple chatrooms_ For all chat rooms that do not exist, enter "response ID" and return "response ID" at most once.
- *
- * @param string $roomId Chat room ID, separated by ","
- * @return array Chat room details or errors
- */
- public function getRoom($roomId)
- {
- if (!trim($roomId)) {
- \Easemob\exception('Please pass the chat room ID');
- }
- $uri = $this->auth->getBaseUri() . '/chatrooms/' . $roomId;
- $resp = Http::get($uri, $this->auth->headers());
- if (!$resp->ok()) {
- return \Easemob\error($resp);
- }
- $data = $resp->data();
- return strpos($roomId, ',') !== false ? $data['data'] : $data['data'][0];
- }
- /**
- * \~chinese
- * \brief
- * 创建聊天室
- *
- * \details
- * 创建一个聊天室,并设置聊天室名称、聊天室描述、公开聊天室/私有聊天室属性、聊天室成员最大人数(包括管理员)、加入公开聊天室是否需要批准、管理员、以及聊天室成员。
- *
- * @param array $name 聊天聊天室名称
- * @param string $description 聊天室描述
- * @param string $owner 聊天室的管理员
- * @param array $members 聊天室成员,此属性为可选的,但是如果加了此项,数组元素至少一个
- * @param int $maxusers 聊天室成员最大数(包括聊天室所有者),值为数值类型。
- * @return string|array 创建的聊天室 id 或者错误
- *
- * \~english
- * \brief
- * Create a chat room
- *
- * \details
- * Create a chat room, and set the chat room name, chat room description, public chat room / private chat room properties, the maximum number of chat room members (including administrators), whether approval is required to join the public chat room, administrators, and chat room members.
- *
- * @param array $name Chat room name
- * @param string $description Chat room description
- * @param string $owner Chat room administrator
- * @param array $members This attribute is optional for chat room members, but if this item is added, there must be at least one array element
- * @param int $maxusers Maximum number of chat room members (including chat room owners). The value is numeric.
- * @return string|array Created chat room ID or error
- */
- public function createRoom($name, $description, $owner, $members = array(), $maxusers = 0)
- {
- if (!trim($name)) {
- \Easemob\exception('Please pass the chat room name');
- }
- if (!trim($description)) {
- \Easemob\exception('Please pass the chat room description');
- }
- if (!trim($owner)) {
- \Easemob\exception('Please pass the chat room administrator');
- }
- if ($members && (!is_array($members) || empty($members))) {
- \Easemob\exception('Please pass chat room members');
- }
- $data = compact('name', 'description', 'owner', 'members');
- $maxusers = (int)$maxusers > 0 ? (int)$maxusers : 0;
- if ($maxusers) {
- $data['maxusers'] = $maxusers;
- }
- $uri = $this->auth->getBaseUri() . '/chatrooms';
- $resp = Http::post($uri, $data, $this->auth->headers());
- if (!$resp->ok()) {
- return \Easemob\error($resp);
- }
- $data = $resp->data();
- return $data['data']['id'];
- }
- /**
- * \~chinese
- * \brief
- * 修改聊天室信息
- *
- * \details
- * 修改成功的数据行会返回 true,失败为 false。请求 body 只接收 name、description、maxusers 三个属性。传其他字段,或者不能修改的字段会抛异常。
- *
- * @param array $data 聊天室信息
- * - `name` string 类型,聊天室名称,修改时值不能包含斜杠(“/”)。
- * - `description` string 类型,聊天室描述,修改时值不能包含斜杠(“/”)。
- * - `maxusers` int 类型,聊天室最大成员数(包括聊天室所有者),值为数值类型。
- * @return boolean|array 成功或者错误
- *
- * \~english
- * \brief
- * Modify chat room information
- *
- * \details
- * The modified data row will return true, and the failure will be false. The request body only receives three attributes: name, description and maxusers. Exceptions will be thrown if other fields are passed or fields that cannot be modified.
- *
- * @param array $data Chat room information
- * - `name` String type, chat room name. The value cannot contain slash ("/") when modified.
- * - `description` String type, chat room description. When modifying, the value cannot contain slash ("/").
- * - `maxusers` The type of chat room is int, and the value is the maximum number of chat room owners.
- * @return boolean|array Success or error
- */
- public function updateRoom($data)
- {
- if (!is_array($data) || empty($data)) {
- \Easemob\exception('Please pass the chat room information');
- }
- if (!isset($data['room_id']) || !trim($data['room_id'])) {
- \Easemob\exception('Please pass the chat room ID');
- }
- if (isset($data['name']) && preg_match('/\//', $data['name'])) {
- \Easemob\exception('Chat room names cannot contain slashes ("/")');
- }
- if (isset($data['description']) && preg_match('/\//', $data['description'])) {
- \Easemob\exception('Chat room description cannot contain slashes ("/")');
- }
- $uri = $this->auth->getBaseUri() . '/chatrooms/' . $data['room_id'];
- unset($data['room_id']);
- if (isset($data['maxusers'])) {
- $data['maxusers'] = (int)$data['maxusers'];
- }
- $resp = Http::put($uri, $data, $this->auth->headers());
- if (!$resp->ok()) {
- return \Easemob\error($resp);
- }
- return true;
- }
- /**
- * \~chinese
- * \brief
- * 删除聊天室
- *
- * \details
- * 删除单个聊天室。如果被删除的聊天室不存在,会返回错误。
- *
- * @param string $roomId 聊天室 ID
- * @return boolean|array 成功或者错误
- *
- * \~english
- * \brief
- * Delete chat room
- *
- * \details
- * Delete a single chat room. If the deleted chat room does not exist, an error will be returned.
- *
- * @param string $roomId Chat room ID
- * @return boolean|array Success or error
- */
- public function destroyRoom($roomId)
- {
- if (!trim($roomId)) {
- \Easemob\exception('Please pass the chat room ID');
- }
- $uri = $this->auth->getBaseUri() . '/chatrooms/' . $roomId;
- $resp = Http::delete($uri, null, $this->auth->headers());
- if (!$resp->ok()) {
- return \Easemob\error($resp);
- }
- return true;
- }
- /**
- * \~chinese
- * \brief
- * 获取聊天室公告
- *
- * \details
- * 获取指定聊天室 ID 的聊天室公告。
- *
- * @param string $roomId 聊天室 id
- * @return array 公告信息或者错误
- *
- * \~english
- * \brief
- * Get chat announcements
- *
- * \details
- * Gets the chat announcement of the specified chat room ID.
- *
- * @param string $roomId Chat room ID
- * @return array Announcement information or error
- */
- public function getRoomAnnouncement($roomId)
- {
- if (!trim($roomId)) {
- \Easemob\exception('Please pass the chat room ID');
- }
- $uri = $this->auth->getBaseUri() . '/chatrooms/'. $roomId . '/announcement';
- $resp = Http::get($uri, $this->auth->headers());
- if (!$resp->ok()) {
- return \Easemob\error($resp);
- }
- $data = $resp->data();
- return $data['data'];
- }
- /**
- * \~chinese
- * \brief
- * 修改聊天室公告
- *
- * \details
- * 修改指定聊天室 ID 的聊天室公告。聊天室公告内容不能超过 512 个字符。
- * @param string $roomId 聊天室 ID
- * @param string $announcement 聊天室公告内容
- * @return boolean|array 成功或者错误
- *
- * \~english
- * \brief
- * Modify chat announcement
- *
- * \details
- * Modify the chat announcement of the specified chat ID. The content of chat room announcement cannot exceed 512 characters.
- * @param string $roomId Chat room ID
- * @param string $announcement Chat room announcement content
- * @return boolean|array Success or error
- */
- public function updateRoomAnnouncement($roomId, $announcement)
- {
- if (!trim($roomId) || !trim($announcement)) {
- \Easemob\exception('Please pass the chat room ID and announcement content');
- }
- if (mb_strlen($announcement) > 512) {
- \Easemob\exception('The content of the announcement room cannot exceed 512 characters');
- }
- $uri = $this->auth->getBaseUri() . '/chatrooms/' . $roomId . '/announcement';
- $body = compact('announcement');
- $resp = Http::post($uri, $body, $this->auth->headers());
- if (!$resp->ok()) {
- return \Easemob\error($resp);
- }
- $data = $resp->data();
- return $data['data']['result'];
- }
- /**
- * \~chinese
- * \brief
- * 分页获取聊天室成员
- *
- * @param string $roomId 聊天室 ID
- * @param int $pageSize 每页获取的群组数量,默认取 10 条
- * @param int $pageNum 当前页码,默认取第 1 页
- * @return array 聊天室成员信息或者错误
- *
- * \~english
- * \brief
- * Paging to get chat room members
- *
- * @param string $roomId Chat room ID
- * @param int $pageSize The number of groups obtained per page is 10 by default
- * @param int $pageNum The current page number is page 1 by default
- * @return array Chat room member information or error
- */
- public function listRoomMembers($roomId, $pageSize = 10, $pageNum = 1)
- {
- if (!trim($roomId)) {
- \Easemob\exception('Please pass the chat room ID');
- }
- $pageSize = (int)$pageSize >= 0 ? (int)$pageSize : 10;
- $pageNum = (int)$pageNum > 0 ? (int)$pageNum : 1;
- $uri = $this->auth->getBaseUri() . '/chatrooms/' . $roomId . '/users';
- $uri .= $pageSize ? ('?pagesize=' . $pageSize . '&pagenum=' . $pageNum) : '';
- $resp = Http::get($uri, $this->auth->headers());
- if (!$resp->ok()) {
- return \Easemob\error($resp);
- }
- $data = $resp->data();
- return $data['data'];
- }
- /**
- * \~chinese
- * \brief
- * 获取聊天室所有成员
- *
- * @param string $roomId 聊天室 ID
- * @return array 聊天室成员信息或者错误
- *
- * \~english
- * \brief
- * Get all members of the chat room
- *
- * @param string $roomId Chat room ID
- * @return array Chat room member information or error
- */
- public function listRoomMembersAll($roomId)
- {
- return $this->listRoomMembers($roomId, 0);
- }
- /**
- * \~chinese
- * \brief
- * 添加单个聊天室成员
- *
- * \details
- * 一次给聊天室添加一个成员,不能重复添加同一个成员。如果用户已经是聊天室成员,将添加失败,并返回错误。
- *
- * @param string $roomId 聊天室 ID
- * @param string $username 环信用户 ID
- * @return boolean|array 成功或者错误
- *
- * \~english
- * \brief
- * Add individual chat room members
- *
- * \details
- * Add one member to the chat room at a time. You cannot add the same member repeatedly. If the user is already a member of the chat room, the addition will fail with an error.
- *
- * @param string $roomId Chat room ID
- * @param string $username User name
- * @return boolean|array Success or error
- */
- public function addRoomMember($roomId, $username)
- {
- return $this->addUsers($roomId, $username);
- }
- /**
- * \~chinese
- * \brief
- * 批量添加聊天室成员
- *
- * \details
- * 向聊天室添加多位用户,一次性最多可添加 60 位用户。
- *
- * @param string $roomId 聊天室 ID
- * @param array $usernames 环信用户 ID 数组
- * @return boolean|array 成功或者错误
- *
- * \~english
- * \brief
- * Batch add chat members
- *
- * \details
- * Add more than 60 users to the chat room at one time.
- *
- * @param string $roomId Chat room ID
- * @param array $usernames User name array
- * @return boolean|array Success or error
- */
- public function addRoomMembers($roomId, $usernames)
- {
- return $this->addUsers($roomId, $usernames);
- }
- /**
- * \~chinese
- * \brief
- * 删除单个聊天室成员
- *
- * \details
- * 从聊天室删除一个成员。如果被删除用户不在聊天室中,或者聊天室不存在,将返回错误。
- *
- * @param string $roomId 聊天室 ID
- * @param string $username 环信用户 ID
- * @return boolean|array 成功或者错误
- *
- * \~english
- * \brief
- * Delete individual chat members
- *
- * \details
- * Delete a member from the chat room. If the deleted user is not in the chat room, or the chat room does not exist, an error will be returned.
- *
- * @param string $roomId Chat room ID
- * @param string $username User name
- * @return boolean|array Success or error
- */
- public function removeRoomMember($roomId, $username)
- {
- return $this->removeUsers($roomId, $username);
- }
- /**
- * \~chinese
- * \brief
- * 批量删除聊天室成员
- *
- * \details
- * 从聊天室删除多个成员。如果被删除用户不在聊天室中,或者聊天室不存在,将返回错误。
- *
- * 一次最多传 100 个用户 ID。
- *
- * @param string $roomId 聊天室 ID
- * @param array $usernames 环信用户 ID 数组
- * @return boolean|array 成功或者错误
- *
- * \~english
- * \brief
- * Batch delete chat room members
- *
- * \details
- * Delete multiple members from the chat room. If the deleted user is not in the chat room, or the chat room does not exist, an error will be returned.
- *
- * Up to 100 user IDs can be transmitted at a time.
- *
- * @param string $roomId Chat room ID
- * @param array $usernames User name array
- * @return boolean|array Success or error
- */
- public function removeRoomMembers($roomId, $usernames)
- {
- return $this->removeUsers($roomId, $usernames);
- }
- /**
- * \~chinese
- * \brief
- * 获取聊天室管理员列表
- *
- * @param string $roomId 聊天室 ID
- * @return array 聊天室管理员列表信息或者错误
- *
- * \~english
- * \brief
- * Get the list of chat room administrators
- *
- * @param string $roomId Chat room ID
- * @return array Chat room administrator list information or error
- */
- public function listRoomAdminsAll($roomId)
- {
- if (!trim($roomId)) {
- \Easemob\exception('Please pass the chat room ID');
- }
- $uri = $this->auth->getBaseUri() . '/chatrooms/' . $roomId . '/admin';
- $resp = Http::get($uri, $this->auth->headers());
- if (!$resp->ok()) {
- return \Easemob\error($resp);
- }
- $data = $resp->data();
- return $data['data'];
- }
- /**
- * \~chinese
- * \brief
- * 添加聊天室管理员
- *
- * @param string $roomId 聊天室 ID
- * @param string $newadmin 添加的新管理员用户 ID
- * @return boolean|array 成功或者错误
- *
- * \~english
- * \brief
- * Add chat administrator
- *
- * @param string $roomId Chat room ID
- * @param string $newadmin New administrator user ID added
- * @return boolean|array Success or error
- */
- public function promoteRoomAdmin($roomId, $newadmin)
- {
- if (!trim($roomId) || !trim($newadmin)) {
- \Easemob\exception('Please pass the chat room ID and the new administrator user ID to be added');
- }
- $uri = $this->auth->getBaseUri() . '/chatrooms/' . $roomId . '/admin';
- $body = compact('newadmin');
- $resp = Http::post($uri, $body, $this->auth->headers());
- if (!$resp->ok()) {
- return \Easemob\error($resp);
- }
- return true;
- }
- /**
- * \~chinese
- * \brief
- * 移除聊天室管理员
- *
- * \details
- * 将用户的角色从聊天室管理员降为普通聊天室成员。
- *
- * @param string $roomId 聊天室 ID
- * @param string $oldadmin 移除的管理员用户 ID
- * @return boolean|array 成功或者错误
- *
- * \~english
- * \brief
- * Remove chat admin
- *
- * \details
- * Reduce the user's role from chat room administrator to ordinary chat room member.
- *
- * @param string $roomId Chat room ID
- * @param string $oldadmin Removed administrator user ID
- * @return boolean|array Success or error
- */
- public function demoteRoomAdmin($roomId, $oldadmin)
- {
- if (!trim($roomId) || !trim($oldadmin)) {
- \Easemob\exception('Please pass the chat room ID and the administrator user ID to be removed');
- }
- $uri = $this->auth->getBaseUri() . '/chatrooms/' . $roomId . '/admin/' . $oldadmin;
- $resp = Http::delete($uri, null, $this->auth->headers());
- if (!$resp->ok()) {
- return \Easemob\error($resp);
- }
- $data = $resp->data();
- return $data['data']['result'] === 'success' ? true : false;
- }
- /**
- * \~chinese
- * \brief
- * 分页获取聊天室超级管理员列表
- *
- * @param int $pageSize 每页获取的数量,默认取 10 条
- * @param int $pageNum 当前页码,默认取第 1 页
- * @return array 超级管理员列表信息或者错误
- *
- * \~english
- * \brief
- * Paging to get the list of chat room super administrators
- *
- * @param int $pageSize The quantity obtained per page is 10 by default
- * @param int $pageNum The current page number is page 1 by default
- * @return array Super administrator list information or error
- */
- public function listRoomSuperAdmins($pageSize = 10, $pageNum = 1)
- {
- return $this->superAdmins($pageSize, $pageNum);
- }
- /// @cond
- public function listRoomSuperAdminsAll()
- {
- return $this->superAdmins(0);
- }
- /// @endcond
- /**
- * \~chinese
- * \brief
- * 添加超级管理员
- *
- * \details
- * 给用户添加聊天室超级管理员身份,一次只能添加一个。
- *
- * @param string $superadmin 添加的用户名称
- * @return boolean|array 成功或者错误
- *
- * \~english
- * \brief
- * Add super administrator
- *
- * \details
- * Add the chat room super administrator identity to users. You can only add one at a time.
- *
- * @param string $superadmin User name
- * @return boolean|array Success or error
- */
- public function promoteRoomSuperAdmin($superadmin)
- {
- if (!is_string($superadmin) || !trim($superadmin)) {
- \Easemob\exception('Please pass the user name');
- }
- $uri = $this->auth->getBaseUri() . '/chatrooms/super_admin';
- $resp = Http::post($uri, compact('superadmin'), $this->auth->headers());
- if (!$resp->ok()) {
- return \Easemob\error($resp);
- }
- return true;
- }
- /**
- * \~chinese
- * \brief
- * 撤销超级管理员
- *
- * @param string $superadmin 需要移除的 IM 用户名
- * @return boolean|array 成功或者错误
- *
- * \~chinese
- * \brief
- * 撤销超级管理员
- *
- * @param string $superadmin User name
- * @return boolean|array Success or error
- */
- public function demoteRoomSuperAdmin($superadmin)
- {
- if (!trim($superadmin)) {
- \Easemob\exception('Please pass the user name');
- }
- $uri = $this->auth->getBaseUri() . '/chatrooms/super_admin/' . $superadmin;
- $resp = Http::delete($uri, null, $this->auth->headers());
- if (!$resp->ok()) {
- return \Easemob\error($resp);
- }
- return true;
- }
- /**
- * @ignore (批量)添加聊天室成员
- * @param string $roomId 聊天室 ID
- * @param string|array $usernames 环信用户 ID
- * @return boolean|array 成功或者错误
- */
- private function addUsers($roomId, $usernames)
- {
- if (!trim($roomId)) {
- \Easemob\exception('Please pass the chat room ID');
- }
- if ((is_array($usernames) && empty($usernames)) || (is_string($usernames) && !trim($usernames))) {
- \Easemob\exception('Please pass the user name');
- }
- $uri = $this->auth->getBaseUri() . '/chatrooms/' . $roomId . '/users';
- $uri .= is_array($usernames) ? '' : ('/' . $usernames);
- $body = is_array($usernames) ? compact('usernames') : null;
- $resp = Http::post($uri, $body, $this->auth->headers());
- if (!$resp->ok()) {
- return \Easemob\error($resp);
- }
- return true;
- }
- /**
- * @ignore (批量)移除聊天室成员
- * @param string $roomId 聊天室 ID
- * @param string|array $usernames 环信用户 ID,string: 移除单个成员;array: 批量移除成员
- * @return boolean|array 成功或者错误
- */
- private function removeUsers($roomId, $usernames)
- {
- if (!trim($roomId)) {
- \Easemob\exception('Please pass the chat room ID');
- }
- if ((is_array($usernames) && empty($usernames)) || (is_string($usernames) && !trim($usernames))) {
- \Easemob\exception('Please pass the user name');
- }
- $uri = $this->auth->getBaseUri() . '/chatrooms/' . $roomId . '/users/';
- $uri .= is_array($usernames) ? implode(',', $usernames) : $usernames;
- $resp = Http::delete($uri, null, $this->auth->headers());
- if (!$resp->ok()) {
- return \Easemob\error($resp);
- }
- return true;
- }
- /**
- * @ignore 分页获取聊天室超级管理员列表
- * @param int $pageSize 每页获取的群组数量,默认取 10 条
- * @param int $pageNum 当前页码,默认取第 1 页
- * @return array 超级管理员列表信息或者错误
- */
- private function superAdmins($pageSize = 10, $pageNum = 1)
- {
- $pageSize = (int)$pageSize >= 0 ? (int)$pageSize : 10;
- $pageNum = (int)$pageNum > 0 ? (int)$pageNum : 1;
- $uri = $this->auth->getBaseUri() . '/chatrooms/super_admin';
- $uri .= $pageSize ? ('?pagesize=' . $pageSize . '&pagenum=' . $pageNum) : '';
- $resp = Http::get($uri, $this->auth->headers());
- if (!$resp->ok()) {
- return \Easemob\error($resp);
- }
- $data = $resp->data();
- return $data['data'];
- }
- }
|