From c9feaabd10b473c80e09a768420dd189d1713d03 Mon Sep 17 00:00:00 2001
From: Fernando Erd <fce15@inf.ufpr.br>
Date: Fri, 7 Jul 2017 11:09:23 -0300
Subject: [PATCH] Year Range in idhm

---
 src/libs/routes/idhm.js | 86 ++++++++++++++++++++++++-----------------
 1 file changed, 50 insertions(+), 36 deletions(-)

diff --git a/src/libs/routes/idhm.js b/src/libs/routes/idhm.js
index b446db0b..d99702c8 100644
--- a/src/libs/routes/idhm.js
+++ b/src/libs/routes/idhm.js
@@ -23,6 +23,22 @@ idhmApp.get('/year_range', (req, res, next) => {
     .field('MIN(adh_idh.ano_censo)', 'start_year')
     .field('MAX(adh_idh.ano_censo)', 'end_year');
     next();
+}, query, (req, res, next) => {
+    req.sql.from('adh_idh_uf')
+    .field('MIN(adh_idh_uf.ano_censo)', 'start_year')
+    .field('MAX(adh_idh_uf.ano_censo)', 'end_year');
+    req.old_result = req.result;
+    next();
+}, query, (req, res, next) => {
+    // console.log(req.old_result[0].start_year);
+    // console.log(req.result[0].start_year);
+    if (req.old_result[0].start_year < req.result[0].start_year) {
+        req.result[0].start_year = req.old_result[0].start_year;
+    }
+    if (req.old_result[0].end_year > req.result[0].end_year) {
+        req.result[0].end_year = req.old_result[0].old_result;
+    }
+    next();
 }, query, response('range'));
 
 idhmApp.get('/IDHM_level', (req, res, next) => {
@@ -37,7 +53,6 @@ idhmApp.get('/IDHM_level', (req, res, next) => {
     next();
 }, response('IDHM_level'));
 
-
 rqf.addField({
     name: 'filter',
     field: false,
@@ -78,30 +93,32 @@ rqf.addField({
         foreign: 'estado_id',
         foreignTable: 'adh_idh_uf'
     }
-  }).addValue({
-      name: 'min_year',
-      table: 'adh_idh',
-      tableField: 'ano_censo',
-      resultField: 'year',
-      where: {
-          relation: '>=',
-          type: 'integer',
-          field: 'ano_censo'
-      }
-  }).addValue({
-      name: 'max_year',
-      table: 'adh_idh',
-      tableField: 'ano_censo',
-      resultField: 'year',
-      where: {
-          relation: '<=',
-          type: 'integer',
-          field: 'ano_censo'
-      }
+}).addValue({
+    name: 'min_year',
+    table: '@',
+    tableField: 'ano_censo',
+    resultField: 'year',
+    where: {
+        relation: '>=',
+        type: 'integer',
+        table: '@',
+        field: 'ano_censo'
+    }
+}).addValue({
+    name: 'max_year',
+    table: '@',
+    tableField: 'ano_censo',
+    resultField: 'year',
+    where: {
+        relation: '<=',
+        type: 'integer',
+        table: '@',
+        field: 'ano_censo'
+    }
 });
 
 
-idhmApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => {
+idhmApp.get('/', rqf.parse(), (req, res, next) => {
   log.debug(req.sql.toParam());
   if(typeof req.filter === 'undefined' || Object.keys(req.filter).length === 0 ) {
     res.status(400);
@@ -111,20 +128,17 @@ idhmApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => {
     });
   }
   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')
+    req.sql.from('adh_idh_uf')
+    .field('adh_idh_uf.idhm', 'IDHM')
+    .field('adh_idh_uf.ano_censo', 'year')
+    .field('adh_idh_uf.estado_id', 'state_id');
    } 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'));
+     req.sql.from('adh_idh')
+     .field('adh_idh.idhm', 'IDHM')
+     .field('adh_idh.ano_censo', 'year')
+     .field('adh_idh.municipio_id', 'city_id');
+   }
+   next();
+}, rqf.build(),query, response('idhm'));
 
 module.exports = idhmApp;
-- 
GitLab