2025-10-13 06:06:52 -03:00
|
|
|
const {fetchCommentsFromServiceNow } = require('../services/servicenowService');
|
2025-10-17 16:58:14 -03:00
|
|
|
const { syncCommentsGlpitoSN, syncCommentsSNtoGlpi } = require('../services/glpiCommentService');
|
|
|
|
|
const TicketSyncModel = require('../models/ticketSyncModel');
|
2025-11-19 16:01:37 -03:00
|
|
|
const { logInfo } = require('../utils/logger');
|
2025-10-13 06:06:52 -03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
const processCommentsController = async () => {
|
2025-10-23 17:30:03 -03:00
|
|
|
const ticketsToMonitor = await TicketSyncModel.getTicketsToMonitor();
|
2025-11-19 16:01:37 -03:00
|
|
|
logInfo(`📋Tickets em monitoramento: ${ticketsToMonitor.length}`);
|
|
|
|
|
|
2025-10-17 16:58:14 -03:00
|
|
|
|
2025-10-23 17:30:03 -03:00
|
|
|
for (const ticket of ticketsToMonitor){
|
2025-11-19 16:01:37 -03:00
|
|
|
// Sincroniza comentários do ServiceNow para o GLPI
|
2025-10-17 16:58:14 -03:00
|
|
|
const comments = await fetchCommentsFromServiceNow(ticket);
|
2025-11-19 16:01:37 -03:00
|
|
|
// Se houver comentários novos no ServiceNow, sincroniza para o GLPI
|
2025-10-23 17:30:03 -03:00
|
|
|
if(comments.length != 0){await syncCommentsSNtoGlpi(comments, ticket);}
|
2025-11-19 16:01:37 -03:00
|
|
|
// Sincroniza comentários do GLPI para o ServiceNow
|
2025-10-17 16:58:14 -03:00
|
|
|
await syncCommentsGlpitoSN(ticket);
|
2025-10-29 14:20:21 -03:00
|
|
|
}
|
2025-10-17 16:58:14 -03:00
|
|
|
}
|
2025-10-29 14:20:21 -03:00
|
|
|
|
2025-10-13 06:06:52 -03:00
|
|
|
module.exports = {
|
|
|
|
|
processCommentsController
|
2025-10-29 14:20:21 -03:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @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.
|
|
|
|
|
*/
|