From 124f7fce4dcd70f7cf26c2360e00fc0c4085ea50 Mon Sep 17 00:00:00 2001 From: Vytor Calixto <vytorcalixto@gmail.com> Date: Tue, 28 Mar 2017 16:20:57 -0300 Subject: [PATCH] Add city to offer_projection in /enrollment --- src/libs/middlewares/reqQueryFields.js | 1 + src/libs/routes/enrollment.js | 26 ++++++++++++++++++++++---- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/src/libs/middlewares/reqQueryFields.js b/src/libs/middlewares/reqQueryFields.js index 6a194c84..577b2359 100644 --- a/src/libs/middlewares/reqQueryFields.js +++ b/src/libs/middlewares/reqQueryFields.js @@ -185,6 +185,7 @@ class ReqQueryFields { if(typeof values[k] !== 'undefined') { // Clonamos para não alterar o original let value = _.clone(values[k]); + if(value.parseOnly) return; // Checa se não fizemos o join para este valor e se é necessário fazer if(!hasJoined[value.table] && typeof value.join !== 'undefined') { let foreignTable = ''; diff --git a/src/libs/routes/enrollment.js b/src/libs/routes/enrollment.js index d29baf0d..317c6b6f 100644 --- a/src/libs/routes/enrollment.js +++ b/src/libs/routes/enrollment.js @@ -400,12 +400,30 @@ function schoolYearIdToStr(schoolYearId) { let simRqf = new ReqQueryFields(); simRqf.addField({ - name: 'filter' + name: 'filter', + field: false, + where: true }).addValue({ - name: 'simulation_time' -}) + name: 'simulation_time', + parseOnly: true +}).addValue({ + name: 'city', + table: 'municipio', + tableField: 'nome', + resultField: 'city_name', + where: { + relation: '=', + type: 'integer', + field: 'id' + }, + join: { + primary: 'id', + foreign: 'escola_municipio_id', + foreignTable: 'matricula' + } +}); -enrollmentApp.get('/offer_projection', simRqf.parse(), (req, res, next) => { +enrollmentApp.get('/offer_projection', simRqf.parse(), simRqf.build(), (req, res, next) => { const max_year = squel.select() .field('MAX(matricula.ano_censo)') .from('matricula') -- GitLab