UNPKG

n8n-nodes-evolution-api

Version:
194 lines 7.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.setTypebot = setTypebot; const n8n_workflow_1 = require("n8n-workflow"); const evolutionRequest_1 = require("../evolutionRequest"); async function setTypebot(ef) { try { const instanceName = ef.getNodeParameter('instanceName', 0); const resourceForTypebot = ef.getNodeParameter('resourceForTypebot', 0); let options; if (resourceForTypebot === 'createTypebot') { const url = ef.getNodeParameter('url', 0); const typebot = ef.getNodeParameter('typebot', 0); const triggerType = ef.getNodeParameter('triggerType', 0); const triggerOperator = ef.getNodeParameter('triggerOperator', 0); const triggerValue = ef.getNodeParameter('triggerValue', 0); const expire = ef.getNodeParameter('expire', 0); const keywordFinish = ef.getNodeParameter('keywordFinish', 0); const delayMessage = ef.getNodeParameter('delayMessage', 0); const unknownMessage = ef.getNodeParameter('unknownMessage', 0); const listeningFromMe = ef.getNodeParameter('listeningFromMe', 0); const stopBotFromMe = ef.getNodeParameter('stopBotFromMe', 0); const keepOpen = ef.getNodeParameter('keepOpen', 0); const debounceTime = ef.getNodeParameter('debounceTime', 0); const body = { enabled: true, url, typebot, triggerType, triggerOperator, triggerValue, expire, keywordFinish, delayMessage, unknownMessage, listeningFromMe, stopBotFromMe, keepOpen, debounceTime }; options = { method: 'POST', uri: `/typebot/create/${instanceName}`, body, json: true, }; } else if (resourceForTypebot === 'findTypebot') { const typebotId = ef.getNodeParameter('typebotId', 0); options = { method: 'GET', uri: typebotId ? `/typebot/fetch/${typebotId}/${instanceName}` : `/typebot/find/${instanceName}`, json: true, }; } else if (resourceForTypebot === 'updateTypebot') { const typebotId = ef.getNodeParameter('typebotId', 0); const url = ef.getNodeParameter('url', 0); const typebot = ef.getNodeParameter('typebot', 0); const expire = ef.getNodeParameter('expire', 0); const keywordFinish = ef.getNodeParameter('keywordFinish', 0); const delayMessage = ef.getNodeParameter('delayMessage', 0); const unknownMessage = ef.getNodeParameter('unknownMessage', 0); const listeningFromMe = ef.getNodeParameter('listeningFromMe', 0); const stopBotFromMe = ef.getNodeParameter('stopBotFromMe', 0); const keepOpen = ef.getNodeParameter('keepOpen', 0); const debounceTime = ef.getNodeParameter('debounceTime', 0); const triggerType = ef.getNodeParameter('triggerType', 0); const triggerOperator = ef.getNodeParameter('triggerOperator', 0); const triggerValue = ef.getNodeParameter('triggerValue', 0); const body = { enabled: true, url, typebot, expire, keywordFinish, delayMessage, unknownMessage, listeningFromMe, stopBotFromMe, keepOpen, debounceTime, triggerType, triggerOperator, triggerValue }; options = { method: 'PUT', uri: `/typebot/update/${typebotId}/${instanceName}`, body, json: true, }; } else if (resourceForTypebot === 'deleteTypebot') { const typebotId = ef.getNodeParameter('typebotId', 0); options = { method: 'DELETE', uri: `/typebot/delete/${typebotId}/${instanceName}`, json: true, }; } else if (resourceForTypebot === 'fetchSessionsTypebot') { const typebotId = ef.getNodeParameter('typebotId', 0); options = { method: 'GET', uri: `/typebot/fetchSessions/${typebotId}/${instanceName}`, json: true, }; } else if (resourceForTypebot === 'changeStatusTypebot') { const remoteJid = ef.getNodeParameter('remoteJid', 0); const status = ef.getNodeParameter('status', 0); options = { method: 'POST', uri: `/typebot/changeStatus/${instanceName}`, body: { remoteJid, status, }, json: true, }; } else if (resourceForTypebot === 'startTypebot') { const url = ef.getNodeParameter('url', 0); const typebot = ef.getNodeParameter('typebot', 0); const remoteJid = ef.getNodeParameter('remoteJid', 0); const startSession = ef.getNodeParameter('startSession', 0); const variables = ef.getNodeParameter('variables', 0); const body = { url, typebot, remoteJid, startSession, ...((variables === null || variables === void 0 ? void 0 : variables.length) && { variables }), }; options = { method: 'POST', uri: `/typebot/start/${instanceName}`, body, json: true, }; } else { const errorData = { success: false, error: { message: 'Operação do Typebot não reconhecida', details: 'A operação solicitada não é válida para o recurso do Typebot', code: 'INVALID_OPERATION', timestamp: new Date().toISOString(), }, }; throw new n8n_workflow_1.NodeOperationError(ef.getNode(), errorData.error.message, { message: errorData.error.message, description: errorData.error.details, }); } const response = await (0, evolutionRequest_1.evolutionRequest)(ef, options); return { json: { success: true, data: response, }, }; } catch (error) { const errorData = { success: false, error: { message: error.message.includes('Could not get parameter') ? 'Parâmetros inválidos ou ausentes' : 'Erro ao configurar Typebot', details: error.message.includes('Could not get parameter') ? 'Verifique se todos os campos obrigatórios foram preenchidos corretamente' : error.message, code: error.code || 'UNKNOWN_ERROR', timestamp: new Date().toISOString(), }, }; if (!ef.continueOnFail()) { throw new n8n_workflow_1.NodeOperationError(ef.getNode(), error.message, { message: errorData.error.message, description: errorData.error.details, }); } return { json: errorData, error: errorData, }; } } //# sourceMappingURL=setTypebot.js.map