UNPKG

ws-cloud-api

Version:

WhatsApp Cloud API for NodeJS

170 lines (166 loc) 3.44 kB
'use strict'; const messaging = require('./shared/ws-cloud-api.4b8c8a88.cjs'); const index = require('./index.cjs'); require('./media.cjs'); require('cross-fetch'); async function sendTextTemplate({ to, templateName, language, parameters, config }) { return await messaging.sendMessageRequest({ to, body: { type: index.MessageTypes.Template, [index.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 messaging.sendMessageRequest({ to, body: { type: index.MessageTypes.Template, [index.MessageTypes.Template]: { name: templateName, language: { code: language, policy: "deterministic" }, components: [ { type: "header", parameters: [headerParameters] }, { type: "body", parameters: bodyParameters } ] } }, config }); } async function sendAuthTemplate({ to, templateName, language, code, config }) { return await messaging.sendMessageRequest({ to, body: { type: index.MessageTypes.Template, [index.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 messaging.sendRequest({ id: "businessId", path: "message_templates", method, body, query, config }); if (!requestResponse.success) { console.error("Failed to get templates"); 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 }); } exports.createTemplate = createTemplate; exports.getTemplates = getTemplates; exports.sendAuthTemplate = sendAuthTemplate; exports.sendMediaTemplate = sendMediaTemplate; exports.sendTemplateRequest = sendTemplateRequest; exports.sendTextTemplate = sendTextTemplate;