From f59c477526cc77735d596795b4bab008b400ddf4 Mon Sep 17 00:00:00 2001 From: Fernando Erd <fce15@inf.ufpr.br> Date: Thu, 6 Jul 2017 11:50:29 -0300 Subject: [PATCH] Fix state and city filter in idhm --- src/libs/routes/idhm.js | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/src/libs/routes/idhm.js b/src/libs/routes/idhm.js index 5da0b36c..b446db0b 100644 --- a/src/libs/routes/idhm.js +++ b/src/libs/routes/idhm.js @@ -99,15 +99,32 @@ rqf.addField({ field: 'ano_censo' } }); + + idhmApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => { log.debug(req.sql.toParam()); - req.sql.field('(adh_idh.idhm)', 'IDHM') - .field("'Brasil'", 'name') - .field('adh_idh.municipio_id', 'municipio_id') - .field('adh_idh.estado_id', 'estado_id') - .field('adh_idh.ano_censo', 'year') - .from('adh_idh') - next(); + if(typeof req.filter === 'undefined' || Object.keys(req.filter).length === 0 ) { + res.status(400); + next({ + status: 400, + message: 'Wrong/No filter specified' + }); + } + if ("state" in req.filter) { + req.sql.field('(adh_idh_uf.idhm)', 'IDHM') + .field("'Brasil'", 'name') + .field('adh_idh_uf.estado_id', 'estado_id') + .field('adh_idh_uf.ano_censo', 'year') + .from('adh_idh_uf') + } else if ("city" in req.filter) { + req.sql.field('(adh_idh.idhm)', 'IDHM') + .field("'Brasil'", 'name') + .field('adh_idh.municipio_id', 'municipio_id') + .field('adh_idh.estado_id', 'estado_id') + .field('adh_idh.ano_censo', 'year') + .from('adh_idh') + } + next(); }, query, id2str.transform(true), response('idhm')); module.exports = idhmApp; -- GitLab