node-nim
Version:
NetEase IM nodejs wrapper based on NetEase IM C++ SDK
400 lines • 13 kB
JavaScript
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
;