ws-cloud-api
Version:
WhatsApp Cloud API for NodeJS
201 lines (198 loc) • 3.97 kB
JavaScript
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 };