UNPKG

node-nim

Version:

NetEase IM nodejs wrapper based on NetEase IM C++ SDK

400 lines 13 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.V2NIMConversationService = void 0; const loader_1 = __importDefault(require("../loader")); const eventemitter3_1 = require("eventemitter3"); class V2NIMConversationService extends eventemitter3_1.EventEmitter { constructor() { super(); this.instance = new loader_1.default.V2NIMConversationService({ emit: this.emit.bind(this) }); } /** * @brief 创建空会话 * @param conversationId 会话 ID * @returns V2NIMConversation * @example * ```javascript * const conversation = await v2.conversationService.createConversation('conversation1') * ``` */ createConversation(conversationId) { return new Promise((resolve, reject) => { this.instance.createConversation(conversationId, (conversation) => { resolve(conversation); }, (error) => { reject(error); }); }); } /** * @brief 删除会话 * @param conversationId 会话 ID * @param clearMessage 是否清除会话消息 * @returns void * @example * ```javascript * await v2.conversationService.deleteConversation('conversation1', true) * ``` */ deleteConversation(conversationId, clearMessage) { return new Promise((resolve, reject) => { this.instance.deleteConversation(conversationId, clearMessage, () => { resolve(); }, (error) => { reject(error); }); }); } /** * @brief 批量删除会话 * @param conversationIds 会话ID列表 * @param clearMessage 是否清除会话消息 * @returns Array<V2NIMConversationOperationResult> * @example * ```javascript * const result = await v2.conversationService.deleteConversationListByIds(['conversation1', 'conversation2'], true) * ``` */ deleteConversationListByIds(conversationIds, clearMessage) { return new Promise((resolve, reject) => { this.instance.deleteConversationListByIds(conversationIds, clearMessage, (result) => { resolve(result); }, (error) => { reject(error); }); }); } /** * @brief 置顶会话 * @param conversationId 会话 ID * @param stickTop 是否置顶 * @returns void * @example * ```javascript * await v2.conversationService.stickTopConversation('conversation1', true) * ``` */ stickTopConversation(conversationId, stickTop) { return new Promise((resolve, reject) => { this.instance.stickTopConversation(conversationId, stickTop, () => { resolve(); }, (error) => { reject(error); }); }); } /** * @brief 更新会话 * @param conversationId 会话 ID * @param updateInfo 更新参数 * @returns void * @example * ```javascript * await v2.conversationService.updateConversation('conversation1', { name: 'newName' }) * ``` */ updateConversation(conversationId, updateInfo) { return new Promise((resolve, reject) => { this.instance.updateConversation(conversationId, updateInfo, () => { resolve(); }, (error) => { reject(error); }); }); } /** * @brief 更新会话本地扩展 * @param conversationId 会话 ID * @param localExtension 本地扩展 * @returns void * @example * ```javascript * await v2.conversationService.updateConversationLocalExtension('conversation1', 'newExtension') * ``` */ updateConversationLocalExtension(conversationId, localExtension) { return new Promise((resolve, reject) => { this.instance.updateConversationLocalExtension(conversationId, localExtension, () => { resolve(); }, (error) => { reject(error); }); }); } /** @brief 获取会话 * @param conversationId 会话 ID * @returns V2NIMConversation * @example * ```javascript * const conversation = await v2.conversationService.getConversation('conversation1') * ``` */ getConversation(conversationId) { return new Promise((resolve, reject) => { this.instance.getConversation(conversationId, (conversation) => { resolve(conversation); }, (error) => { reject(error); }); }); } /** * @brief 分页获取会话列表 * @param offset 分页偏移, 首页传 0, 后续拉取采用上一次返还的 offset * @param limit 分页数量 * @returns V2NIMConversationResult * @example * ```javascript * const result = await v2.conversationService.getConversationList(0, 10) * ``` */ getConversationList(offset, limit) { return new Promise((resolve, reject) => { this.instance.getConversationList(offset, limit, (result) => { resolve(result); }, (error) => { reject(error); }); }); } /** * @brief 根据会话ID获取会话列表 * @param conversationIds 会话ID列表 * @returns Array<V2NIMConversation> * @example * ```javascript * const list = await v2.conversationService.getConversationListByIds(['conversation1', 'conversation2']) * ``` */ getConversationListByIds(conversationIds) { return new Promise((resolve, reject) => { this.instance.getConversationListByIds(conversationIds, (list) => { resolve(list); }, (error) => { reject(error); }); }); } /** * @brief 根据条件筛选分页获取会话列表 * @param offset 分页偏移, 首页传 0, 后续拉取采用上一次返还的 offset * @param limit 分页数量 * @param option 查询参数 * @returns V2NIMConversationResult * @example * ```javascript * const result = await v2.conversationService.getConversationListByOption(0, 10, { * conversationTypes: [1, 2] * }) * ``` */ getConversationListByOption(offset, limit, option) { return new Promise((resolve, reject) => { this.instance.getConversationListByOption(offset, limit, option, (result) => { resolve(result); }, (error) => { reject(error); }); }); } /** * @brief 获取会话未读总数 * @returns number * @example * ```javascript * const count = await v2.conversationService.getTotalUnreadCount() * ``` */ getTotalUnreadCount() { return this.instance.getTotalUnreadCount(); } /** @brief 根据会话 ID 列表获取未读总数 * @param conversationIds 会话 ID 列表 * @returns number * @example * ```javascript * const count = await v2.conversationService.getUnreadCountByIds(['conversation1', 'conversation2']) * ``` */ getUnreadCountByIds(conversationIds) { return new Promise((resolve, reject) => { this.instance.getUnreadCountByIds(conversationIds, (count) => { resolve(count); }, (error) => { reject(error); }); }); } /** * @brief 根据过滤条件获取会话未读总数 * @param filter 过滤条件 * @returns number * @example * ```javascript * const count = await v2.conversationService.getUnreadCountByFilter({ conversationTypes: [1, 2] }) * ``` */ getUnreadCountByFilter(filter) { return new Promise((resolve, reject) => { this.instance.getUnreadCountByFilter(filter, (count) => { resolve(count); }, (error) => { reject(error); }); }); } /** * @brief 清除会话总未读数 * @returns void * @example * ```javascript * await v2.conversationService.clearTotalUnreadCount() * ``` */ clearTotalUnreadCount() { return new Promise((resolve, reject) => { this.instance.clearTotalUnreadCount(() => { resolve(); }, (error) => { reject(error); }); }); } /** * @brief 根据会话 ID 列表清除会话未读数 * @param conversationIds 会话 ID 列表 * @returns Array<V2NIMConversationOperationResult> * @example * ```javascript * const result = await v2.conversationService.clearUnreadCountByIds(['conversation1', 'conversation2']) * ``` */ clearUnreadCountByIds(conversationIds) { return new Promise((resolve, reject) => { this.instance.clearUnreadCountByIds(conversationIds, (result) => { resolve(result); }, (error) => { reject(error); }); }); } /** * @brief 根据会话类型清除会话未读数 * @param conversationTypes 会话类型列表 * @returns void * @example * ```javascript * await v2.conversationService.clearUnreadCountByTypes([1, 2]) * ``` */ clearUnreadCountByTypes(conversationTypes) { return new Promise((resolve, reject) => { this.instance.clearUnreadCountByTypes(conversationTypes, () => { resolve(); }, (error) => { reject(error); }); }); } /** * @brief 根据会话分组清除会话未读数 * @param groupId 会话分组ID * @returns void * @example * ```javascript * await v2.conversationService.clearUnreadCountByGroupId('groupId') * ``` */ clearUnreadCountByGroupId(groupId) { return new Promise((resolve, reject) => { this.instance.clearUnreadCountByGroupId(groupId, () => { resolve(); }, (error) => { reject(error); }); }); } /** * @brief 标记会话已读时间戳 * @param conversationId 要标记的会话 ID * @returns number * @example * ```javascript * const time = await v2.conversationService.markConversationRead('conversation1') * ``` */ markConversationRead(conversationId) { return new Promise((resolve, reject) => { this.instance.markConversationRead(conversationId, (ackTime) => { resolve(ackTime); }, (error) => { reject(error); }); }); } /** * @brief 获取会话已读时间戳 * @param conversationId 会话 ID * @returns Promise<number> 时间戳 * @example * ```javascript * const time = await v2.conversationService.getConversationReadTime('conversation1') * ``` */ getConversationReadTime(conversationId) { return new Promise((resolve, reject) => { this.instance.getConversationReadTime(conversationId, (time) => { resolve(time); }, (error) => { reject(error); }); }); } /** * @brief 订阅指定过滤条件的会话未读数 * @param filter 过滤条件 * @returns null | V2NIMError * @example * ```javascript * await v2.conversationService.subscribeUnreadCountByFilter({ conversationTypes: [1, 2] }) * ``` */ subscribeUnreadCountByFilter(filter) { return this.instance.subscribeUnreadCountByFilter(filter); } /** * @brief 取消订阅指定过滤条件的会话未读数 * @param filter 过滤条件 * @returns null | V2NIMError * @example * ```javascript * await v2.conversationService.unsubscribeUnreadCountByFilter({ conversationTypes: [1, 2] }) * ``` */ unsubscribeUnreadCountByFilter(filter) { return this.instance.unsubscribeUnreadCountByFilter(filter); } /** * @brief 获取云端置顶会话列表 * @since v10.9.0 * @returns Promise<Array<V2NIMConversation>> 置顶会话列表 * @example * ```javascript * const list = await v2.conversationService.getStickTopConversationList() * ``` */ getStickTopConversationList() { return new Promise((resolve, reject) => { this.instance.getStickTopConversationList((list) => { resolve(list); }, (error) => { reject(error); }); }); } } exports.V2NIMConversationService = V2NIMConversationService; //# sourceMappingURL=v2_nim_conversation_service.js.map