Skip to content
Snippets Groups Projects

Refactor enrollments route to include query building

Merged João Victor Risso requested to merge refactor_enrollments into development
2 files
+ 14
90
Compare changes
  • Side-by-side
  • Inline
Files
2
+ 14
46
const express = require('express');
const xml = require('js2xmlparser');
const stateApp = express();
const libs = `${process.cwd()}/libs`;
const log = require(`${libs}/log`)(module);
const dbQuery = require(`${libs}/db/query_exec`);
function response(req, res) {
if (req.query.format === 'csv') {
res.csv(req.result.data);
} else if (req.query.format === 'xml') {
res.send(xml('result', JSON.stringify({ state: req.result.data })));
} else {
res.json({ result: req.result.data });
}
}
const squel = require('squel');
const query = require(`${libs}/middlewares/query`);
const response = require(`${libs}/middlewares/response`);
stateApp.get('/', (req, res, next) => {
const stateSql = 'SELECT * FROM estados';
dbQuery(stateSql).then((result) => {
req.result = result;
return response(req, res);
}, (error) => {
log.error(`[${req.originalUrl}] SQL query error: ${error}`);
next('Internal error, request could not be satisfied at this moment. Please, try again later');
});
});
req.query = squel.select().from('estados').toParam();
next();
}, query, response);
stateApp.get('/:id', (req, res, next) => {
const stateSql = 'SELECT * FROM estados WHERE pk_estado_id = ?';
const stateId = parseInt(req.params.id, 10);
dbQuery(stateSql, [stateId]).then((result) => {
req.result = result;
return response(req, res);
}, (error) => {
log.error(`[${req.originalUrl}] SQL query error: ${error}`);
next('Internal error, request could not be satisfied at this moment. Please, try again later');
});
});
req.query = squel.select().from('estados').where('pk_estado_id = ?',
parseInt(req.params.id, 10)).toParam();
next();
}, query, response);
stateApp.get('/region/:id', (req, res, next) => {
const stateSql = 'SELECT * FROM estados WHERE fk_regiao_id = ?';
const regionId = parseInt(req.params.id, 10);
dbQuery(stateSql, [regionId]).then((result) => {
req.result = result;
return response(req, res);
}, (error) => {
log.error(`[${req.originalUrl}] SQL query error: ${error}`);
next('Internal error, request could not be satisfied at this moment. Please, try again later');
});
});
req.query = squel.select().from('estados').where('fk_regiao_id = ?',
parseInt(req.params.id, 10)).toParam();
next();
}, query, response);
module.exports = stateApp;
Loading