From bdf27934d74f854ed42ba25bc6eb929e199dd4dd Mon Sep 17 00:00:00 2001
From: Fernando Erd <fce15@inf.ufpr.br>
Date: Thu, 6 Jul 2017 11:57:05 -0300
Subject: [PATCH] Fix state and city filter in idhmr

---
 src/libs/routes/idhmr.js | 30 +++++++++++++++++++++++-------
 1 file changed, 23 insertions(+), 7 deletions(-)

diff --git a/src/libs/routes/idhmr.js b/src/libs/routes/idhmr.js
index ce86848d..61aa486c 100644
--- a/src/libs/routes/idhmr.js
+++ b/src/libs/routes/idhmr.js
@@ -86,15 +86,31 @@ rqf.addField({
           field: 'ano_censo'
       }
 });
+
 idhmrApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => {
   log.debug(req.sql.toParam());
-   req.sql.field('(adh_idh.idhm_r)', 'IDHMR')
-   .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_r)', '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_r)', '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('idhmr'));
 
 module.exports = idhmrApp;
-- 
GitLab