From eb8c333c90744cef11d1647fde626855ffebcfcf Mon Sep 17 00:00:00 2001 From: Vytor Calixto <vytorcalixto@gmail.com> Date: Tue, 27 Sep 2016 09:20:34 -0300 Subject: [PATCH] .toParam is now called by query middleware Also the req.sql attribute is being created ("injected") before all routes Related: simcaq/SCRUM#18 --- src/libs/app.js | 5 +++++ src/libs/middlewares/query.js | 5 +++-- src/libs/routes/city.js | 14 +++++++------- src/libs/routes/region.js | 6 +++--- src/libs/routes/school.js | 19 +++++++------------ src/libs/routes/state.js | 10 +++++----- 6 files changed, 30 insertions(+), 29 deletions(-) diff --git a/src/libs/app.js b/src/libs/app.js index 8022c769..bf097510 100644 --- a/src/libs/app.js +++ b/src/libs/app.js @@ -4,6 +4,7 @@ const bodyParser = require('body-parser'); const methodOverride = require('method-override'); const cors = require('cors'); const compression = require('compression'); +const squel = require('squel'); const log = require('./log')(module); @@ -27,6 +28,10 @@ app.use(cors()); app.use(methodOverride()); app.use(cache('1 day')); app.use(compression(9)); +// Middleware tha adds the squel object to req +app.use((req, res, next) => { + req.sql = squel.select(); +}); app.use(api); // catch 404 and forward to error handler diff --git a/src/libs/middlewares/query.js b/src/libs/middlewares/query.js index 74a0c505..4020631f 100644 --- a/src/libs/middlewares/query.js +++ b/src/libs/middlewares/query.js @@ -9,8 +9,9 @@ const execQuery = require(`${libs}/db/query_exec`); * @param {Function} next [description] */ function query(req, res, next) { - log.debug(req.sql); - execQuery(req.sql.text, req.sql.values).then((result) => { + let sql = req.sql.toParam(); + log.debug(sql); + execQuery(sql.text, sql.values).then((result) => { log.debug(result); req.result = result; next(); diff --git a/src/libs/routes/city.js b/src/libs/routes/city.js index 030aa3ce..a849bf8d 100644 --- a/src/libs/routes/city.js +++ b/src/libs/routes/city.js @@ -11,25 +11,25 @@ const query = require(`${libs}/middlewares/query`); const response = require(`${libs}/middlewares/response`); cityApp.get('/', (req, res, next) => { - req.sql = squel.select().from('municipios').toParam(); + req.sql.from('municipios'); next(); }, query, response('city')); cityApp.get('/:id', (req, res, next) => { - req.sql = squel.select().from('municipios').where('pk_municipio_id = ?', - parseInt(req.params.id, 10)).toParam(); + req.sql.from('municipios') + .where('pk_municipio_id = ?', parseInt(req.params.id, 10)); next(); }, query, response('city')); cityApp.get('/ibge/:id', (req, res, next) => { - req.sql = squel.select().from('municipios').where('codigo_ibge = ?', - req.params.id).toParam(); + req.sql.from('municipios') + .where('codigo_ibge = ?', req.params.id); next(); }, query, response('city')); cityApp.get('/state/:id', (req, res, next) => { - req.sql = squel.select().from('municipios').where('fk_estado_id = ?', - parseInt(req.params.id, 10)).toParam(); + req.sql.from('municipios') + .where('fk_estado_id = ?', parseInt(req.params.id, 10)); next(); }, query, response('city')); diff --git a/src/libs/routes/region.js b/src/libs/routes/region.js index 754cd616..1492af61 100644 --- a/src/libs/routes/region.js +++ b/src/libs/routes/region.js @@ -11,13 +11,13 @@ const query = require(`${libs}/middlewares/query`); const response = require(`${libs}/middlewares/response`); regionApp.get('/', (req, res, next) => { - req.sql = squel.select().from('regioes').toParam(); + req.sql.from('regioes'); next(); }, query, response('region')); regionApp.get('/:id', (req, res, next) => { - req.sql = squel.select().from('regioes').where('pk_regiao_id = ?', - parseInt(req.params.id, 10)).toParam(); + req.sql.from('regioes') + .where('pk_regiao_id = ?', parseInt(req.params.id, 10)); next(); }, query, response('region')); diff --git a/src/libs/routes/school.js b/src/libs/routes/school.js index bf3ee4fb..004e2f02 100644 --- a/src/libs/routes/school.js +++ b/src/libs/routes/school.js @@ -22,40 +22,35 @@ const response = require(`${libs}/middlewares/response`); // .field('nome_entidade', 'name') // .field('ano_censo', 'year') // .field('fk_cod_estado') -// .field('fk_cod_municipio') -// .toParam(); +// .field('fk_cod_municipio'); // next(); // }, query, response('school')); schoolApp.get('/:id', (req, res, next) => { - req.sql = squel.select().from('escolas').where('pk_escola_id = ?', - parseInt(req.params.id, 10)).toParam(); + req.sql.from('escolas') + .where('pk_escola_id = ?', parseInt(req.params.id, 10)); next(); }, query, response('school')); schoolApp.get('/state/:id', (req, res, next) => { - req.sql = squel.select().from('escolas') + req.sql.from('escolas') .field('pk_escola_id') .field('nome_entidade', 'name') .field('ano_censo', 'year') .field('fk_cod_estado') .field('fk_cod_municipio') - .where('fk_cod_estado = ?', - parseInt(req.params.id, 10)) - .toParam(); + .where('fk_cod_estado = ?', parseInt(req.params.id, 10)); next(); }, query, response('school')); schoolApp.get('/city/:id', (req, res, next) => { - req.sql = squel.select().from('escolas') + req.sql.from('escolas') .field('pk_escola_id') .field('nome_entidade', 'name') .field('ano_censo', 'year') .field('fk_cod_estado') .field('fk_cod_municipio') - .where('fk_cod_municipio = ?', - parseInt(req.params.id, 10)) - .toParam(); + .where('fk_cod_municipio = ?', parseInt(req.params.id, 10)); next(); }, query, response('school')); diff --git a/src/libs/routes/state.js b/src/libs/routes/state.js index 637149f1..33487397 100644 --- a/src/libs/routes/state.js +++ b/src/libs/routes/state.js @@ -11,19 +11,19 @@ const query = require(`${libs}/middlewares/query`); const response = require(`${libs}/middlewares/response`); stateApp.get('/', (req, res, next) => { - req.sql = squel.select().from('estados').toParam(); + req.sql.from('estados'); next(); }, query, response('state')); stateApp.get('/:id', (req, res, next) => { - req.sql = squel.select().from('estados').where('pk_estado_id = ?', - parseInt(req.params.id, 10)).toParam(); + req.sql.from('estados') + .where('pk_estado_id = ?', parseInt(req.params.id, 10)); next(); }, query, response('state')); stateApp.get('/region/:id', (req, res, next) => { - req.sql = squel.select().from('estados').where('fk_regiao_id = ?', - parseInt(req.params.id, 10)).toParam(); + req.sql.from('estados') + .where('fk_regiao_id = ?', parseInt(req.params.id, 10)); next(); }, query, response('state')); -- GitLab