UNPKG

n8n-nodes-walichat

Version:

n8n plugin for WaliChat

297 lines (296 loc) 12.6 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.WaliChat = void 0; const options = __importStar(require("./methods")); const team_1 = require("../actions/team"); const send_messages_1 = require("../actions/send-messages"); const other_1 = require("../actions/other"); const labels_1 = require("../actions/labels"); const channels_1 = require("../actions/channels"); const groups_1 = require("../actions/groups"); const catalog_1 = require("../actions/catalog"); const meeting_links_1 = require("../actions/meeting-links"); const userStatus_1 = require("../actions/userStatus"); const session_1 = require("../actions/session"); const quick_replies_1 = require("../actions/quick-replies"); const queue_1 = require("../actions/queue"); const profile_1 = require("../actions/profile"); const departments_1 = require("../actions/departments"); const campaigns_1 = require("../actions/campaigns"); const chats_1 = require("../actions/chats"); const chatContacts_1 = require("../actions/chatContacts"); const chatMessages_1 = require("../actions/chatMessages"); const chatFiles_1 = require("../actions/chatFiles"); const outboundMessages_1 = require("../actions/outboundMessages"); const outboundFiles_1 = require("../actions/outboundFiles"); const webhooks_1 = require("../actions/webhooks"); const numbers_1 = require("../actions/numbers"); class WaliChat { constructor() { this.description = { displayName: 'WaliChat', name: 'walichat', icon: 'file:icon.png', group: ['output'], version: 1, subtitle: '={{$parameter["resource"] + ": " + $parameter["operation"]}}', description: 'Interact with WaliChat WhatsApp API', defaults: { name: 'WaliChat', }, inputs: ['main'], outputs: ['main'], credentials: [ { name: 'walichatApiKey', required: true, }, ], properties: [ { displayName: 'Resource', name: 'resource', type: 'options', noDataExpression: true, options: [ { name: 'Send messages', value: 'send-messages', }, { name: 'Outbound Messages', value: 'outbound-messages', }, { name: 'WhatsApp Numbers', value: 'numbers', }, { name: 'Groups', value: 'groups', }, { name: 'Channels', value: 'channels', }, { name: 'Chats', value: 'chats', }, { name: 'Chat Contacts', value: 'chat-contacts', }, { name: 'Chat Messages', value: 'chat-messages', }, { name: 'Chat Files', value: 'chat-files', }, { name: 'Contacts', value: 'contacts', }, { name: 'Team', value: 'team', }, { name: 'Labels', value: 'labels', }, { name: 'Departments', value: 'departments' }, { name: 'Files', value: 'outbound-files', }, { name: 'Quick replies', value: 'quick-replies', }, { name: 'Queue', value: 'queue', }, { name: 'WhatsApp session', value: 'session', }, { name: 'WhatsApp profile', value: 'profile' }, { name: 'Business catalog', value: 'catalog', }, { name: 'Campaigns', value: 'campaigns', }, { name: 'Meeting Links', value: 'meeting-links', }, { name: 'User Status', value: 'user-status', }, { name: 'Webhooks', value: 'webhooks', }, { name: 'Other', value: 'other', } ], default: 'send-messages', }, ...send_messages_1.messageProperties, ...team_1.teamProperties, ...labels_1.labelProperties, ...channels_1.channelProperties, ...groups_1.groupProperties, ...catalog_1.catalogProperties, ...meeting_links_1.meetingLinkProperties, ...userStatus_1.userStatusProperties, ...session_1.sessionProperties, ...quick_replies_1.quickReplyProperties, ...queue_1.queueProperties, ...profile_1.profileProperties, ...departments_1.departmentProperties, ...campaigns_1.campaignProperties, ...chats_1.chatProperties, ...chatContacts_1.chatContactProperties, ...chatMessages_1.chatMessageProperties, ...chatFiles_1.chatFileProperties, ...outboundMessages_1.outboundMessageProperties, ...outboundFiles_1.outboundFileProperties, ...webhooks_1.webhookProperties, ...numbers_1.numberProperties, ...other_1.otherProperties, ], }; this.methods = { loadOptions: { ...options } }; } async execute() { const items = this.getInputData(); const returnData = []; for (let i = 0; i < items.length; i += 1) { try { const resource = this.getNodeParameter('resource', i); let result; if (resource === 'send-messages') { result = await send_messages_1.executeMessageOperations.call(this, i); } else if (resource === 'team') { result = await team_1.executeTeamOperations.call(this, i); } else if (resource === 'labels') { result = await labels_1.executeLabelOperations.call(this, i); } else if (resource === 'channels') { result = await channels_1.executeChannelOperations.call(this, i); } else if (resource === 'groups') { result = await groups_1.executeGroupOperations.call(this, i); } else if (resource === 'catalog') { result = await catalog_1.executeCatalogOperations.call(this, i); } else if (resource === 'meeting-links') { result = await meeting_links_1.executeMeetingLinkOperations.call(this, i); } else if (resource === 'user-status') { result = await userStatus_1.executeUserStatusOperations.call(this, i); } else if (resource === 'session') { result = await session_1.executeSessionOperations.call(this, i); } else if (resource === 'quick-replies') { result = await quick_replies_1.executeQuickReplyOperations.call(this, i); } else if (resource === 'queue') { result = await queue_1.executeQueueOperations.call(this, i); } else if (resource === 'profile') { result = await profile_1.executeProfileOperations.call(this, i); } else if (resource === 'departments') { result = await departments_1.executeDepartmentOperations.call(this, i); } else if (resource === 'campaigns') { result = await campaigns_1.executeCampaignOperations.call(this, i); } else if (resource === 'chats') { result = await chats_1.executeChatOperations.call(this, i); } else if (resource === 'chat-contacts') { result = await chatContacts_1.executeChatContactOperations.call(this, i); } else if (resource === 'chat-messages') { result = await chatMessages_1.executeChatMessageOperations.call(this, i); } else if (resource === 'chat-files') { result = await chatFiles_1.executeChatFileOperations.call(this, i); } else if (resource === 'outbound-messages') { result = await outboundMessages_1.executeOutboundMessageOperations.call(this, i); } else if (resource === 'outbound-files') { result = await outboundFiles_1.executeOutboundFileOperations.call(this, i); } else if (resource === 'webhooks') { result = await webhooks_1.executeWebhookOperations.call(this, i); } else if (resource === 'numbers') { result = await numbers_1.executeNumberOperations.call(this, i); } else if (resource === 'other') { result = await other_1.executeOtherOperations.call(this, i); } returnData.push({ json: result }); } catch (error) { if (this.continueOnFail()) { returnData.push({ json: { error: error.message } }); continue; } throw error; } } return [returnData]; } } exports.WaliChat = WaliChat;