diff --git a/src/libs/middlewares/query.js b/src/libs/middlewares/query.js index 6b91fc8f2e86be81f212d4148023f6673c1b6323..7b0cc58682c4ed4bf8946dff8f1c25093b3b0a74 100644 --- a/src/libs/middlewares/query.js +++ b/src/libs/middlewares/query.js @@ -3,8 +3,8 @@ const log = require(`${libs}/log`)(module); const execQuery = require(`${libs}/db/query_exec`); function query(req, res, next) { - log.debug(req.query); - execQuery(req.query.text, req.query.values).then((result) => { + log.debug(req.sql); + execQuery(req.sql.text, req.sql.values).then((result) => { log.debug(result); req.result = result; next(); diff --git a/src/libs/middlewares/response.js b/src/libs/middlewares/response.js index 8328b4ffb7947d85280f14ee71be7b3afd8b4a13..accd84a23e4bd17ba4842882031753b27c1c8b21 100644 --- a/src/libs/middlewares/response.js +++ b/src/libs/middlewares/response.js @@ -1,13 +1,18 @@ +const libs = `${process.cwd()}/libs`; +const log = require(`${libs}/log`)(module); const xml = require('js2xmlparser'); -function response(req, res) { - if (req.query.format === 'csv') { - res.csv(req.result); - } else if (req.query.format === 'xml') { - res.send(xml('result', JSON.stringify({ city: req.result }))); - } else { - res.json({ result: req.result }); - } +function response(value) { + return function (req, res, next) { + log.debug(req.query.format); + if (req.query.format === 'csv') { + res.csv (req.result); + } else if (req.query.format === 'xml') { + res.send (xml('result', JSON.stringify({ [value]: req.result }))); + } else { + res.json({ result: req.result }); + } + }; } module.exports = response; diff --git a/src/libs/routes/api.js b/src/libs/routes/api.js index 9a23be8c5b12994d12ce5014c9fee82bbb8a966c..1a901d07b3697444596074e94f6a4527980e5189 100644 --- a/src/libs/routes/api.js +++ b/src/libs/routes/api.js @@ -15,9 +15,9 @@ api.get('/', (req, res) => { }); // mount API routes -api.use('/v1/enrollment', enrollment); -api.use('/v1/state', state); -api.use('/v1/region', region); -api.use('/v1/city', city); +api.use('/api/v1/enrollment', enrollment); +api.use('/api/v1/state', state); +api.use('/api/v1/region', region); +api.use('/api/v1/city', city); module.exports = api; diff --git a/src/libs/routes/city.js b/src/libs/routes/city.js index aa28900b9f29972aa0d5d8c01c85aba8fd54bd17..6c7550f916e95c9923932fcb23b71eccfc0831be 100644 --- a/src/libs/routes/city.js +++ b/src/libs/routes/city.js @@ -11,26 +11,26 @@ const query = require(`${libs}/middlewares/query`); const response = require(`${libs}/middlewares/response`); cityApp.get('/', (req, res, next) => { - req.query = squel.select().from('municipios').toParam(); + req.sql = squel.select().from('municipios').toParam(); next(); -}, query, response); +}, query, response('city')); cityApp.get('/:id', (req, res, next) => { - req.query = squel.select().from('municipios').where('pk_municipio_id = ?', + req.sql = squel.select().from('municipios').where('pk_municipio_id = ?', parseInt(req.params.id, 10)).toParam(); next(); -}, query, response); +}, query, response('city')); cityApp.get('/ibge/:id', (req, res, next) => { - req.query = squel.select().from('municipios').where('codigo_ibge = ?', + req.sql = squel.select().from('municipios').where('codigo_ibge = ?', req.params.id).toParam(); next(); -}, query, response); +}, query, response('city')); cityApp.get('/state/:id', (req, res, next) => { - req.query = squel.select().from('municipios').where('fk_estado_id = ?', + req.sql = squel.select().from('municipios').where('fk_estado_id = ?', parseInt(req.params.id, 10)); next(); -}, query, response); +}, query, response('city')); module.exports = cityApp; diff --git a/src/libs/routes/enrollment.js b/src/libs/routes/enrollment.js index 7ca2be3e020635fed9d51affdaa242b960be93b4..e3e6c399903722129c3237841cc2291a9378846a 100644 --- a/src/libs/routes/enrollment.js +++ b/src/libs/routes/enrollment.js @@ -6,6 +6,8 @@ const libs = `${process.cwd()}/libs`; const log = require(`${libs}/log`)(module); +const squel = require('squel'); + const dbQuery = require('../db/query_exec'); const response = require('../middlewares/response'); diff --git a/src/libs/routes/region.js b/src/libs/routes/region.js index 56c4cd2e44640ccd8a166e49afae97b567bb51ec..754cd6164725bebf8c5d6cfb387b3f0656eb615b 100644 --- a/src/libs/routes/region.js +++ b/src/libs/routes/region.js @@ -11,14 +11,14 @@ const query = require(`${libs}/middlewares/query`); const response = require(`${libs}/middlewares/response`); regionApp.get('/', (req, res, next) => { - req.query = squel.select().from('regioes').toParam(); + req.sql = squel.select().from('regioes').toParam(); next(); -}, query, response); +}, query, response('region')); regionApp.get('/:id', (req, res, next) => { - req.query = squel.select().from('regioes').where('pk_regiao_id = ?', + req.sql = squel.select().from('regioes').where('pk_regiao_id = ?', parseInt(req.params.id, 10)).toParam(); next(); -}, query, response); +}, query, response('region')); module.exports = regionApp; diff --git a/src/libs/routes/state.js b/src/libs/routes/state.js index dae0eb713ee44d43b4f9cca82e06ee32fa3b1582..637149f1a9b9db0fb90a7ccdfaffb4381c406152 100644 --- a/src/libs/routes/state.js +++ b/src/libs/routes/state.js @@ -11,20 +11,20 @@ const query = require(`${libs}/middlewares/query`); const response = require(`${libs}/middlewares/response`); stateApp.get('/', (req, res, next) => { - req.query = squel.select().from('estados').toParam(); + req.sql = squel.select().from('estados').toParam(); next(); -}, query, response); +}, query, response('state')); stateApp.get('/:id', (req, res, next) => { - req.query = squel.select().from('estados').where('pk_estado_id = ?', + req.sql = squel.select().from('estados').where('pk_estado_id = ?', parseInt(req.params.id, 10)).toParam(); next(); -}, query, response); +}, query, response('state')); stateApp.get('/region/:id', (req, res, next) => { - req.query = squel.select().from('estados').where('fk_regiao_id = ?', + req.sql = squel.select().from('estados').where('fk_regiao_id = ?', parseInt(req.params.id, 10)).toParam(); next(); -}, query, response); +}, query, response('state')); module.exports = stateApp;