UNPKG

nim-web-sdk-ng

Version:

Yunxin IM SDK next generation

162 lines (161 loc) 5.41 kB
import { V2NIMConversation, V2NIMConversationOperationResult } from './V2NIMConversationService'; import type { NIMEBaseServiceClass } from './types'; /** * 会话分组功能 * * 注: 使用 dist/esm 产物时时,需要动态引入 V2NIMConversationGroupService 后使用 * * @example * ``` * import { NIM, V2NIMConversationGroupService } from 'nim-web-sdk-ng/dist/esm/nim' * NIM.registerService(V2NIMConversationGroupService, 'V2NIMConversationGroupService') * ``` */ export declare class V2NIMConversationGroupService extends NIMEBaseServiceClass<V2NIMConversationGroupListener> { /** * 创建一个会话分组 * * 注: 在操作成功且是有效的操作时, 抛出事件 {@link V2NIMConversationGroupListener.onConversationGroupCreated | V2NIMConversationGroupListener.onConversationGroupCreated} * * @param name 分组名 * @param serverExtension 扩展字段 * @param conversationIds 所拥有的会话 id 列表 * * @example * ```ts * const conversationId1 = nim.V2NIMConversationIdUtil.p2pConversationId('TARGET_ACCOUNT_ID') * const conversationId2 = nim.V2NIMConversationIdUtil.teamConversationId('TARGET_TEAM_ID') * try { * const result = await nim.V2NIMConversationGroupService.createConversationGroup('GROUP_NAME', '', [conversationId1, conversationId2]) * // todo success. * // console.log(result.group) * } catch (err) { * // TODO failed. * // console.error(error.code) * } * ``` * */ createConversationGroup(name: string, serverExtension?: string, conversationIds?: string[]): Promise<V2NIMConversationGroupResult>; /** * 删除会话分组 * * 注: 成功删除后抛出事件 {@link V2NIMConversationGroupListener.onConversationGroupDeleted} * * @param groupId */ deleteConversationGroup(groupId: string): Promise<void>; /** * 更新会话分组 * * 注: 成功更新后抛出事件 {@link V2NIMConversationGroupListener.onConversationGroupChanged} * * @param groupId 分组 id * @param name 传入 null 或者 undefined 表示不更新; 传入空字符串会得到参数校验错误 * @param serverExtension 扩展字段 */ updateConversationGroup(groupId: string, name?: string, serverExtension?: string): Promise<void>; /** * 添加会话到相应分组下面 * * 注: 成功添加后抛出事件 {@link V2NIMConversationGroupListener.onConversationsAddedToGroup} * * @param groupId 分组 id * @param conversationIds 待添加的会话 id 列表 */ addConversationsToGroup(groupId: string, conversationIds: string[]): Promise<V2NIMConversationOperationResult[]>; /** * 从会话分组删除相应会话 * * 注: 成功添加后抛出事件 {@link V2NIMConversationGroupListener.onConversationsRemovedFromGroup} * * @param groupId 分组 id * @param conversationIds 待删除的会话 id 列表 */ removeConversationsFromGroup(groupId: string, conversationIds: string[]): Promise<V2NIMConversationOperationResult[]>; /** * 获取单个会话分组信息 * * @param groupId 会话分组的 ID */ getConversationGroup(groupId: string): Promise<V2NIMConversationGroup>; /** * 获取会话分组列表 */ getConversationGroupList(): Promise<V2NIMConversationGroup[]>; /** * 根据分组 ID 获取会话分组列表 * * @param groupIds 会话分组的 ID 列表 */ getConversationGroupListByIds(groupIds: string[]): Promise<V2NIMConversationGroup[]>; } export declare type V2NIMConversationGroup = { /** * 会话分组ID */ groupId: string; /** * 会话分组名称 */ name: string; /** * 扩展字段 */ serverExtension: string; /** * 会话分组的创建时间 */ createTime: number; /** * 会话分组的修改时间 */ updateTime: number; }; export declare type V2NIMConversationGroupResult = { /** * 会话分组信息 */ group: V2NIMConversationGroup; /** * 失败的会话列表信息 */ failedList: V2NIMConversationOperationResult[]; }; export declare type V2NIMConversationGroupConfig = {}; /** * 会话分组的监听事件 * * 注: 使用 dist/esm 产物时时,需要动态引入 V2NIMConversationGroupService 后使用 * * @example * ``` * import { NIM, V2NIMConversationGroupService } from 'nim-web-sdk-ng/dist/esm/nim' * NIM.registerService(V2NIMConversationGroupService, 'V2NIMConversationGroupService') * ``` */ export interface V2NIMConversationGroupListener { /** * 会话分组被创建 */ onConversationGroupCreated: [conversationGroup: V2NIMConversationGroup]; /** * 会话分组被删除 */ onConversationGroupDeleted: [groupId: string]; /** * 会话分组被更新 */ onConversationGroupChanged: [conversationGroup: V2NIMConversationGroup]; /** * 会话分组下的会话被添加 */ onConversationsAddedToGroup: [groupId: string, list: V2NIMConversation[]]; /** * 会话分组下的会话被删除 * * @param groupId 分组 id * @param list 会话 id 列表 */ onConversationsRemovedFromGroup: [groupId: string, list: string[]]; }