Skip to content
Snippets Groups Projects
Commit fb875033 authored by Fernando Erd's avatar Fernando Erd :ok_hand:
Browse files

Separating queries

parent 0f6c1ecd
No related branches found
No related tags found
2 merge requests!116Release v1.0.0,!106Gloss enrollment ratio route
Pipeline #
......@@ -18,20 +18,20 @@ const ReqQueryFields = require(`${libs}/middlewares/reqQueryFields`);
const id2str = require(`${libs}/middlewares/id2str`);
const addMissing = require(`${libs}/middlewares/addMissing`);
const config = require(`${libs}/config`);
const download = require(`${libs}/middlewares/downloadDatabase`);
const passport = require('passport');
const addMissing = require(`${libs}/middlewares/addMissing`);
const cache = require('apicache').options({ debug: config.debug, statusCodes: {include: [200]} }).middleware;
glossEnrollmentRatioApp.use(cache('15 day'));
let rqf = new ReqQueryFields();
glossEnrollmentRatioApp.use(cache('15 day'));
// Complete range of the enrollments dataset.
// Returns a tuple of start and ending years of the complete enrollments dataset.
glossEnrollmentRatioApp.get('/year_range', (req, res, next) => {
......@@ -54,17 +54,18 @@ glossEnrollmentRatioApp.get('/year_range', (req, res, next) => {
}
next();
}, query, response('range'));
glossEnrollmentRatioApp.get('/years', (req, res, next) => {
req.sql.from('matricula')
.field('DISTINCT matricula.ano_censo', 'year');
req.sql.from('pnad')
.field('DISTINCT pnad.ano_censo', 'year');
next();
}, query, (req, res, next) => {
req.oldResult = req.result;
req.sql = squel.select();
req.sql.from('pnad')
.field('DISTINCT pnad.ano_censo', 'year');
req.sql.from('matricula')
.field('DISTINCT matricula.ano_censo', 'year');
next();
}, query, (req, res, next) => {
let result = Object.assign(req.oldResult, req.result);
......@@ -210,16 +211,6 @@ rqf.addField({
table: '@',
field: 'ano_censo'
}
}).addValue({
name: 'age_range',
table: 'pnad',
tableField: 'faixa_etaria_31_03',
resultField: 'age_range_id',
where: {
relation: '=',
type: 'integer',
field: 'faixa_etaria_31_03'
}
}).addValue({
name: 'gender',
table: 'pnad',
......@@ -232,7 +223,7 @@ rqf.addField({
}
}).addValue({
name: 'location',
table: 'pnad',
table: '@',
tableField: 'localizacao_id',
resultField: 'location_id',
where: {
......@@ -312,35 +303,34 @@ function matchQueries(queryTotal, queryPartial) {
return match;
}
glossEnrollmentRatioApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => {
req.querySet = [];
req.queryIndex = {};
glossEnrollmentRatioApp.get('/', rqf.parse(),(req, res, next) => {
req.denominator = [];
log.debug(req.sql.toParam());
let p_ki = req.sql.clone();
p_ki.field('sum(pnad.idade_31_03)', 'total')
req.sql.field('sum(pnad.idade_31_03)', 'total')
.field('pnad.ano_censo','year')
.from('pnad')
.group('pnad.ano_censo')
.order('pnad.ano_censo')
req.queryIndex.p_ki = req.querySet.push(p_ki) - 1;
req.denominator.push(req.result);
let m_k = req.sql.clone();
log.debug(m_k);
m_k.from('matricula')
next();
}, rqf.build(), query, (req, res, next) => {
req.numerator = [];
log.debug(req.result);
req.resetSql();
req.sql.from('matricula')
.field('sum(matricula.etapa_resumida)', 'total')
.field('matricula.ano_censo', 'year')
.group('matricula.ano_censo')
.order('matricula.ano_censo')
req.queryIndex.m_k = req.querySet.push(m_k) - 1;
next();
}, multiQuery, (req, res, next) => {
let gloss_enrollment_ratio= matchQueries(req.result[req.queryIndex.p_ki], req.result[req.queryIndex.m_k]);
req.result = gloss_enrollment_ratio;
req.numerator.push(req.result);
next();
}, rqf.parse(), rqf.build(), query, (req, res, next) => {
log.debug(req.result);
next();
}, id2str.transform(false), response('glossEnrollmentRatio'));
}, response('glossEnrollmentRatio'));
glossEnrollmentRatioApp.get('/download', passport.authenticate('bearer', { session: false }), rqf.parse(), rqf.build(), download('pnad', 'mapping_pnad'));
......
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