Commit 5e5c5507 authored by Fernando Erd's avatar Fernando Erd
Browse files

Fix conflicts

parents 98c5f311 dfa1c61c
Pipeline #23316 failed with stage
in 3 minutes and 19 seconds
......@@ -10,23 +10,34 @@ variables:
MONGO_URI: 'mongodb://mongo/app_name'
NODE_ENV: 'test'
before_script:
- node -v
- npm install --global gulp gulp-cli babel babel-cli babel-core babel-register mocha gulp-mocha gulp-eslint
- npm install
- curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
- python get-pip.py
#run_tests:
# stage: test
# before_script:
# - node -v
# - npm install --global gulp gulp-cli babel babel-cli babel-core babel-register mocha gulp-mocha #gulp-eslint
# - npm install
# script:
# - ping -W1 -c1 mongo
# - sed -i -e 's/false/true/g' config.json
# - gulp build
# - gulp test
# tags:
# - node
run_tests:
regression_tests:
stage: test
before_script:
- npm install --global gulp gulp-cli babel babel-cli babel-core babel-register mocha gulp-mocha gulp-eslint
- npm install
- gulp build && gulp &
- curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
- python get-pip.py
- sleep 60
script:
- git clone https://gitlab.c3sl.ufpr.br/simcaq/lde-api-regression-test.git
- ping -W1 -c1 mongo
- sed -i -e 's/false/true/g' config.json
- gulp build
- gulp test
- cd lde-api-regression-test
- pip install -r requirements.txt
- python regression_test.py --compare
- python manage.py compare --verbose
tags:
- node
......@@ -4,11 +4,29 @@ 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.0 - 2020-06-17
## Added
- Route school_location
- Route mesoregion
- Route microregion
## Changed
- City route now returns microregion_id and mesoregion_id
- Update classCount base filters
- Update classroom base query
- Update classroomCount base filters in school
- Removed addMissing from cub route
- Changed dailyChargeAmount filter pattern
- Enrollment now has mesoregion/microregion dims/filters
- Changed reqFilters in outOfSchool route
- School now has mesoregion/microregion dims/filters
- Teacher now has mesoregion/microregion dims/filters
- UnivesityEnrollment now has mesoregion/microregion dims/filters
## 1.13.4 - 2020-06-05
- Arrangment filter in school indicator 2007-2019
- Employees Indicator 2007-2019
## 1.13.3 - 2020-05-21
- Employees Indicator 2007-2019
## 1.13.2 - 2020-05-21
## Changed
......
/*
Copyright (C) 2016 Centro de Computacao Cientifica e Software Livre
Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR
This file is part of simcaq-node.
simcaq-node is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
simcaq-node is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with simcaq-node. If not, see <https://www.gnu.org/licenses/>.
*/
module.exports = function cineDetailed(id) {
switch (id) {
case 11:
return 'Programas básicos';
case 111:
return 'Ciência da educação';
case 112:
return 'Formação de professores de educação infantil';
case 113:
return 'Formação de professores sem áreas específicas';
case 114:
return 'Formação de professores em áreas específicas (exceto Letras)';
case 115:
return 'Formação de professores de letras';
case 188:
return 'Programas interdisciplinares abrangendo educação';
case 211:
return 'Produção audiovisual, de mídia e cultural';
case 212:
return 'Moda, design de interiores e desenho industrial';
case 213:
return 'Belas artes';
case 214:
return 'Artesanato';
case 215:
return 'Música e artes cênicas';
case 221:
return 'Religião e teologia';
case 222:
return 'História e arqueologia';
case 223:
return 'Filosofia e ética';
case 231:
return 'Letras';
case 288:
return 'Programas interdisciplinares abrangendo artes e humanidades';
case 311:
return 'Economia';
case 312:
return 'Ciências sociais e políticas';
case 313:
return 'Psicologia';
case 321:
return 'Jornalismo e reportagem';
case 322:
return 'Biblioteconomia, informação e estudos arquivísticos';
case 388:
return 'Programas interdisciplinares abrangendo ciências sociais, jornalismo e informação';
case 411:
return 'Contabilidade e tributação';
case 412:
return 'Finanças, bancos e seguros';
case 413:
return 'Gestão e administração';
case 414:
return 'Marketing e propaganda';
case 415:
return 'Secretariado e trabalhos de escritório';
case 416:
return 'Gestão comercial';
case 421:
return 'Direito';
case 488:
return 'Programas interdisciplinares abrangendo negócios, administração e direito';
case 511:
return 'Biologia';
case 512:
return 'Bioquímica e biotecnologia';
case 521:
return 'Ciências ambientais';
case 531:
return 'Química';
case 532:
return 'Ciências da terra';
case 533:
return 'Física';
case 541:
return 'Matemática';
case 542:
return 'Estatística';
case 588:
return 'Programas interdisciplinares abrangendo ciências naturais, matemática e estatística';
case 612:
return 'Infraestrutura e gestão de TIC';
case 613:
return 'Produção de software';
case 614:
return 'Ciência da computação';
case 615:
return 'Gestão e desenvolvimento de sistemas de informação';
case 616:
return 'Desenvolvimento de sistemas que integram software e hardware';
case 688:
return 'Programas interdisciplinares abrangendo computação e Tecnologias da Informação e Comunicação (TIC)';
case 710:
return 'Engenharia e profissões correlatas sem definição precisa';
case 711:
return 'Engenharia química e de processos';
case 712:
return 'Tecnologia de proteção ambiental';
case 713:
return 'Eletricidade e energia';
case 714:
return 'Eletrônica e automação';
case 715:
return 'Engenharia mecânica e metalurgia';
case 716:
return 'Veículos a motor, construção naval, aeronáutica, ferroviária e metroviária';
case 721:
return 'Processamento de alimentos';
case 722:
return 'Materiais';
case 723:
return 'Têxteis (vestuário, calçados e couro)';
case 724:
return 'Mineração e extração';
case 725:
return 'Produção e processos de fabricação';
case 731:
return 'Arquitetura e planejamento urbano';
case 732:
return 'Engenharia civil e construção';
case 788:
return 'Programas interdisciplinares abrangendo engenharia, produção e construção';
case 811:
return 'Produção agrícola, agropecuária e zootecnia';
case 812:
return 'Horticultura';
case 821:
return 'Silvicultura';
case 831:
return 'Pesca';
case 841:
return 'Veterinária';
case 888:
return 'Programas interdisciplinares abrangendo agricultura, silvicultura, pesca e veterinária';
case 911:
return 'Odontologia';
case 912:
return 'Medicina';
case 913:
return 'Enfermagem';
case 914:
return 'Tecnologia de diagnóstico e tratamento médico';
case 915:
return 'Promoção, prevenção, terapia e reabilitação';
case 916:
return 'Farmácia';
case 917:
return 'Medicina e terapia tradicional e complementar';
case 918:
return 'Saúde pública e saúde coletiva';
case 921:
return 'Assistência a idosos e a deficientes';
case 923:
return 'Serviço social';
case 988:
return 'Programas interdisciplinares abrangendo saúde e bem-estar';
case 1011:
return 'Serviços domésticos';
case 1012:
return 'Serviços de beleza';
case 1013:
return 'Serviços de alimentação';
case 1014:
return 'Esportes e lazer';
case 1015:
return 'Turismo e hotelaria';
case 1022:
return 'Saúde e segurança no trabalho';
case 1031:
return 'Setor militar e de defesa';
case 1032:
return 'Proteção de pessoas e de propriedades';
case 1041:
return 'Serviços de transporte';
default:
return 'Não classificada';
}
};
\ No newline at end of file
/*
Copyright (C) 2016 Centro de Computacao Cientifica e Software Livre
Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR
This file is part of simcaq-node.
simcaq-node is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
simcaq-node is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with simcaq-node. If not, see <https://www.gnu.org/licenses/>.
*/
module.exports = function cineGeral(id) {
switch (id) {
case 0:
return 'Programas básicos';
case 1:
return 'Educação';
case 2:
return 'Artes e humanidades';
case 3:
return 'Ciências sociais, jornalismo e informação';
case 4:
return 'Negócios, administração e direito';
case 5:
return 'Ciências naturais, matemática e estatística';
case 6:
return 'Computação e Tecnologias da Informação e Comunicação (TIC)';
case 7:
return 'Engenharia, produção e construção';
case 8:
return 'Agricultura, silvicultura, pesca e veterinária';
case 9:
return 'Saúde e bem-estar';
case 10:
return 'Serviços';
default:
return 'Não classificada';
}
};
/*
Copyright (C) 2016 Centro de Computacao Cientifica e Software Livre
Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR
This file is part of simcaq-node.
simcaq-node is free software:
return 'you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
simcaq-node is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with simcaq-node. If not, see <https://www.gnu.org/licenses/>.
*/
module.exports = function cineSpecific(id) {
switch (id) {
case 1:
return 'Programas básicos';
case 11:
return 'Educação';
case 18:
return 'Programas interdisciplinares abrangendo educação';
case 21:
return 'Artes';
case 22:
return 'Humanidades (exceto línguas)';
case 23:
return 'Línguas';
case 28:
return 'Programas interdisciplinares abrangendo artes e humanidades';
case 31:
return 'Ciências sociais e comportamentais';
case 32:
return 'Jornalismo e informação';
case 38:
return 'Programas interdisciplinares abrangendo ciências sociais, jornalismo e informação';
case 41:
return 'Negócios e administração';
case 42:
return 'Direito';
case 48:
return 'Programas interdisciplinares abrangendo negócios, administração e direito';
case 51:
return 'Ciências biológicas e correlatas';
case 52:
return 'Meio ambiente';
case 53:
return 'Ciências físicas';
case 54:
return 'Matemática e estatística';
case 58:
return 'Programas interdisciplinares abrangendo ciências naturais, matemática e estatística';
case 61:
return 'Computação e Tecnologias da Informação e Comunicação (TIC)';
case 68:
return 'Programas interdisciplinares abrangendo computação e Tecnologias da Informação e Comunicação (TIC)';
case 71:
return 'Engenharia e profissões correlatas';
case 72:
return 'Produção e processamento';
case 73:
return 'Arquitetura e construção';
case 78:
return 'Programas interdisciplinares abrangendo engenharia, produção e construção';
case 81:
return 'Agricultura';
case 82:
return 'Silvicultura';
case 83:
return 'Pesca';
case 84:
return 'Veterinária';
case 88:
return 'Programas interdisciplinares abrangendo agricultura, silvicultura, pesca e veterinária';
case 91:
return 'Saúde';
case 92:
return 'Bem-estar';
case 98:
return 'Programas interdisciplinares abrangendo saúde e bem-estar';
case 101:
return 'Serviços pessoais';
case 102:
return 'Higiene e serviços de saúde ocupacional';
case 103:
return 'Serviços de segurança';
case 104:
return 'Serviços de transporte';
default:
return 'Não classificada';
}
};
'use strict';
/*
Copyright (C) 2016 Centro de Computacao Cientifica e Software Livre
Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR
This file is part of simcaq-node.
simcaq-node is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
simcaq-node is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with simcaq-node. If not, see <https://www.gnu.org/licenses/>.
*/
module.exports = function nightTime(id) {
switch (id) {
case 0:
return 'Não';
case 1:
return 'Sim';
default:
return 'Curso a distância';
}
};
\ No newline at end of file
......@@ -61,6 +61,9 @@ const academicOrganization = require(`${libs}/convert/academicOrganization`);
const ocdeSpecific = require(`${libs}/convert/ocdeSpecific`);
const ocdeGeral = require(`${libs}/convert/ocdeGeral`);
const ocdeDetailed = require(`${libs}/convert/ocdeDetailed`);
const cineSpecific = require(`${libs}/convert/cineSpecific`);
const cineGeral = require(`${libs}/convert/cineGeral`);
const cineDetailed = require(`${libs}/convert/cineDetailed`);
const academicLevel = require(`${libs}/convert/academicLevel`);
const upperEducationMod = require(`${libs}/convert/upperEducationMod`);
const studentDeficiency = require(`${libs}/convert/studentDeficiency`);
......@@ -80,6 +83,7 @@ const genderIES = require(`${libs}/convert/genderIES`);
const deficiency = require(`${libs}/convert/studentDeficiency`);
const govermentAgreement = require(`${libs}/convert/govermentAgreement`);
const arrangement = require(`${libs}/convert/arrangement`);
const nightTime = require(`${libs}/convert/nightTime`);
const ids = {
gender_id: gender,
......@@ -129,13 +133,16 @@ const ids = {
ocde_specific_id: ocdeSpecific,
ocde_geral_id: ocdeGeral,
ocde_detailed_id: ocdeDetailed,
cine_specific_id: cineSpecific,
cine_geral_id: cineGeral,
cine_detailed_id: cineDetailed,
academic_level_id: academicLevel,
upper_education_mod_id: upperEducationMod,
student_deficiency_id: studentDeficiency,
school_type_id: schoolType,
upper_turn_id: upperTurn,
is_free_id: booleanVariable,
night_time_id: booleanVariable,
night_time_id: nightTime,
capital_id: booleanVariable,
ethnic_group_ies_id: ethnicGroupIES,
teacher_situation_id: teacherSituation,
......@@ -231,6 +238,9 @@ module.exports = {
ocdeSpecific,
ocdeGeral,
ocdeDetailed,
cineSpecific,
cineGeral,
cineDetailed,
academicLevel,
upperEducationMod,
studentDeficiency,
......@@ -251,5 +261,6 @@ module.exports = {
deficiency,
transport,
govermentAgreement,
arrangement
arrangement,
nightTime
};
......@@ -114,6 +114,14 @@ const university = require(`${libs}/routes/university`);
const universityTeacher = require(`${libs}/routes/universityTeacher`);
const educationalBudget = require(`${libs}/routes/educationalBudget`);
const schoolLocation = require(`${libs}/routes/schoolLocation`);
const mesoregion = require(`${libs}/routes/mesoregion`);
const microregion = require(`${libs}/routes/microregion`);
api.get('/', (req, res) => {
res.json({ msg: 'SimCAQ API is running' });
});
......@@ -163,5 +171,7 @@ api.use('/university_enrollment', universityEnrollment);
api.use('/university', university);
api.use('/university_teacher', universityTeacher);
api.use('/course_count', courseCount);
api.use('/school_location', schoolLocation);
api.use('/mesoregion', mesoregion);
api.use('/microregion', microregion);
module.exports = api;
......@@ -91,7 +91,9 @@ cityApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => {
.field('municipio.id')
.field('municipio.estado_id', 'state_id')
.field('municipio.longitude', 'longitude')
.field('municipio.latitude', 'latitude');
.field('municipio.latitude', 'latitude')
.field('municipio.mesorregiao_id', 'mesoregion_id')
.field('municipio.microrregiao_id', 'microregion_id');
next();
}, query, response('city'));
......
......@@ -367,7 +367,7 @@ classCountApp.get('/count', rqf.parse(), (req, res, next) => {
.from('turma')
.group('turma.ano_censo')
.order('turma.ano_censo')
.where('turma.tipo_turma_id = 0 AND turma.dependencia_adm_id <= 3 AND ((turma.etapa_resumida >= 1 AND turma.etapa_resumida <= 7) OR turma.etapa_resumida = 99)');
.where('turma.local_turma = 0 AND turma.dependencia_adm_id <= 3 AND ((turma.etapa_resumida >= 1 AND turma.etapa_resumida <= 7) OR turma.etapa_resumida = 99)');
next();
}, rqf.build(), query, addMissing(rqf), id2str.transform(), response('class_count'));
......
......@@ -244,7 +244,7 @@ rqf.addField({
classroomApp.get('/', cache('15 day'), rqf.parse(), rqf.build(), (req, res, next) => {
req.sql.from('escola')
.field('SUM(escola.num_salas)', 'total')
.field('SUM(escola.qtde_salas_utilizadas_dentro)', 'total')
.field("'Brasil'", 'name')
.field('escola.ano_censo', 'year')
.group('escola.ano_censo')
......
......@@ -285,7 +285,7 @@ classroomCountApp.post('/', rqf.parse(), (req, res, next) => {
req.dims.location = true;
req.dims.school_building = true;
req.sql.field('SUM(escola.num_salas)', 'total')
req.sql.field('SUM(escola.qtde_salas_utilizadas_dentro)', 'total')
.field("'Brasil'", 'name')
.field('escola.ano_censo', 'year')
.from('escola')
......
......@@ -173,6 +173,6 @@ cubApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => {
}
next();
}, query, addMissing(rqf), id2str.transform(), response('cub'));
}, query, id2str.transform(), response('cub'));
module.exports = cubApp;
......@@ -42,7 +42,7 @@ const config = require(`${libs}/config`);
const addMissing = require(`${libs}/middlewares/addMissing`);
const cache = require('apicache').options({ debug: config.debug, statusCodes: {include: [200]} }).middleware;
const cache = require('apicache').options({ debug: config.debug, statusCodes: { include: [200] } }).middleware;
let rqf = new ReqQueryFields();
......@@ -52,27 +52,27 @@ let rqfCount = new ReqQueryFields();
dailyChargeAmountApp.get('/year_range', (req, res, next) => {
req.sql.from('turma')
.field('MIN(turma.ano_censo)', 'start_year')
.field('MAX(turma.ano_censo)', 'end_year');
.field('MIN(turma.ano_censo)', 'start_year')
.field('MAX(turma.ano_censo)', 'end_year');
next();
}, query, response('range'));