n8n-walichat
Version:
n8n plugin for WaliChat
94 lines (93 loc) • 3.34 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SendMessage = void 0;
const BaseNode_1 = require("../Base/BaseNode");
const commonProperties_1 = require("./commonProperties");
class SendMessage extends BaseNode_1.BaseNode {
constructor() {
super(...arguments);
this.description = {
displayName: 'Send WhatsApp message',
name: 'walichatSendMessage',
group: ['Messages'],
version: 1,
icon: 'file:../../../icon.png',
description: 'Send a text message using the WaliChat API',
defaults: {
name: 'Send Message',
color: '#1A82e2',
},
inputs: ["main" /* NodeConnectionType.Main */],
outputs: ["main" /* NodeConnectionType.Main */],
credentials: [
{
name: 'WaliChatApiKey',
required: true,
},
],
properties: [
{
displayName: 'Message',
name: 'message',
type: 'string',
default: '',
placeholder: 'Enter the message text...',
description: 'The text message to send.',
required: true,
},
{
displayName: 'Delivery Date',
name: 'deliverAt',
type: 'string',
validateType: 'dateTime',
default: '',
placeholder: 'Enter the delivery date: 2025-06-01T12:30:00Z',
description: 'The date and time to deliver the message (ISO 8601 format). E.g: 2025-06-01T12:30:00Z',
required: false,
},
...commonProperties_1.commonProperties,
],
};
}
async execute() {
const items = this.getInputData();
const returnData = [];
for (let i = 0; i < items.length; i++) {
const apiKey = this.getNodeParameter('apiKey', i);
const device = this.getNodeParameter('device', i);
const phoneNumber = this.getNodeParameter('phoneNumber', i);
const message = this.getNodeParameter('message', i);
const deliverAt = this.getNodeParameter('deliverAt', i);
const requestBody = {
device,
phone: phoneNumber,
message,
};
if (deliverAt) {
requestBody.deliverAt = deliverAt;
}
try {
const response = await super.request({
path: '/messages',
method: 'POST',
body: requestBody,
headers: {
'Authorization': `Bearer ${apiKey}`,
},
});
returnData.push({
json: response,
});
}
catch (error) {
returnData.push({
json: {
error: error.message,
},
});
}
}
return [returnData];
}
}
exports.SendMessage = SendMessage;