- 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.
54 lines
1.8 KiB
JavaScript
54 lines
1.8 KiB
JavaScript
const { consultarViabilidade } = require('../service/viabilidadeService');
|
|
const { processCsvFile } = require('../service/csvService');
|
|
const { getJob } = require('../service/jobStore.service');
|
|
|
|
|
|
// Controlador para consultar viabilidade
|
|
async function consultarViabilidadeController(req, res) {
|
|
try {
|
|
const data = req.body;
|
|
const result = await consultarViabilidade(data);
|
|
res.json(result);
|
|
} catch (error) {
|
|
console.error("Erro ao consultar viabilidade:", error && (error.message || error));
|
|
res.status(500).json({ error: "Erro ao consultar viabilidade" });
|
|
}
|
|
}
|
|
|
|
async function uploadCsvFile(req, res) {
|
|
try {
|
|
// validação simples: verifica se multer populou req.file
|
|
if (!req.file) {
|
|
return res.status(400).json({ error: 'Nenhum arquivo enviado. Campo do form deve ser "csvfile".' });
|
|
}
|
|
|
|
const filePath = req.file.path;
|
|
const originalName = req.file.originalname || req.file.filename || 'input.csv';
|
|
|
|
const out = await processCsvFile(filePath, originalName);
|
|
|
|
// normaliza retorno (processCsvFile pode retornar string ou objeto)
|
|
const outputPath = (typeof out === 'string') ? out : (out && out.outputPath) || null;
|
|
|
|
return res.json({ outputPath });
|
|
} catch (error) {
|
|
console.error("Erro ao processar CSV:", error && (error.message || error));
|
|
return res.status(500).json({ error: 'Erro ao processar CSV' });
|
|
}
|
|
}
|
|
|
|
async function getJobController(req, res) {
|
|
try {
|
|
const jobId = req.params.jobId;
|
|
const job = getJob(jobId);
|
|
if (!job) {
|
|
return res.status(404).json({ error: 'Job não encontrado' });
|
|
}
|
|
res.json(job);
|
|
} catch (error) {
|
|
console.error("Erro ao obter job:", error && (error.message || error));
|
|
return res.status(500).json({ error: 'Erro ao obter job' });
|
|
}
|
|
}
|
|
|
|
module.exports = { consultarViabilidadeController, uploadCsvFile, getJobController }; |