UNPKG

zca-js

Version:

Unofficial Zalo API for JavaScript

33 lines (32 loc) 1.33 kB
import { ZaloApiError } from "../Errors/ZaloApiError.js"; import { ThreadType } from "../models/Enum.js"; import { apiFactory } from "../utils.js"; export const forwardMessageFactory = apiFactory()((api, ctx, utils) => { const serviceURLs = { [ThreadType.User]: utils.makeURL(`${api.zpwServiceMap.file[0]}/api/message/mforward`), [ThreadType.Group]: utils.makeURL(`${api.zpwServiceMap.group[0]}/api/group/mforward`), }; /** * Find user by phone number * * @param * * @throws ZaloApiError */ return async function forwardMessage(type = ThreadType.User) { const params = {}; const encryptedParams = utils.encodeAES(JSON.stringify(params)); if (!encryptedParams) throw new ZaloApiError("Failed to encrypt message"); const finalServiceUrl = new URL(serviceURLs[type]); finalServiceUrl.searchParams.append("params", encryptedParams); const response = await utils.request(utils.makeURL(finalServiceUrl.toString(), { params: encryptedParams, })); return utils.resolve(response, (result) => { if (result.error && result.error.code != 216) throw new ZaloApiError(result.error.message, result.error.code); return result.data; }); }; });