From ee0fd06ac54ca24c712cedc5ce2109601ac9296f Mon Sep 17 00:00:00 2001 From: Lewis <lgtg20@inf.ufpr.br> Date: Mon, 24 Feb 2025 11:32:22 -0300 Subject: [PATCH] feat: update revenue conversion logic and enhance student revenue API with new filters --- src/libs/convert/revenue.js | 14 ++++++++------ src/libs/routes_v1/studentRevenue.js | 26 +++++++++++++++----------- 2 files changed, 23 insertions(+), 17 deletions(-) diff --git a/src/libs/convert/revenue.js b/src/libs/convert/revenue.js index c4f5865a..9278e280 100644 --- a/src/libs/convert/revenue.js +++ b/src/libs/convert/revenue.js @@ -21,18 +21,20 @@ along with simcaq-node. If not, see <https://www.gnu.org/licenses/>. module.exports = function regionCode(id) { switch (id) { case 1: - return 'Receitas'; + return "Nome Ente" case 2: - return 'MatrÃculas Públicas'; + return 'Receitas'; case 3: - return 'MatrÃculas Públicas Mais Conveniada'; + return 'MatrÃculas Públicas'; case 4: - return 'Receita Aluno Ano Pública' + return 'MatrÃculas Públicas Mais Conveniada'; case 5: - return 'Receita Aluno Mês Pública'; + return 'Receita Aluno Ano Pública' case 6: - return 'Receita Aluno Ano Pública Mais Conveniada'; + return 'Receita Aluno Mês Pública'; case 7: + return 'Receita Aluno Ano Pública Mais Conveniada'; + case 8: return 'Receita Aluno Mês Pública Mais Conveniada'; } }; diff --git a/src/libs/routes_v1/studentRevenue.js b/src/libs/routes_v1/studentRevenue.js index 93ae6997..efce47c5 100644 --- a/src/libs/routes_v1/studentRevenue.js +++ b/src/libs/routes_v1/studentRevenue.js @@ -45,8 +45,9 @@ let rqf = new ReqQueryFields(); studentRevenueApp.use(cache('15 day')); studentRevenueApp.get('/years', (req, res, next) => { - req.sql.from('pnad_novo') + req.sql.from('receitas') .field('DISTINCT receitas.ano', 'year') + .where('receitas.ano is not null') next(); }, query, response('years')); @@ -78,23 +79,24 @@ rqf.addField({ type: 'integer', field: 'ano' } -}).addValue({ - name: 'city', - table: 'receitas', - tableField: 'cod_ibge', - resultField: 'city', - where: { - relation: '=', - type: 'integer', - field: 'cod_ibge' - } }) studentRevenueApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => { if (req.query.dims && req.query.dims.includes('receitas')) { + let whereCondition = ""; + let filterId; + const filters = req.query.filter.split(","); + filters.forEach((filter) => { + if (filter.includes("state") || filter.includes("city")) { + filterId = Number(filter.split(":")[1].replace(/"/g, "")); + whereCondition = `receitas.cod_ibge = ${filterId}` + } + }) + req.sql.from('receitas') .field('receitas.ano', 'year') + .field('receitas.nome_ente', 'total_nome_ente') .field('receitas.receitas', 'total_receitas') .field('matriculas_publica', 'total_matriculas_publica') .field('matriculas_publicas_mais_conveniada', 'total_matriculas_publicas_mais_conveniada') @@ -102,6 +104,8 @@ studentRevenueApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => { .field('receita_aluno_mes_publica', 'total_receita_aluno_mes_publica') .field('receita_aluno_ano_publica_mais_conveniada', 'total_receita_aluno_ano_publica_mais_conveniada') .field('receita_aluno_mes_publica_mais_conveniada', 'total_receita_aluno_mes_publica_mais_conveniada') + .where(`${whereCondition}`) + .order('receitas.cod_ibge') } next(); -- GitLab