UNPKG

@tuanltntu/n8n-nodes-bitrix24

Version:

Comprehensive n8n community node for Bitrix24 API integration with CRM, Tasks, Chat, Telephony, and more

108 lines 4.38 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MessageServiceResourceHandler = void 0; const n8n_workflow_1 = require("n8n-workflow"); const ResourceHandlerBase_1 = require("./ResourceHandlerBase"); /** * Handler for Bitrix24 MessageService operations */ class MessageServiceResourceHandler extends ResourceHandlerBase_1.ResourceHandlerBase { constructor(executeFunctions, returnData, options = {}) { super(executeFunctions, returnData, options); this.resourceEndpoints = { sendMessage: "messageservice.message.send", getProviders: "messageservice.provider.list", getProviderLimits: "messageservice.provider.limits.get", getMessageStatus: "messageservice.message.status.get", }; } /** * Process MessageService operations */ async process() { for (let i = 0; i < this.items.length; i++) { try { const operation = this.getNodeParameter("operation", i); if (!this.resourceEndpoints[operation]) { throw new n8n_workflow_1.NodeOperationError(this.executeFunctions.getNode(), `The operation "${operation}" is not supported for MessageService`, { itemIndex: i }); } const endpoint = this.resourceEndpoints[operation]; let responseData; switch (operation) { case "sendMessage": responseData = await this.handleSendMessage(endpoint, i); break; case "getProviders": responseData = await this.handleGetProviders(endpoint, i); break; case "getProviderLimits": responseData = await this.handleGetProviderLimits(endpoint, i); break; case "getMessageStatus": responseData = await this.handleGetMessageStatus(endpoint, i); break; default: throw new n8n_workflow_1.NodeOperationError(this.executeFunctions.getNode(), `The operation "${operation}" is not supported`, { itemIndex: i }); } this.addResponseToReturnData(responseData, i); } catch (error) { if (this.continueOnFail()) { this.addErrorToReturnData(error, i); } else { throw error; } } } return this.returnData; } /** * Handle send message operation */ async handleSendMessage(endpoint, itemIndex) { const phoneNumber = this.getNodeParameter("phoneNumber", itemIndex); const message = this.getNodeParameter("message", itemIndex); const options = this.getNodeParameter("options", itemIndex, {}); const body = { phone: phoneNumber, message: message, }; // Add any additional options Object.assign(body, options); return this.makeApiCall(endpoint, body); } /** * Handle get providers operation */ async handleGetProviders(endpoint, itemIndex) { const options = this.getNodeParameter("options", itemIndex, {}); return this.makeApiCall(endpoint, options); } /** * Handle get provider limits operation */ async handleGetProviderLimits(endpoint, itemIndex) { const providerId = this.getNodeParameter("providerId", itemIndex); const options = this.getNodeParameter("options", itemIndex, {}); const body = { provider_id: providerId, ...options, }; return this.makeApiCall(endpoint, body); } /** * Handle get message status operation */ async handleGetMessageStatus(endpoint, itemIndex) { const messageId = this.getNodeParameter("messageId", itemIndex); const options = this.getNodeParameter("options", itemIndex, {}); const body = { message_id: messageId, ...options, }; return this.makeApiCall(endpoint, body); } } exports.MessageServiceResourceHandler = MessageServiceResourceHandler; //# sourceMappingURL=MessageServiceResourceHandler.js.map