Files
SLACK_COORD_RELATORIO/coordenador/n8n/nodes/guard-envio-slack.node.js
T
Gustavo Santos e322cec92b chore: import coordenador (subtree)
git-subtree-dir: coordenador
git-subtree-mainline: facbe2e340
git-subtree-split: ce7af94d55
2026-10-01 14:25:55 -03:00

27 lines
1.2 KiB
JavaScript

// @requires config.js hash.js slack.js
// Roda depois de "Data Table - Buscar Envios Recentes" (fetch por report_date=hoje), que existe
// so pra trazer os registros de envio ja existentes; os dados do digest sao lidos por nome
// (mesmo padrao ja usado em Code - Comparar Legacy x V2).
const digestData = $('Code - Montar Digest Coordenacao').first().json; // { mensagem, selected, excluded, dateStr, digest, changedBlocked }
const config = digestData.selected.length ? digestData.selected[0].config : parseConfig($('Config - Coordenador GLPI v2').first().json);
const existingRecords = $input.all().map((item) => item.json);
// $execution.mode: 'manual' quando disparado pelo Manual Trigger, senao ('trigger' no
// Schedule Trigger) tratamos como execucao agendada. Nao inventa um mecanismo novo de deteccao.
const runType = $execution.mode === 'manual' ? 'manual' : 'scheduled';
const messageHash = computeMessageHash(digestData.mensagem);
const guard = evaluateSendGuard({
config, existingRecords, reportDate: digestData.dateStr, runType, messageHash,
});
return [{
json: {
mensagem: digestData.mensagem,
dateStr: digestData.dateStr,
runType,
messageHash,
shouldSend: guard.shouldSend,
reason: guard.reason,
},
}];