n8n-nodes-evolution-api
Version:
A Evolution API é um hub de canais com foco no WhatsApp
194 lines • 7.9 kB
JavaScript
"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