snglpi/src/controllers/processCommentsController.js

30 lines
1.3 KiB
JavaScript
Raw Normal View History

2025-10-13 06:06:52 -03:00
const {fetchCommentsFromServiceNow } = require('../services/servicenowService');
const { syncCommentsGlpitoSN, syncCommentsSNtoGlpi } = require('../services/glpiCommentService');
const TicketSyncModel = require('../models/ticketSyncModel');
const { logInfo } = require('../utils/logger');
2025-10-13 06:06:52 -03:00
const processCommentsController = async () => {
const ticketsToMonitor = await TicketSyncModel.getTicketsToMonitor();
logInfo(`📋Tickets em monitoramento: ${ticketsToMonitor.length}`);
for (const ticket of ticketsToMonitor){
// Sincroniza comentários do ServiceNow para o GLPI
const comments = await fetchCommentsFromServiceNow(ticket);
// Se houver comentários novos no ServiceNow, sincroniza para o GLPI
if(comments.length != 0){await syncCommentsSNtoGlpi(comments, ticket);}
// Sincroniza comentários do GLPI para o ServiceNow
await syncCommentsGlpitoSN(ticket);
}
}
2025-10-13 06:06:52 -03:00
module.exports = {
processCommentsController
}
/**
* @file processCommentsController.js
* @description Este controlador orquestra a sincronização bidirecional de comentários para todos os tickets ativos.
* Ele busca tickets que estão sendo monitorados e, para cada um, executa a sincronização de comentários do ServiceNow para o GLPI e vice-versa.
*/