UNPKG

n8n-nodes-evolution-api

Version:
111 lines 4.29 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.sendList = sendList; const n8n_workflow_1 = require("n8n-workflow"); const evolutionRequest_1 = require("../evolutionRequest"); async function sendList(ef) { var _a, _b, _c; try { const instanceName = ef.getNodeParameter('instanceName', 0); const remoteJid = ef.getNodeParameter('remoteJid', 0); const title = ef.getNodeParameter('title', 0); const description = ef.getNodeParameter('description', 0); const buttonText = ef.getNodeParameter('buttonText', 0); const sections = ef.getNodeParameter('sections.sectionValues', 0); if (!Array.isArray(sections) || sections.length === 0) { const errorData = { success: false, error: { message: 'Lista de seções inválida', details: 'É necessário fornecer pelo menos uma seção com opções', code: 'INVALID_SECTIONS', timestamp: new Date().toISOString(), }, }; return { json: errorData, error: errorData, }; } const options = ef.getNodeParameter('options_message', 0, {}); const body = { number: remoteJid, title, description, buttonText, footerText: options.footer || '', sections: sections.map(section => ({ title: section.title, rows: section.rows.rowValues.map(row => ({ title: row.title, description: row.description || '', rowId: row.rowId || `${section.title}_${row.title}` })) })) }; if (options.delay) body.delay = options.delay; if ((_b = (_a = options.quoted) === null || _a === void 0 ? void 0 : _a.messageQuoted) === null || _b === void 0 ? void 0 : _b.messageId) { body.quoted = { key: { id: options.quoted.messageQuoted.messageId, }, }; } if ((_c = options.mentions) === null || _c === void 0 ? void 0 : _c.mentionsSettings) { const { mentionsEveryOne, mentioned } = options.mentions.mentionsSettings; if (mentionsEveryOne) { body.mentionsEveryOne = true; } else if (mentioned) { const mentionedNumbers = mentioned .split(',') .map(num => num.trim()) .map(num => num.includes('@s.whatsapp.net') ? num : `${num}@s.whatsapp.net`); body.mentioned = mentionedNumbers; } } const requestOptions = { method: 'POST', headers: { 'Content-Type': 'application/json', }, uri: `/message/sendList/${instanceName}`, body, json: true, }; const response = await (0, evolutionRequest_1.evolutionRequest)(ef, requestOptions); 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 enviar lista', 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=sendList.js.map