UNPKG

ws-cloud-api

Version:

WhatsApp Cloud API for NodeJS

201 lines (198 loc) 3.97 kB
import { s as sendMessageRequest, a as sendRequest } from './shared/ws-cloud-api.879de3ff.mjs'; import { MessageTypes } from './index.mjs'; import './media.mjs'; import 'cross-fetch'; async function sendTextTemplate({ to, templateName, language, parameters, config }) { return await sendMessageRequest({ to, body: { type: MessageTypes.Template, [MessageTypes.Template]: { name: templateName, language: { code: language, policy: "deterministic" }, components: [{ type: "body", parameters }] } }, config }); } async function sendMediaTemplate({ to, templateName, language, headerParameters, bodyParameters, config }) { return await sendMessageRequest({ to, body: { type: MessageTypes.Template, [MessageTypes.Template]: { name: templateName, language: { code: language, policy: "deterministic" }, components: [ { type: "header", parameters: [headerParameters] }, { type: "body", parameters: bodyParameters } ] } }, config }); } async function sendFlowTemplate({ to, templateName, language, flow, bodyParameters, config }) { return await sendMessageRequest({ to, body: { type: MessageTypes.Template, [MessageTypes.Template]: { name: templateName, language: { code: language, policy: "deterministic" }, components: [ { type: "body", parameters: bodyParameters }, { type: "button", sub_type: "flow", index: "0", parameters: [{ type: "action", action: flow }] } ] } }, config }); } async function sendAuthTemplate({ to, templateName, language, code, config }) { return await sendMessageRequest({ to, body: { type: MessageTypes.Template, [MessageTypes.Template]: { name: templateName, language: { code: language, policy: "deterministic" }, components: [ { type: "body", parameters: [{ type: "text", text: code }] }, { type: "button", sub_type: "url", index: "0", parameters: [{ type: "text", text: code }] } ] } }, config }); } async function sendTemplateRequest({ query, body, method = "GET", config }) { const requestResponse = await sendRequest({ id: "businessId", path: "message_templates", method, body, query, config }); if (!requestResponse.success) { console.error("Failed to create template"); console.log(requestResponse.error); return requestResponse; } else { return { success: true, data: requestResponse.response }; } } async function getTemplates({ fields, limit, after, before, config } = {}) { const queryParams = {}; if (fields !== void 0) queryParams.fields = fields.join(","); if (limit !== void 0) queryParams.limit = limit.toString(); if (after !== void 0) queryParams.after = after; if (before !== void 0) queryParams.before = before; return await sendTemplateRequest({ query: new URLSearchParams(queryParams).toString(), config }); } async function createTemplate({ template, config }) { return await sendTemplateRequest({ method: "POST", body: JSON.stringify(template), config }); } export { createTemplate, getTemplates, sendAuthTemplate, sendFlowTemplate, sendMediaTemplate, sendTemplateRequest, sendTextTemplate };