2025-11-06 11:48:45 -03:00
|
|
|
const loadEnv = require('./config/envLoader');
|
|
|
|
|
loadEnv();
|
2025-11-04 12:00:23 -03:00
|
|
|
|
2025-11-10 17:01:33 -03:00
|
|
|
const cron = require('node-cron');
|
|
|
|
|
const createApp = require('./app.js');
|
|
|
|
|
const { processaAtendimentos } = require('./controller/processController.js');
|
|
|
|
|
const { logInfo, logError } = require('./utils/logger.js');
|
|
|
|
|
|
2025-11-04 12:00:23 -03:00
|
|
|
const app = createApp();
|
|
|
|
|
|
|
|
|
|
const PORT = process.env.PORT || 3000;
|
|
|
|
|
|
|
|
|
|
app.listen(PORT, () => {
|
2025-11-10 17:01:33 -03:00
|
|
|
logInfo(`🚀 Servidor HTTP iniciado e ouvindo na porta ${PORT}`);
|
|
|
|
|
|
|
|
|
|
// Agenda a tarefa para rodar a cada 5 minutos.
|
|
|
|
|
logInfo('⏰ Agendando cron job para processar atendimentos a cada 5 minutos.');
|
|
|
|
|
cron.schedule('*/5 * * * *', async () => {
|
|
|
|
|
logInfo('CRON: Iniciando processamento de atendimentos...');
|
|
|
|
|
try {
|
|
|
|
|
await processaAtendimentos(true);
|
|
|
|
|
logInfo('CRON: Processamento de atendimentos concluído com sucesso.');
|
|
|
|
|
} catch (error) {
|
|
|
|
|
logError('CRON: Erro durante o processamento de atendimentos.', error);
|
|
|
|
|
}
|
|
|
|
|
});
|
2025-11-04 12:00:23 -03:00
|
|
|
});
|
|
|
|
|
|
2025-11-10 17:01:33 -03:00
|
|
|
/**
|
|
|
|
|
* @module server
|
|
|
|
|
* @description Ponto de entrada principal da aplicação.
|
|
|
|
|
* Este módulo é responsável por:
|
|
|
|
|
* 1. Carregar as variáveis de ambiente.
|
|
|
|
|
* 2. Iniciar o servidor Express para escutar requisições HTTP (ex: webhooks do GLPI).
|
|
|
|
|
* 3. Agendar e executar um cron job que roda a função `processaAtendimentos` periodicamente para sincronizar novos tickets do HubSoft para o GLPI.
|
|
|
|
|
*/
|