n8n-nodes-evolution-api
Version:
A Evolution API é um hub de canais com foco no WhatsApp
94 lines • 3.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.sendStories = sendStories;
const n8n_workflow_1 = require("n8n-workflow");
const evolutionRequest_1 = require("../evolutionRequest");
async function sendStories(ef) {
try {
const instanceName = ef.getNodeParameter('instanceName', 0);
const content = ef.getNodeParameter('content', 0);
const type = ef.getNodeParameter('type', 0);
const caption = ef.getNodeParameter('caption', 0, '');
const allContacts = ef.getNodeParameter('allContacts', 0, false);
const backgroundColor = ef.getNodeParameter('backgroundColor', 0, '#000000');
const font = ef.getNodeParameter('font', 0, 1);
if (type !== 'text' && !content.startsWith('http') && !content.startsWith('data:')) {
const errorData = {
success: false,
error: {
message: 'Formato de conteúdo inválido',
details: 'O conteúdo deve ser uma URL válida ou um base64',
code: 'INVALID_CONTENT_FORMAT',
timestamp: new Date().toISOString(),
},
};
return {
json: errorData,
error: errorData,
};
}
const body = {
type,
content,
backgroundColor,
font,
allContacts
};
if ((type === 'image' || type === 'video') && caption) {
body.caption = caption;
}
if (!allContacts) {
const statusJidList = ef.getNodeParameter('statusJidList', 0, '');
if (statusJidList) {
body.statusJidList = statusJidList.split(',')
.map(num => num.trim())
.map(num => num.includes('@s.whatsapp.net') ? num : `${num}@s.whatsapp.net`);
}
}
const requestOptions = {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
uri: `/message/sendStatus/${instanceName}`,
body,
json: true,
};
const response = await (0, evolutionRequest_1.evolutionRequest)(ef, requestOptions);
if (!response) {
throw new Error('Resposta vazia do servidor');
}
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 status',
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=sendStories.js.map