From 6da00ebfee589058e279aa8c2235c3b5f3c00629 Mon Sep 17 00:00:00 2001
From: Pietro Polinari Cavassin <ppc19@inf.ufpr.br>
Date: Thu, 11 Aug 2022 11:07:25 -0300
Subject: [PATCH] add city subroutes and filters

---
 src/libs/routes/city.js | 43 ++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 42 insertions(+), 1 deletion(-)

diff --git a/src/libs/routes/city.js b/src/libs/routes/city.js
index ef28500f..2ebc44d2 100644
--- a/src/libs/routes/city.js
+++ b/src/libs/routes/city.js
@@ -82,7 +82,25 @@ rqf.addField({
         type: 'string',
         field: 'nome'
     }
-}, 'search');;
+}, 'search').addValue({
+    name: 'mesoregion',
+    table: 'municipio',
+    tableField: 'mesorregiao_id',
+    where: {
+        relation: '=',
+        type: 'integer',
+        field: 'mesorregiao_id'
+    }
+}).addValue({
+    name: 'microregion',
+    table: 'municipio',
+    tableField: 'microrregiao_id',
+    where: {
+        relation: '=',
+        type: 'integer',
+        field: 'microrregiao_id'
+    }
+});
 
 // Return all cities
 cityApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => {
@@ -97,4 +115,27 @@ cityApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => {
     next();
 }, query, response('city'));
 
+cityApp.get('/microregion', rqf.parse(), rqf.build(), (req, res, next) => {
+    req.sql.from('municipio')
+    .field('municipio.estado_id', 'state_id')
+    .field('municipio.microrregiao_id', 'microregion_id')
+    .field('municipio.nome_microrregiao', 'microregion_name')
+    .group('municipio.estado_id')
+    .group('municipio.microrregiao_id')
+    .group('municipio.nome_microrregiao')
+    next();
+}, query, response('city/microregion'));
+
+cityApp.get('/mesoregion', rqf.parse(), rqf.build(), (req, res, next) => {
+    req.sql.from('municipio')
+    .field('municipio.estado_id', 'state_id')
+    .field('municipio.mesorregiao_id', 'mesoregion_id')
+    .field('municipio.nome_mesorregiao', 'mesoregion_name')
+    .group('municipio.nome_mesorregiao')
+    .group('municipio.mesorregiao_id')
+    .group('municipio.estado_id')
+    next();
+}, query, response('city/mesoregion'));
+
+
 module.exports = cityApp;
-- 
GitLab