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