| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266 |
- import { EMClient } from '@/EaseIM';
- const emGroups = () => {
- const fetchJoinedGroupListFromServer = (pageNum = 0, pageSize = 20) => {
- return new Promise((resolve, reject) => {
- console.log('>>>>开始获取加入的群组列表');
- EMClient.getJoinedGroups({
- pageNum,
- pageSize,
- needAffiliations: true,
- needRole: true,
- })
- .then((res) => {
- resolve(res);
- })
- .catch((error) => {
- reject(error);
- });
- });
- };
- const createNewGroup = (params) => {
- return new Promise((resolve, reject) => {
- console.log('>>>>开始创建群组');
- EMClient.createGroup({ data: { ...params } })
- .then((res) => {
- resolve(res.data);
- })
- .catch((error) => {
- reject(error);
- });
- });
- };
- const getGroupInfosFromServer = (groupId) => {
- return new Promise((resolve, reject) => {
- EMClient.getGroupInfo({
- groupId,
- })
- .then((res) => {
- resolve(res.data);
- })
- .catch((error) => {
- reject(error);
- });
- });
- };
- const getGroupMembersFromServer = (groupId) => {
- //暂且仅取前100个群成员
- const pageNum = 1,
- pageSize = 100;
- return new Promise((resolve, reject) => {
- EMClient.listGroupMembers({
- pageNum: pageNum,
- pageSize: pageSize,
- groupId,
- })
- .then((res) => {
- resolve(res.data);
- })
- .catch((error) => {
- reject(error);
- });
- });
- };
- const inviteUsersToGroup = (groupId, memberIdList) => {
- return new Promise((resolve, reject) => {
- EMClient.inviteUsersToGroup({
- groupId: groupId,
- users: memberIdList,
- })
- .then((res) => {
- resolve(res.data);
- })
- .catch((error) => {
- reject(error);
- });
- });
- };
- const leaveGroupFromServer = (groupId) => {
- return new Promise((resolve, reject) => {
- EMClient.leaveGroup({ groupId })
- .then((res) => {
- resolve(res.data);
- })
- .catch((error) => {
- reject(error);
- });
- });
- };
- const destroyGroupFromServer = (groupId) => {
- return new Promise((resolve, reject) => {
- EMClient.destroyGroup({ groupId })
- .then((res) => {
- resolve(res.data);
- })
- .catch((error) => {
- reject(error);
- });
- });
- };
- const acceptGroupInvite = (invitee, groupId) => {
- return new Promise((resolve, reject) => {
- EMClient.acceptGroupInvite({
- groupId: groupId,
- invitee: invitee,
- })
- .then((res) => {
- resolve(res.data);
- })
- .catch((error) => {
- reject(error);
- });
- });
- };
- const rejectGroupInvite = (invitee, groupId) => {
- return new Promise((resolve, reject) => {
- EMClient.rejectGroupInvite({
- groupId: groupId,
- invitee: invitee,
- })
- .then((res) => {
- resolve(res.data);
- })
- .catch((error) => {
- reject(error);
- });
- });
- };
- const joinPublicGroup = (groupId) => {
- return new Promise((resolve, reject) => {
- EMClient.joinGroup({ groupId, message: 'I want to join the group' })
- .then((res) => {
- resolve(res.data);
- })
- .catch((error) => {
- reject(error);
- });
- });
- };
- const modifyGroupInfo = (groupId, params) => {
- return new Promise((resolve, reject) => {
- EMClient.modifyGroup({
- groupId,
- ...params,
- })
- .then((res) => {
- resolve(res);
- })
- .catch((error) => {
- reject(error);
- });
- });
- };
- const removeGroupMembers = (groupId, users) => {
- return new Promise((resolve, reject) => {
- EMClient.removeGroupMembers({
- groupId,
- users,
- })
- .then((res) => {
- resolve(res.data);
- })
- .catch((error) => {
- reject(error);
- });
- });
- };
- const changeGroupOwner = (groupId, newOwner) => {
- return new Promise((resolve, reject) => {
- EMClient.changeGroupOwner({ groupId, newOwner })
- .then((res) => {
- resolve(res);
- })
- .catch((error) => {
- reject(error);
- });
- });
- };
- //分页获取群组列表
- const listGroupMembersFromServer = (params) => {
- const { pageNum = 1, pageSize = 100, groupId } = params;
- return new Promise((resolve, reject) => {
- EMClient.listGroupMembers({
- ...params,
- })
- .then((res) => {
- resolve(res.data);
- })
- .catch((error) => {
- reject(error);
- });
- });
- };
- /* 群组属性相关 */
- //获取单个用户属性
- const getSingleGroupAttributesFromServer = (groupId, userId) => {
- let options = {
- groupId,
- userId,
- };
- return new Promise((resolve, reject) => {
- EMClient.getGroupMemberAttributes({ ...options })
- .then((res) => {
- resolve(res);
- })
- .catch((error) => {
- reject(error);
- });
- });
- };
- //设置单个群组属性
- const setSingleGroupAttributesFromServer = (params) => {
- const { groupId, userId, memberAttributes } = params;
- return new Promise((resolve, reject) => {
- EMClient.setGroupMemberAttributes({
- groupId,
- userId,
- memberAttributes: { ...memberAttributes },
- })
- .then((res) => {
- resolve(res);
- })
- .catch((error) => {
- reject(error);
- });
- });
- };
- //根据key获取多个群组成员自定义属性
- const getMultiGroupAttributesFromServer = (params) => {
- const { groupId, userIds, keys } = params;
- return new Promise((resolve, reject) => {
- EMClient.getGroupMembersAttributes({
- groupId,
- userIds,
- keys,
- })
- .then((res) => {
- resolve(res.data);
- })
- .catch((error) => {
- reject(error);
- });
- });
- };
- return {
- fetchJoinedGroupListFromServer,
- createNewGroup,
- getGroupInfosFromServer,
- getGroupMembersFromServer,
- inviteUsersToGroup,
- leaveGroupFromServer,
- destroyGroupFromServer,
- acceptGroupInvite,
- rejectGroupInvite,
- joinPublicGroup,
- modifyGroupInfo,
- changeGroupOwner,
- removeGroupMembers,
- listGroupMembersFromServer,
- getSingleGroupAttributesFromServer,
- getMultiGroupAttributesFromServer,
- setSingleGroupAttributesFromServer,
- };
- };
- export default emGroups;
|