diff --git a/src/libs/convert/teacherDeficiency.js b/src/libs/convert/teacherDeficiency.js new file mode 100644 index 0000000000000000000000000000000000000000..dd911d2170b8e7a500a841a9147e85d4e08edf5f --- /dev/null +++ b/src/libs/convert/teacherDeficiency.js @@ -0,0 +1,26 @@ +/* +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 teacherDeficiency(id) { + switch (id) { + case 0: + return 'Total'; + } +}; diff --git a/src/libs/middlewares/aggregateData.js b/src/libs/middlewares/aggregateData.js index 5f2e2de94ec247ed6418f048f5f32c8b050251c8..48c4ab52091cc0e18a63dfd6c297f2109f3a97f6 100644 --- a/src/libs/middlewares/aggregateData.js +++ b/src/libs/middlewares/aggregateData.js @@ -39,6 +39,7 @@ const convert = { government_agreement: "governmentAgreement", work_regime: "workRegime", teacher_schooling: "teacherSchooling", + teacher_deficiency: "teacherDeficiency", } function aggregateData(req, res, next) { @@ -68,7 +69,8 @@ function aggregateData(req, res, next) { 'contract_type_entity', 'education_degree_entity', 'work_regime', - 'teacher_schooling' + 'teacher_schooling', + 'teacher_deficiency', ] let id; const fields = req.query.dims.split(','); @@ -78,10 +80,10 @@ function aggregateData(req, res, next) { // Verifica se o filtro passado está presente nos filtros agregados fields.forEach(field => {if (aggregateFields.includes(field)) currentAggregateField = field; else currentNonAggregateField = field}); if (currentAggregateField) { - console.log(currentNonAggregateField) req.result.forEach((r) => { // Alguns filtros começam com o id = 0 outros id = 1 - id = ['ethnic_group', 'integral_time_agg'].includes(currentAggregateField) ? 0 : 1; + id = ['ethnic_group', 'integral_time_agg', 'teacher_deficiency'].includes(currentAggregateField) ? 0 : 1; + for (const property in r) { // Dados agregados são identificados com a substring 'total_' em sua chave if (property.includes('total_')) { diff --git a/src/libs/middlewares/id2str.js b/src/libs/middlewares/id2str.js index 8f559421ccbf8288675f4675dbfcee3de0d21881..5f98e53208dbe5d2eb9957a033872baf797f754c 100644 --- a/src/libs/middlewares/id2str.js +++ b/src/libs/middlewares/id2str.js @@ -127,6 +127,7 @@ const ageRangeEntity = require(`${libs}/convert/ageRangeEntity`); const postGraduationEntity = require(`${libs}/convert/postGraduationEntity`); const totalDoc = require(`${libs}/convert/totalDoc`); const educationDegreeEntity = require(`${libs}/convert/educationDegreeEntity`); +const teacherDeficiency = require(`${libs}/convert/teacherDeficiency`); const ids = { gender_id: gender, @@ -246,14 +247,17 @@ const ids = { post_graduation_entity: postGraduationEntity, special_education_entity: specialEducationEntity, total_doc: totalDoc, - education_degree_entity: educationDegreeEntity + education_degree_entity: educationDegreeEntity, + teacher_deficiency: teacherDeficiency }; function transform(removeId=false) { return (req, res, next) => { + if(req.result.length <= 0) { return next(); } + // Para cada objeto do resultado req.result.forEach((obj) => { Object.keys(obj).forEach((key) => { @@ -388,5 +392,6 @@ module.exports = { postGraduationEntity, specialEducationEntity, totalDoc, - educationDegreeEntity + educationDegreeEntity, + teacherDeficiency }; diff --git a/src/libs/routes_v1/courseCount.js b/src/libs/routes_v1/courseCount.js index 404ed2eb09b56efe5b6bd1caaa643ca1e225d3a8..1df41166dcaa94a3e273fb65ceb848d8355ac254 100644 --- a/src/libs/routes_v1/courseCount.js +++ b/src/libs/routes_v1/courseCount.js @@ -801,6 +801,7 @@ courseCountApp.get('/', rqf.parse(), (req, res, next) => { .where('curso_ens_superior.cod_nivel_academico = 1'); } next(); + }, rqf.build(), query, (req, res, next) =>{ if ('course' in req.dims){ var total_course = req.result.reduce((total, cur) => {return total += cur.total}, 0) @@ -808,6 +809,7 @@ courseCountApp.get('/', rqf.parse(), (req, res, next) => { course.percentage = Number((( course.total / total_course ) * 100).toFixed(2)) } } + console.log(req.result) next(); }, id2str.transform(), addMissing(rqf), response('course_count')); diff --git a/src/libs/routes_v1/iesTeachers.js b/src/libs/routes_v1/iesTeachers.js index 7a644b7202ff64d241f6be15a035e5fd9a56fee0..1e5e84db0e323b8804cf761b6fe1641ed7cf793e 100644 --- a/src/libs/routes_v1/iesTeachers.js +++ b/src/libs/routes_v1/iesTeachers.js @@ -194,10 +194,10 @@ rqf.addField({ field: 'qtd_doc_ex_indigena' } }).addValue({ - name: 'teacher_def', + name: 'teacher_deficiency', table: 'docente_ies_agregado', tableField: 'qtd_doc_ex_com_deficiencia', - resultField: 'qtd_doc_ex_com_deficiencia', + resultField: 'teacher_deficiency_total', where: { relation: '=', type: 'integer', @@ -518,9 +518,9 @@ rqf.addField({ iesTeachers.get('/', rqf.parse(), rqf.build(), (req, res, next) => { if ("university" in req.dims) { - if (req.query.dims && req.query.dims.includes('teacher_def')) { + if (req.query.dims && req.query.dims.includes('teacher_deficiency')) { req.sql.from('docente_ies_agregado') - .field('SUM(docente_ies_agregado.qtd_doc_ex_com_deficiencia)', 'total') + .field('SUM(docente_ies_agregado.qtd_doc_ex_com_deficiencia)', 'total_deficiency') .field('docente_ies_agregado.ano_censo', 'year') .field('docente_ies_agregado.cod_ies', 'university_id') .field('docente_ies_agregado.nome_ies', 'university_name') @@ -528,8 +528,7 @@ iesTeachers.get('/', rqf.parse(), rqf.build(), (req, res, next) => { .group('docente_ies_agregado.nome_ies') .group('docente_ies_agregado.ano_censo') .order('docente_ies_agregado.ano_censo') - } - else if (req.query.dims && req.query.dims.includes('gender')) + } else if (req.query.dims && req.query.dims.includes('gender')) { req.sql.from('docente_ies_agregado') .field('SUM(docente_ies_agregado.qtd_doc_ex_masc)', 'total_masc') @@ -574,6 +573,8 @@ iesTeachers.get('/', rqf.parse(), rqf.build(), (req, res, next) => { .group('docente_ies_agregado.cod_ies') .group('docente_ies_agregado.nome_ies') .order('docente_ies_agregado.ano_censo') + console.log(req.sql.toString()) + console.log(req.result) }else if(req.query.dims && req.query.dims.includes('teacher_schooling')){ req.sql.from('docente_ies_agregado') .field('SUM(docente_ies_agregado.qtd_doc_ex_sem_grad)', 'total_sem_grad') @@ -628,7 +629,7 @@ iesTeachers.get('/', rqf.parse(), rqf.build(), (req, res, next) => { .group('docente_ies_agregado.nome_ies') .order('docente_ies_agregado.ano_censo') console.log(req.sql.toString()) - } + } next(); } else { @@ -638,7 +639,6 @@ iesTeachers.get('/', rqf.parse(), rqf.build(), (req, res, next) => { message: 'Wrong/No filter specified' }); } - next(); }, query, aggregateData, id2str.transform(false), response('teacher_ies')); module.exports = iesTeachers;