viabiliza/service/jobStore.service.js
gabriel.pereira b3bca576da REFACTOR: Remoção de serviços obsoletos e implementação da nova funcionalidade de viabilidade pela API de contratação
- Removidos os arquivos não utilizados: fetchService, geocodeService, normalizeService e retryService.

- Adicionado o viabilidadeController para gerenciar consultas de viabilidade e upload de arquivos CSV.

- Criadas as viabilidadeRoutes para tratar as rotas da API relacionadas à viabilidade.

- Implementado o csvService para processamento de arquivos CSV e integração com as consultas de viabilidade.

- Criado o jobStore.service para gerenciamento do estado dos jobs durante o processamento do CSV.

- Desenvolvido o viabilidadeService para integração com a API de viabilidade.
2025-12-30 09:16:07 -03:00

58 lines
919 B
JavaScript

const crypto = require('crypto');
const jobs = new Map();
function createJob(total) {
const id = crypto.randomUUID();
jobs.set(id, {
id,
status: 'processing',
total,
processed: 0,
errors: 0,
download: null,
startedAt: new Date()
});
return id;
}
function incrementProcessed(id) {
const job = jobs.get(id);
if (job) job.processed++;
}
function incrementErrors(id) {
const job = jobs.get(id);
if (job) job.errors++;
}
function finishJob(id, download) {
const job = jobs.get(id);
if (job) {
job.status = 'done';
job.download = download;
job.finishedAt = new Date();
}
}
function failJob(id, error) {
const job = jobs.get(id);
if (job) {
job.status = 'error';
job.error = error;
}
}
function getJob(id) {
return jobs.get(id);
}
module.exports = {
createJob,
incrementProcessed,
incrementErrors,
finishJob,
failJob,
getJob
};