UNPKG

@lcap/cli

Version:

utils for lcap

91 lines 2.92 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getPersonName = exports.postRobotTeam = exports.postRobotP2P = exports.fetchToken = void 0; const axios_1 = __importDefault(require("axios")); const constant_1 = require("./constant"); const utils_1 = require("../utils"); function fetchToken(token) { return axios_1.default .post(constant_1.PopoApi.GetToken, { appId: token.id, appSecret: token.secret, }, { headers: { 'Content-Type': 'application/json', }, }) .then(({ data }) => { return data.data.openAccessToken; }); } exports.fetchToken = fetchToken; /** 对单人发消息 */ async function postRobotP2P(token, body) { const data = { sender: body.sender, receiver: body.receiver, message: (0, utils_1.formatMessage)(body.message), }; return axios_1.default.post(constant_1.PopoApi.ToPerson, data, { headers: { 'Open-Access-Token': token, 'Content-Type': 'application/json', }, }); } exports.postRobotP2P = postRobotP2P; /** 群发消息 */ async function postRobotTeam(token, body) { const data = { sender: body.sender, receiver: body.receiver, message: (0, utils_1.formatMessage)(body.message), atUids: [], isAtAll: false, }; if (data.message.includes('@所有人')) { data.isAtAll = true; } const emails = (data.message.match(/@[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+(\.[a-zA-Z]+)+/g) ?? []) .map((email) => email.substring(1)); if (emails && emails.length > 0) { const names = await Promise.all(emails.map((email) => getPersonName(token, email))); for (let i = 0; i < emails.length; i++) { const email = emails[i]; const name = names[i]; if (email && name && typeof name === 'string') { data.message = data.message.replace(`@${email}`, `@${name}`); data.atUids.push(email); } } } return axios_1.default.post(constant_1.PopoApi.ToTeam, data, { headers: { 'Open-Access-Token': token, 'Content-Type': 'application/json', }, }); } exports.postRobotTeam = postRobotTeam; /** * 通过邮箱反查用户名称 */ async function getPersonName(token, email) { return axios_1.default .get(constant_1.PopoApi.GetPerson, { params: { email, }, headers: { 'Open-Access-Token': token, 'Content-Type': 'application/json', }, }) .then(({ data }) => data.data.name) .catch(() => void 0); } exports.getPersonName = getPersonName; //# sourceMappingURL=api.js.map