2025-08-30 19:04:35 -03:00
|
|
|
const axios = require('axios');
|
2025-09-03 11:13:23 -03:00
|
|
|
const apiConfig = require('../../config/apiConfig');
|
|
|
|
|
const fs = require('fs');
|
2025-09-05 20:28:15 -03:00
|
|
|
const TicketSnModel = require('../models/ticketSnModel');
|
|
|
|
|
const { logInfo, logError, logSync } = require('../utils/logger');
|
2025-08-30 19:04:35 -03:00
|
|
|
|
2025-09-03 11:13:23 -03:00
|
|
|
const fetchTicketsFromServiceNow = async () => {
|
2025-08-30 19:04:35 -03:00
|
|
|
try {
|
2025-09-05 20:28:15 -03:00
|
|
|
logInfo('📡 Buscando incidentes do ServiceNow...', { service: 'servicenow' });
|
2025-09-03 21:40:04 -03:00
|
|
|
|
2025-09-03 16:11:30 -03:00
|
|
|
const ticketsResponse = await axios.get(apiConfig.snIncidentConfig.baseUrl, {
|
|
|
|
|
auth: apiConfig.servicenowAuthentication.auth
|
2025-09-03 11:13:23 -03:00
|
|
|
});
|
|
|
|
|
|
2025-09-05 20:28:15 -03:00
|
|
|
// comentado para evitar muitos arquivos
|
2025-09-08 20:35:49 -03:00
|
|
|
fs.writeFileSync('servicenow_tickets.json', JSON.stringify(ticketsResponse.data, null, 2));
|
2025-09-05 20:28:15 -03:00
|
|
|
//logInfo('💾 Backup JSON de incidentes salvo', { count: ticketsResponse.data.result.length });
|
2025-09-03 21:40:04 -03:00
|
|
|
|
|
|
|
|
// Salvar os tickets no banco de dados
|
2025-09-05 20:28:15 -03:00
|
|
|
logInfo('💾 Iniciando salvamento de incidentes no banco...');
|
2025-09-03 21:40:04 -03:00
|
|
|
for (const ticket of ticketsResponse.data.result) {
|
2025-09-05 20:28:15 -03:00
|
|
|
await TicketSnModel.saveTicket(ticket, 'incidente');
|
2025-09-03 21:40:04 -03:00
|
|
|
}
|
|
|
|
|
|
2025-09-05 20:28:15 -03:00
|
|
|
logSync('ServiceNow', ticketsResponse.data.result.length, 'incidentes');
|
2025-09-03 21:40:04 -03:00
|
|
|
|
2025-09-03 16:11:30 -03:00
|
|
|
} catch (error) {
|
2025-09-05 20:28:15 -03:00
|
|
|
logError(error, 'SERVICE NOW Tickets');
|
2025-09-03 16:11:30 -03:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const fetchRequestsFromServiceNow = async () => {
|
|
|
|
|
try {
|
2025-09-05 20:28:15 -03:00
|
|
|
logInfo('📡 Buscando requisições do ServiceNow...', { service: 'servicenow' });
|
|
|
|
|
|
2025-09-03 16:11:30 -03:00
|
|
|
const requestsResponse = await axios.get(apiConfig.snRequestConfig.baseUrl, {
|
|
|
|
|
auth: apiConfig.servicenowAuthentication.auth
|
|
|
|
|
});
|
|
|
|
|
|
2025-09-05 20:28:15 -03:00
|
|
|
// Comentado para evitar muitos arquivos
|
2025-09-08 20:35:49 -03:00
|
|
|
fs.writeFileSync('servicenow_requests.json', JSON.stringify(requestsResponse.data, null, 2));
|
2025-09-05 20:28:15 -03:00
|
|
|
//logInfo('💾 Backup JSON de requisições salvo', { count: requestsResponse.data.result.length });
|
2025-09-03 16:11:30 -03:00
|
|
|
|
2025-09-05 20:28:15 -03:00
|
|
|
// Salvar as requisições no banco de dados
|
|
|
|
|
logInfo('💾 Iniciando salvamento de requisições no banco...');
|
2025-09-03 21:40:04 -03:00
|
|
|
for (const request of requestsResponse.data.result) {
|
2025-09-05 20:28:15 -03:00
|
|
|
await TicketSnModel.saveTicket(request, 'requisicao');
|
2025-09-03 21:40:04 -03:00
|
|
|
}
|
|
|
|
|
|
2025-09-05 20:28:15 -03:00
|
|
|
logSync('ServiceNow', requestsResponse.data.result.length, 'requisições');
|
2025-09-03 21:40:04 -03:00
|
|
|
|
2025-08-30 19:04:35 -03:00
|
|
|
} catch (error) {
|
2025-09-05 20:28:15 -03:00
|
|
|
logError(error, 'SERVICE NOW Requests');
|
2025-08-30 19:04:35 -03:00
|
|
|
}
|
2025-09-03 11:13:23 -03:00
|
|
|
}
|
2025-08-30 19:04:35 -03:00
|
|
|
|
|
|
|
|
module.exports = {
|
2025-09-03 16:11:30 -03:00
|
|
|
fetchTicketsFromServiceNow,
|
|
|
|
|
fetchRequestsFromServiceNow
|
2025-09-05 20:28:15 -03:00
|
|
|
}
|