Skip to content
Snippets Groups Projects
Commit eb8c333c authored by Vytor Calixto's avatar Vytor Calixto :space_invader:
Browse files

.toParam is now called by query middleware

Also the req.sql attribute is being created ("injected") before all routes

Related: simcaq/SCRUM#18
parent 366917bf
No related branches found
No related tags found
1 merge request!18Issue 18
...@@ -4,6 +4,7 @@ const bodyParser = require('body-parser'); ...@@ -4,6 +4,7 @@ const bodyParser = require('body-parser');
const methodOverride = require('method-override'); const methodOverride = require('method-override');
const cors = require('cors'); const cors = require('cors');
const compression = require('compression'); const compression = require('compression');
const squel = require('squel');
const log = require('./log')(module); const log = require('./log')(module);
...@@ -27,6 +28,10 @@ app.use(cors()); ...@@ -27,6 +28,10 @@ app.use(cors());
app.use(methodOverride()); app.use(methodOverride());
app.use(cache('1 day')); app.use(cache('1 day'));
app.use(compression(9)); app.use(compression(9));
// Middleware tha adds the squel object to req
app.use((req, res, next) => {
req.sql = squel.select();
});
app.use(api); app.use(api);
// catch 404 and forward to error handler // catch 404 and forward to error handler
......
...@@ -9,8 +9,9 @@ const execQuery = require(`${libs}/db/query_exec`); ...@@ -9,8 +9,9 @@ const execQuery = require(`${libs}/db/query_exec`);
* @param {Function} next [description] * @param {Function} next [description]
*/ */
function query(req, res, next) { function query(req, res, next) {
log.debug(req.sql); let sql = req.sql.toParam();
execQuery(req.sql.text, req.sql.values).then((result) => { log.debug(sql);
execQuery(sql.text, sql.values).then((result) => {
log.debug(result); log.debug(result);
req.result = result; req.result = result;
next(); next();
......
...@@ -11,25 +11,25 @@ const query = require(`${libs}/middlewares/query`); ...@@ -11,25 +11,25 @@ const query = require(`${libs}/middlewares/query`);
const response = require(`${libs}/middlewares/response`); const response = require(`${libs}/middlewares/response`);
cityApp.get('/', (req, res, next) => { cityApp.get('/', (req, res, next) => {
req.sql = squel.select().from('municipios').toParam(); req.sql.from('municipios');
next(); next();
}, query, response('city')); }, query, response('city'));
cityApp.get('/:id', (req, res, next) => { cityApp.get('/:id', (req, res, next) => {
req.sql = squel.select().from('municipios').where('pk_municipio_id = ?', req.sql.from('municipios')
parseInt(req.params.id, 10)).toParam(); .where('pk_municipio_id = ?', parseInt(req.params.id, 10));
next(); next();
}, query, response('city')); }, query, response('city'));
cityApp.get('/ibge/:id', (req, res, next) => { cityApp.get('/ibge/:id', (req, res, next) => {
req.sql = squel.select().from('municipios').where('codigo_ibge = ?', req.sql.from('municipios')
req.params.id).toParam(); .where('codigo_ibge = ?', req.params.id);
next(); next();
}, query, response('city')); }, query, response('city'));
cityApp.get('/state/:id', (req, res, next) => { cityApp.get('/state/:id', (req, res, next) => {
req.sql = squel.select().from('municipios').where('fk_estado_id = ?', req.sql.from('municipios')
parseInt(req.params.id, 10)).toParam(); .where('fk_estado_id = ?', parseInt(req.params.id, 10));
next(); next();
}, query, response('city')); }, query, response('city'));
......
...@@ -11,13 +11,13 @@ const query = require(`${libs}/middlewares/query`); ...@@ -11,13 +11,13 @@ const query = require(`${libs}/middlewares/query`);
const response = require(`${libs}/middlewares/response`); const response = require(`${libs}/middlewares/response`);
regionApp.get('/', (req, res, next) => { regionApp.get('/', (req, res, next) => {
req.sql = squel.select().from('regioes').toParam(); req.sql.from('regioes');
next(); next();
}, query, response('region')); }, query, response('region'));
regionApp.get('/:id', (req, res, next) => { regionApp.get('/:id', (req, res, next) => {
req.sql = squel.select().from('regioes').where('pk_regiao_id = ?', req.sql.from('regioes')
parseInt(req.params.id, 10)).toParam(); .where('pk_regiao_id = ?', parseInt(req.params.id, 10));
next(); next();
}, query, response('region')); }, query, response('region'));
......
...@@ -22,40 +22,35 @@ const response = require(`${libs}/middlewares/response`); ...@@ -22,40 +22,35 @@ const response = require(`${libs}/middlewares/response`);
// .field('nome_entidade', 'name') // .field('nome_entidade', 'name')
// .field('ano_censo', 'year') // .field('ano_censo', 'year')
// .field('fk_cod_estado') // .field('fk_cod_estado')
// .field('fk_cod_municipio') // .field('fk_cod_municipio');
// .toParam();
// next(); // next();
// }, query, response('school')); // }, query, response('school'));
schoolApp.get('/:id', (req, res, next) => { schoolApp.get('/:id', (req, res, next) => {
req.sql = squel.select().from('escolas').where('pk_escola_id = ?', req.sql.from('escolas')
parseInt(req.params.id, 10)).toParam(); .where('pk_escola_id = ?', parseInt(req.params.id, 10));
next(); next();
}, query, response('school')); }, query, response('school'));
schoolApp.get('/state/:id', (req, res, next) => { schoolApp.get('/state/:id', (req, res, next) => {
req.sql = squel.select().from('escolas') req.sql.from('escolas')
.field('pk_escola_id') .field('pk_escola_id')
.field('nome_entidade', 'name') .field('nome_entidade', 'name')
.field('ano_censo', 'year') .field('ano_censo', 'year')
.field('fk_cod_estado') .field('fk_cod_estado')
.field('fk_cod_municipio') .field('fk_cod_municipio')
.where('fk_cod_estado = ?', .where('fk_cod_estado = ?', parseInt(req.params.id, 10));
parseInt(req.params.id, 10))
.toParam();
next(); next();
}, query, response('school')); }, query, response('school'));
schoolApp.get('/city/:id', (req, res, next) => { schoolApp.get('/city/:id', (req, res, next) => {
req.sql = squel.select().from('escolas') req.sql.from('escolas')
.field('pk_escola_id') .field('pk_escola_id')
.field('nome_entidade', 'name') .field('nome_entidade', 'name')
.field('ano_censo', 'year') .field('ano_censo', 'year')
.field('fk_cod_estado') .field('fk_cod_estado')
.field('fk_cod_municipio') .field('fk_cod_municipio')
.where('fk_cod_municipio = ?', .where('fk_cod_municipio = ?', parseInt(req.params.id, 10));
parseInt(req.params.id, 10))
.toParam();
next(); next();
}, query, response('school')); }, query, response('school'));
......
...@@ -11,19 +11,19 @@ const query = require(`${libs}/middlewares/query`); ...@@ -11,19 +11,19 @@ const query = require(`${libs}/middlewares/query`);
const response = require(`${libs}/middlewares/response`); const response = require(`${libs}/middlewares/response`);
stateApp.get('/', (req, res, next) => { stateApp.get('/', (req, res, next) => {
req.sql = squel.select().from('estados').toParam(); req.sql.from('estados');
next(); next();
}, query, response('state')); }, query, response('state'));
stateApp.get('/:id', (req, res, next) => { stateApp.get('/:id', (req, res, next) => {
req.sql = squel.select().from('estados').where('pk_estado_id = ?', req.sql.from('estados')
parseInt(req.params.id, 10)).toParam(); .where('pk_estado_id = ?', parseInt(req.params.id, 10));
next(); next();
}, query, response('state')); }, query, response('state'));
stateApp.get('/region/:id', (req, res, next) => { stateApp.get('/region/:id', (req, res, next) => {
req.sql = squel.select().from('estados').where('fk_regiao_id = ?', req.sql.from('estados')
parseInt(req.params.id, 10)).toParam(); .where('fk_regiao_id = ?', parseInt(req.params.id, 10));
next(); next();
}, query, response('state')); }, query, response('state'));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment