Skip to content
Snippets Groups Projects
Commit 2155b1d0 authored by Fernando Erd's avatar Fernando Erd
Browse files

Merge remote-tracking branch 'origin/v1.14.2'

parents 071458d6 4818e1ef
No related branches found
No related tags found
1 merge request!259V1.14.2
Pipeline #23421 failed
......@@ -4,6 +4,11 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/).
## 1.14.2 - 2020-07-14
## Changed
- Courses route
- Addmissing
## 1.14.1 - 2020-06-24
- Fix gross and liquid enrollment ratio indicators
......
......@@ -72,7 +72,7 @@ module.exports = function addMissing(rqf) {
}
if (dimsValues[rqfName].indexOf(r[rqfName]) === -1) {
if (['school', 'city', 'state', 'region', 'arrangement'].includes(dim)) { // those should be ordered by its name
if (['school', 'arrangement'].includes(dim)) { // those should be ordered by its name
let namePosition = binarySearch(r[secondaryRqfName], dimsNames[secondaryRqfName], 0, dimsNames[secondaryRqfName].length) // find the position of the name in alphabetical order and keep the names vector ordered
dimsValues[rqfName].splice(namePosition.pos, 0, r[rqfName]);
dimsNames[secondaryRqfName].splice(namePosition.pos, 0, r[secondaryRqfName]);
......
......@@ -40,12 +40,8 @@ const config = require(`${libs}/config`);
const addMissing = require(`${libs}/middlewares/addMissing`);
const cache = require('apicache').options({ debug: config.debug, statusCodes: {include: [200]} }).middleware;
let rqf = new ReqQueryFields();
courseCountApp.use(cache('15 day'));
courseCountApp.get('/upper_adm_dependency', (req, res, next) => {
req.result = [];
for(let i = 1; i <= 7; ++i) {
......@@ -59,7 +55,8 @@ courseCountApp.get('/upper_adm_dependency', (req, res, next) => {
courseCountApp.get('/years', (req, res, next) => {
req.sql.from('curso_ens_superior')
.field('DISTINCT curso_ens_superior.ano_censo', 'year');
.field('DISTINCT curso_ens_superior.ano_censo', 'year')
.where('curso_ens_superior.ano_censo > 2010');
next();
}, query, response('years'));
......@@ -81,15 +78,6 @@ courseCountApp.get('/academic_organization', (req, res, next) => {
next();
}, response('academic_organization'));
courseCountApp.get('/capital', (req, res, next) => {
req.result = [
{id: null, name: 'Não Classificado'},
{id: 0, name: 'Não'},
{id: 1, name: 'Sim'}
];
next();
}, response('capital'));
courseCountApp.get('/ocde_geral', (req, res, next) => {
req.result = [];
for(let i = 1; i <= 8; ++i) {
......@@ -139,6 +127,55 @@ courseCountApp.get('/ocde_detailed', (req, res, next) => {
next();
}, response('ocde_detailed'));
courseCountApp.get('/cine_geral', (req, res, next) => {
req.result = [];
for(let i = 0; i <= 10; ++i) {
req.result.push({
id: i,
name: id2str.cineGeral(i)
});
};
next();
}, response('cine_geral'));
courseCountApp.get('/cine_specific', (req, res, next) => {
req.result = [];
const defaultCase = null;
for(let i = 1; i <= 104; ++i) {
let obj = {
id: i,
name: id2str.cineSpecific(i)
};
if (obj.name !== id2str.cineSpecific(defaultCase)){
req.result.push(obj);
}
};
req.result.push({
id: defaultCase,
name: id2str.cineSpecific(defaultCase)
});
next();
}, response('cine_specific'));
courseCountApp.get('/cine_detailed', (req, res, next) => {
req.result = [];
const defaultCase = null;
for(let i = 11; i <= 1041; ++i) {
let obj = {
id: i,
name: id2str.cineDetailed(i)
};
if (obj.name !== id2str.cineDetailed(defaultCase)){
req.result.push(obj);
}
};
req.result.push({
id: defaultCase,
name: id2str.cineDetailed(defaultCase)
});
next();
}, response('cine_detailed'));
courseCountApp.get('/academic_level', (req, res, next) => {
req.result = [];
for(let i = 1; i <= 4; ++i) {
......@@ -186,6 +223,13 @@ courseCountApp.get('/university', (req, res, next) => {
next();
}, query, response('university'));
courseCountApp.get('/localoffer', (req, res, next) => {
req.sql.from('localoferta_ens_superior', 'l')
.field('DISTINCT l.nome', 'localoffer_name')
.field('l.cod_local_oferta', 'localoffer_id');
next();
}, query, response('localoffer'));
rqf.addField({
name: 'filter',
field: false,
......@@ -196,49 +240,67 @@ rqf.addField({
where: false
}).addValue({
name: 'region',
table: 'regiao',
tableField: ['nome', 'id'],
table: 'localoferta_ens_superior',
tableField: ['nome_regiao', 'cod_regiao'],
resultField: ['region_name', 'region_id'],
where: {
relation: '=',
type: 'integer',
field: 'id'
field: 'cod_regiao',
table: 'localoferta_ens_superior'
},
join: {
primary: 'nome',
foreign: 'nome_regiao_curso',
primary: ['ano_censo', 'cod_curso'],
foreign: ['ano_censo', 'cod_curso'],
foreignTable: 'curso_ens_superior'
}
}).addValue({
name: 'state',
table: 'estado',
tableField: ['nome', 'id'],
table: 'localoferta_ens_superior',
tableField: ['sigla_uf_t', 'cod_uf_t'],
resultField: ['state_name', 'state_id'],
where: {
relation: '=',
type: 'integer',
field: 'id'
field: 'cod_uf',
table: 'localoferta_ens_superior'
},
join: {
primary: 'id',
foreign: 'cod_uf_curso',
primary: ['ano_censo', 'cod_curso'],
foreign: ['ano_censo', 'cod_curso'],
foreignTable: 'curso_ens_superior'
}
}).addValue({
name: 'city',
table: 'municipio',
tableField: ['nome', 'id'],
resultField: ['city_name', 'city_id'],
table: 'localoferta_ens_superior',
tableField: ['cod_municipio_t', 'nome_municipio_t'],
resultField: ['city_id', 'city_name'],
where: {
relation: '=',
type: 'integer',
field: 'cod_municipio_curso',
table: '@'
field: 'cod_municipio',
table: 'localoferta_ens_superior'
},
join: {
primary: 'id',
foreign: 'cod_municipio_curso',
foreignTable: '@'
primary: ['ano_censo', 'cod_curso'],
foreign: ['ano_censo', 'cod_curso'],
foreignTable: 'curso_ens_superior'
}
}).addValue({
name: 'localoffer',
table: 'localoferta_ens_superior',
tableField: ['cod_local_oferta', 'nome'],
resultField: ['localoffer_id', 'localoffer_name'],
where: {
relation: '=',
type: 'integer',
field: 'cod_curso',
table: 'curso_ens_superior'
},
join: {
primary: ['ano_censo', 'cod_curso'],
foreign: ['ano_censo', 'cod_curso'],
foreignTable: 'curso_ens_superior'
}
}).addValue({
name: 'university',
......@@ -270,16 +332,6 @@ rqf.addField({
type: 'integer',
field: 'cod_organizacao_academica'
}
}).addValue({
name:'capital',
table: 'curso_ens_superior',
tableField: 'tfd_capital_curso',
resultField: 'capital_id',
where: {
relation: '=',
type: 'integer',
field: 'tfd_capital_curso'
}
}).addValue({
name:'course',
table: 'curso_ens_superior',
......@@ -314,12 +366,42 @@ rqf.addField({
name:'ocde_detailed',
table: 'curso_ens_superior',
tableField: ['cod_ocde_area_detalhada', 'nome_ocde_area_detalhada'],
resultField: ['ocde_detailed_id', 'ocde_datailed_name'],
resultField: ['ocde_detailed_id', 'ocde_detailed_name'],
where: {
relation: '=',
type: 'integer',
field: 'cod_ocde_area_detalhada'
}
}).addValue({
name:'cine_specific',
table: 'curso_ens_superior',
tableField: ['cod_cine_area_especifica', 'nome_cine_area_especifica'],
resultField: ['cine_specific_id', 'cine_specific_name'],
where: {
relation: '=',
type: 'integer',
field: 'cod_cine_area_especifica'
}
}).addValue({
name:'cine_geral',
table: 'curso_ens_superior',
tableField: ['cod_cine_area_geral', 'nome_cine_area_geral'],
resultField: ['cine_geral_id', 'cine_geral_name'],
where: {
relation: '=',
type: 'integer',
field: 'cod_cine_area_geral'
}
}).addValue({
name:'cine_detailed',
table: 'curso_ens_superior',
tableField: ['cod_cine_area_detalhada', 'nome_cine_area_detalhada'],
resultField: ['cine_detailed_id', 'cine_detailed_name'],
where: {
relation: '=',
type: 'integer',
field: 'cod_cine_area_detalhada'
}
}).addValue({
name:'academic_level',
table: 'curso_ens_superior',
......@@ -353,12 +435,12 @@ rqf.addField({
}).addValue({
name:'night_time',
table: 'curso_ens_superior',
tableField: 'noturno_curso',
tableField: 'noturno_curso_t',
resultField: 'night_time_id',
where: {
relation: '=',
type: 'boolean',
field: 'noturno_curso'
field: 'noturno_curso_t'
}
}).addValue({
name:'situation',
......@@ -405,7 +487,41 @@ rqf.addField({
});
courseCountApp.get('/', rqf.parse(), (req, res, next) => {
if ("university" in req.dims) {
if ("localoffer" in req.dims) {
if ("university" in req.dims) {
req.sql.from('curso_ens_superior')
.field('curso_ens_superior.ano_censo', 'year')
.field('COUNT(localoferta_ens_superior.cod_local_oferta)', 'total')
.where('curso_ens_superior.tipo_atributo_ingresso <> 1 OR curso_ens_superior.tipo_atributo_ingresso is NULL')
.where('curso_ens_superior.cod_nivel_academico = 1')
.group('curso_ens_superior.ano_censo')
.order('curso_ens_superior.ano_censo')
.order('localoferta_ens_superior.cod_local_oferta');
} else {
req.sql.from('curso_ens_superior')
.field('curso_ens_superior.ano_censo', 'year')
.field('COUNT(localoferta_ens_superior.cod_local_oferta)', 'total')
.field('localoferta_ens_superior.cod_ies', 'university_id')
.field('curso_ens_superior.nome_ies', 'university_name')
.where('curso_ens_superior.tipo_atributo_ingresso <> 1 OR curso_ens_superior.tipo_atributo_ingresso is NULL')
.where('curso_ens_superior.cod_nivel_academico = 1')
.group('curso_ens_superior.ano_censo')
.group('localoferta_ens_superior.cod_ies')
.group('curso_ens_superior.nome_ies')
.order('curso_ens_superior.ano_censo')
.order('localoferta_ens_superior.cod_local_oferta');
}
} else if (("state" in req.dims) || ("city" in req.dims) || ("region" in req.dims) ||
("state" in req.filter) || ("city" in req.filter) || ("region" in req.filter)) {
req.sql.from('curso_ens_superior')
.field('COUNT(DISTINCT curso_ens_superior.cod_curso)', 'total')
.field("'Brasil'", 'name')
.field('curso_ens_superior.ano_censo', 'year')
.group('curso_ens_superior.ano_censo')
.order('curso_ens_superior.ano_censo')
.where('curso_ens_superior.tipo_atributo_ingresso <> 1 OR curso_ens_superior.tipo_atributo_ingresso is NULL')
.where('curso_ens_superior.cod_nivel_academico = 1');
} else if ("university" in req.dims) {
req.sql.from('curso_ens_superior')
.field('COUNT(curso_ens_superior.cod_curso)', 'total')
.field("'Brasil'", 'name')
......@@ -416,8 +532,7 @@ courseCountApp.get('/', rqf.parse(), (req, res, next) => {
.order('curso_ens_superior.ano_censo')
.where('curso_ens_superior.tipo_atributo_ingresso <> 1 OR curso_ens_superior.tipo_atributo_ingresso is NULL')
.where('curso_ens_superior.cod_nivel_academico = 1');
}
else {
} else {
req.sql.from('curso_ens_superior')
.field('COUNT(curso_ens_superior.cod_curso)', 'total')
.field("'Brasil'", 'name')
......
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