rcs-sdk
Version:
封装客户端与平台间的相互调用功能。
102 lines • 4.96 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __rest = (this && this.__rest) || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]];
}
return t;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.detailByUser = exports.listByUser = void 0;
const rcs_data_1 = require("rcs-data");
const constants_1 = require("../constants");
const util_1 = require("../util");
const request_1 = require("../util/request");
function listByUser() {
return __awaiter(this, void 0, void 0, function* () {
let data;
if ((0, util_1.runAsMock)('contact')) {
const { mockFilePathContactList } = this.config;
data = yield (0, util_1.getMockData)(mockFilePathContactList);
}
else {
try {
const access_token = this.accessToken.value;
const cmd = `${this.config.contactApiServer}/mongo/document/getContactList?access_token=${access_token}&db=vCard&cl=users`;
const params = {
timeout: this.config.contactApiTimeout,
};
data = yield request_1.default.post(cmd, { params }).then((r) => {
if (r['code'] != 0) {
return Promise.reject({ message: r['msg'] });
}
return r['result'];
});
}
catch (error) {
return (0, util_1.newSdkResult)(constants_1.RequestFunc.GETCONTACTLIST, null, 1001, error.message);
}
}
let contacts;
contacts = data.map((_a) => {
var { userid, nickname, domain, sex, headimgurl } = _a, extra = __rest(_a, ["userid", "nickname", "domain", "sex", "headimgurl"]);
let [host, port] = domain.split(':');
let nameAddr = new rcs_data_1.NameAddrHeader(new rcs_data_1.URI('sip', extra.mobile, host, port), nickname);
return { userid, nameAddr, headimgurl, sex, extra };
});
const sdkrst = (0, util_1.newSdkResult)(constants_1.RequestFunc.GETCONTACTLIST, contacts);
return sdkrst;
});
}
exports.listByUser = listByUser;
function detailByUser(userid) {
return __awaiter(this, void 0, void 0, function* () {
let access_token = this.accessToken.value;
let data;
if ((0, util_1.runAsMock)('contact')) {
const { mockFilePathContactList } = this.config;
data = yield (0, util_1.getMockData)(mockFilePathContactList);
}
else {
try {
const cmd = `${this.config.contactApiServer}/mongo/document/getContactDetail?access_token=${access_token}&db=vCard&cl=users&userid=${userid}`;
const params = {
timeout: this.config.contactApiTimeout,
};
data = yield request_1.default.post(cmd, { params }).then((r) => {
if (r['code'] != 0) {
return Promise.reject({ message: r['msg'] });
}
return r['result'];
});
}
catch (error) {
return (0, util_1.newSdkResult)(constants_1.RequestFunc.GETCONTACTDETAIL, null, 1001, error.message);
}
}
let contacts;
contacts = data.map((_a) => {
var { userid, nickname, domain, sex, headimgurl } = _a, extra = __rest(_a, ["userid", "nickname", "domain", "sex", "headimgurl"]);
let [host, port] = domain.split(':');
let nameAddr = new rcs_data_1.NameAddrHeader(new rcs_data_1.URI('sip', extra.mobile, host, port), nickname);
return { userid, nameAddr, headimgurl, sex, extra };
});
const sdkrst = (0, util_1.newSdkResult)(constants_1.RequestFunc.GETCONTACTDETAIL, contacts);
return sdkrst;
});
}
exports.detailByUser = detailByUser;
//# sourceMappingURL=contact.js.map