node-nim
Version:
NetEase IM nodejs wrapper based on NetEase IM C++ SDK
171 lines • 5.25 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.V2NIMUserService = void 0;
const loader_1 = __importDefault(require("../loader"));
const eventemitter3_1 = require("eventemitter3");
/** @brief 用户资料服务 */
class V2NIMUserService extends eventemitter3_1.EventEmitter {
constructor() {
super();
this.instance = new loader_1.default.V2NIMUserService({ emit: this.emit.bind(this) });
}
/**
* @brief 根据用户账号列表获取用户资料
* @param accountIds 用户账号列表
* @returns void
* @example
* ```javascript
* const users = await v2.userService.getUserList(accountIds)
* ```
*/
getUserList(accountIds) {
return new Promise((resolve, reject) => {
this.instance.getUserList(accountIds, (result) => {
resolve(result);
}, (error) => {
reject(error);
});
});
}
/**
* @brief 更新自己的用户资料
* @param updateParams 更新参数
* @returns void
* @example
* ```javascript
* await v2.userService.updateSelfUserProfile(updateParams)
* ```
*/
updateSelfUserProfile(updateParams) {
return new Promise((resolve, reject) => {
this.instance.updateSelfUserProfile(updateParams, () => {
resolve();
}, (error) => {
reject(error);
});
});
}
/**
* @brief 添加用户到黑名单中
* @param accountId 用户账号
* @returns void
* @example
* ```javascript
* await v2.userService.addUserToBlockList(accountId)
* ```
*/
addUserToBlockList(accountId) {
return new Promise((resolve, reject) => {
this.instance.addUserToBlockList(accountId, () => {
resolve();
}, (error) => {
reject(error);
});
});
}
/**
* @brief 从黑名单中移除用户
* @param accountId 用户账号
* @returns void
* @example
* ```javascript
* await v2.userService.removeUserFromBlockList(accountId)
* ```
*/
removeUserFromBlockList(accountId) {
return new Promise((resolve, reject) => {
this.instance.removeUserFromBlockList(accountId, () => {
resolve();
}, (error) => {
reject(error);
});
});
}
/**
* @brief 获取黑名单列表
* @returns void
* @example
* ```javascript
* const blockList = await v2.userService.getBlockList()
* ```
*/
getBlockList() {
return new Promise((resolve, reject) => {
this.instance.getBlockList((result) => {
resolve(result);
}, (error) => {
reject(error);
});
});
}
/**
* @brief 根据用户账号列表从服务器获取用户资料, 主要使用 getUserList ,只有强制需要拉取最新用户信息才需要使用该接口
* @param accountIds 用户账号列表
* @returns void
* @example
* ```javascript
* const users = await v2.userService.getUserListFromCloud(accountIds)
* ```
*/
getUserListFromCloud(accountIds) {
return new Promise((resolve, reject) => {
this.instance.getUserListFromCloud(accountIds, (result) => {
resolve(result);
}, (error) => {
reject(error);
});
});
}
/**
* @brief 根据关键字搜索好友信息
* @param option 搜索选项 @see V2NIMUserSearchOption
* @returns Promise<Array<V2NIMUser>>
* @example
* ```javascript
* const users = await v2.userService.searchUserByOption({
* keyword: 'Alice',
* searchName: true
* })
* ```
*/
searchUserByOption(option) {
return new Promise((resolve, reject) => {
let defaultOption = {
searchName: true,
searchAccountId: false,
searchMobile: false
};
let mergedOption = Object.assign({}, defaultOption, option);
this.instance.searchUserByOption(mergedOption, (result) => {
resolve(result);
}, (error) => {
reject(error);
});
});
}
/**
* @brief 根据账号 ID 检查是否在黑名单中
* @param accountIds 账号 ID 列表
* @returns void
* @since v10.9.0
* @example
* ```javascript
* const result = await v2.userService.checkBlock(['accountId1', 'accountId2'])
* // handle result
* ```
*/
checkBlock(accountIds) {
return new Promise((resolve, reject) => {
this.instance.checkBlock(accountIds, (result) => {
resolve(result);
}, (error) => {
reject(error);
});
});
}
}
exports.V2NIMUserService = V2NIMUserService;
//# sourceMappingURL=v2_nim_user_service.js.map
;