Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: dados abertos senado #444

Open
wants to merge 27 commits into
base: main
Choose a base branch
from

Conversation

gabriellhuver
Copy link

@gabriellhuver gabriellhuver commented Dec 10, 2022

Inicio da implementação dos dados do Senado

Foi implementado a parte de orçamentos para teste.

Dados foram retirados daqui

ISSUE: Endpoint com dados abertos do senado #399

@vercel
Copy link

vercel bot commented Dec 10, 2022

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
brasilapi ✅ Ready (Inspect) Visit Preview 💬 Add feedback Aug 6, 2023 4:19pm

@gabriellhuver
Copy link
Author

gabriellhuver commented Dec 11, 2022

Foram adcionados mais algumas rotas, da parte de gestão de pessoas

Todos os endpoint rest api dessa parte estão criados, ainda falta fazer a documentação e a parte de teste E2E que eu creio que seja a parte mais chata.

@LorhanSohaky LorhanSohaky linked an issue Dec 14, 2022 that may be closed by this pull request
Copy link
Member

@LorhanSohaky LorhanSohaky left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Muito obrigado pela contribuição! Deixei algumas sugestões de melhorias, além disso, caso queira que essas rotas desenvolvidas tenham mais visibilidade, recomendo modificar o sitemap.xml e as keywords presentes no pages/index.js

pages/api/senado/v1/quantitativos/pessoal.js Outdated Show resolved Hide resolved
pages/api/senado/v1/orcamento/despesa.js Outdated Show resolved Hide resolved

export const getDadosDespesa = async () => {
const data = await axios.get(
'https://www.senado.gov.br/bi-arqs/Arquimedes/Financeiro/DespesaSenadoDadosAbertos.json'
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Não conferi a saída de todas as rotas, mas essa em específico notei que as datas estão no padrão dd/MM/yy e os valores estão como string, será que podemos parsear a data e o campo numérico? (Se em outra rota também estiver assim é bom também)

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sim, concordo, vou analisar alguma solução.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@LorhanSohaky Como o formato da data é 23/02/23 com o ano abreviado, estou com medo de parsear, vc tem alguma dica ?

Vi essa solução mas não estou muito feliz com ela

const dataStr = '23/02/23';
const parts = dataStr.split('/');
const year = parseInt(parts[2]) + 2000; // Somando 2000 para transformar o ano de 2 dígitos em 4 dígitos
const month = parseInt(parts[1]) - 1; // Os meses em JavaScript vão de 0 a 11
const day = parseInt(parts[0]);

const data = new Date(year, month, day);

ou essa solução

const { parse } = require('date-fns');

const dataStr = '23/02/23';
const data = parse(dataStr, 'dd/MM/yy', new Date());

ou essa ?

const moment = require('moment');

// Cria um objeto moment a partir da string da data
const dateMoment = moment('23/02/23', 'DD/MM/YY');

// Converte o objeto moment para um objeto Date
const date = dateMoment.toDate();

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sugiro algo parecido com a ultima opção, mas trocando de moment por dayjs, pq já está instalada

services/dados-abertos-br/senado-orcamento.js Show resolved Hide resolved
@sonarcloud
Copy link

sonarcloud bot commented Dec 17, 2022

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

No Coverage information No Coverage information
0.0% 0.0% Duplication

@LorhanSohaky
Copy link
Member

@gabriellhuver , vai continuar com este PR?

@sonarcloud
Copy link

sonarcloud bot commented Feb 18, 2023

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

No Coverage information No Coverage information
2.1% 2.1% Duplication

gabriellhuver and others added 2 commits April 21, 2023 02:08
Co-authored-by: Lorhan Sohaky <16273730+LorhanSohaky@users.noreply.github.com>
Co-authored-by: Lorhan Sohaky <16273730+LorhanSohaky@users.noreply.github.com>
@gabriellhuver
Copy link
Author

@gabriellhuver , vai continuar com este PR?

Primeiramente desculpa a demora para responder, vou sim, vou fazer os ajustes devagar, ajustei os retornos de erro e a rota de disponibilizados, ainda falta resolver a data da rota de despesas e documentar no sitemap, mas pretendo continuar sim,

@gabriellhuver
Copy link
Author

Pretendo fazer os testes E2E tbm.

Copy link
Member

@LorhanSohaky LorhanSohaky left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Muito obrigado! Deixei alguns comentários, mas em resumo:

  • É importante adicionar teste de todas as rotas
  • Também é desejável que adicione documentação com esses dados do senado
  • E é útil atualizar as informações do sitemap.xml e as keywords presentes no pages/index.js para que as pessoas encontrem esta API
  • A fixação do status code é de interesse, pois ao documentar você diz qual o status code que nossos usuários deverão receber

pages/api/senado/v1/gestao/servidores/ativos.js Outdated Show resolved Hide resolved
pages/api/senado/v1/gestao/servidores/comissionados.js Outdated Show resolved Hide resolved
pages/api/senado/v1/gestao/servidores/efetivos.js Outdated Show resolved Hide resolved
pages/api/senado/v1/orcamento/despesa.js Outdated Show resolved Hide resolved
pages/api/senado/v1/orcamento/receita.js Outdated Show resolved Hide resolved
pages/api/senado/v1/quantitativos/cargos-funcoes.js Outdated Show resolved Hide resolved
pages/api/senado/v1/quantitativos/pessoal.js Outdated Show resolved Hide resolved
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Precisamos que adicione testes de todas as rotas, pois só assim conseguimos garantir que tudo está em completo funcionamento ou se a informação foi alterada. Sugiro que tome como inspiração os casos de testes que já existem no repositório, por exemplo:

  • Testes de quando o usuário envia algum parâmetro errado (se aplicável)

  • Testes do formato da saída das rotas (por exemplo, se está retornando uma lista com nome (string), valor (moeda) e descrição)

  • Verificação do status code

  • pages/api/senado/v1/gestao/servidores/aposentadoria/inativos.js

  • pages/api/senado/v1/gestao/servidores/aposentadoria/pensionistas.js

  • pages/api/senado/v1/gestao/servidores/aposentadoria/previsao.js

  • pages/api/senado/v1/gestao/servidores/ativos.js

  • pages/api/senado/v1/gestao/servidores/comissionados.js

  • pages/api/senado/v1/gestao/servidores/efetivos.js

  • pages/api/senado/v1/gestao/servidores/estagiarios.js

  • pages/api/senado/v1/gestao/servidores/index.js

  • pages/api/senado/v1/gestao/servidores/terceirizados.js

  • pages/api/senado/v1/orcamento/despesa.js

  • pages/api/senado/v1/orcamento/receita.js

  • pages/api/senado/v1/quantitativos/cargos-funcoes.js

  • pages/api/senado/v1/quantitativos/pessoal.js

  • services/dados-abertos-br/senado-gestao-pessoas.js

  • services/dados-abertos-br/senado-orcamento.js

  • services/dados-abertos-br/senado-quantitativos.js

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perfeito ! Vou fazer os ajustes.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fiz os ajustes dos status, vou trabalhar na finalização dos testes E2E e documentação ! @LorhanSohaky

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Boa tarde, @LorhanSohaky

Fiquei um pouco em dúvida em relação aos testes, eu poderia fazer dessa forma ?

describe('api/senado/v1/gestao/servidores (E2E)', () => {
  test('Pesquisando Relação de servidores efetivos do Governo do Distrito Federal à disposição do Senado Federal', async () => {
    
    const validTestArray = expect.arrayContaining([
      expect.objectContaining({
        sequencial: expect.any(Number),
        nome: expect.any(String),
      }),
    ]);

    const response = await axios.get(`${URL}`);
    
    expect(response.status).toBe(200);
    expect(response.data).toEqual(validTestArray);
  });
});

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

É exatamente por aí!

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Como eu não conheço os dados diria pra tentar seguir as recomendações deste PR #268, sei que ainda não está definitivo, mas algumas coisas como, por exemplo, padrão de data e moeda já podem ser seguidos

Copy link
Author

@gabriellhuver gabriellhuver Apr 21, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Boa tarde @LorhanSohaky, estou desenvolvendo a parte da documentação das API´s porém estou tendo dificuldade para acessar o /docs, estou suspeitando da versão do meu NodeJS, como não sou especialista em Next, não sei o que pode ser, vou deixar uma print do erro que esta ocorrendo no meu ambiente, se puder me ajudar

Estou usando no node 16.20.0

image

Tentei tbm fazer o build do projeto mas está dando esse problema

image

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Se você ainda não editou nada tentaria com node 14 ou uma outra versão do 16

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consegui com essas versões:

image

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Quando puder revisar me avisa

@sonarcloud
Copy link

sonarcloud bot commented Apr 21, 2023

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

No Coverage information No Coverage information
1.7% 1.7% Duplication

gabriellhuver and others added 2 commits April 21, 2023 11:43
Co-authored-by: Lorhan Sohaky <16273730+LorhanSohaky@users.noreply.github.com>
Co-authored-by: Lorhan Sohaky <16273730+LorhanSohaky@users.noreply.github.com>
gabriellhuver and others added 3 commits April 21, 2023 11:45
Co-authored-by: Lorhan Sohaky <16273730+LorhanSohaky@users.noreply.github.com>
Co-authored-by: Lorhan Sohaky <16273730+LorhanSohaky@users.noreply.github.com>
Co-authored-by: Lorhan Sohaky <16273730+LorhanSohaky@users.noreply.github.com>
Co-authored-by: Lorhan Sohaky <16273730+LorhanSohaky@users.noreply.github.com>
gabriellhuver and others added 3 commits April 21, 2023 11:51
Update pages/api/senado/v1/gestao/servidores/aposentadoria/pensionistas.js

Update pages/api/senado/v1/gestao/servidores/aposentadoria/previsao.js

Update pages/api/senado/v1/gestao/servidores/efetivos.js

Update pages/api/senado/v1/quantitativos/cargos-funcoes.js

Update pages/api/senado/v1/gestao/servidores/ativos.js

Update pages/api/senado/v1/gestao/servidores/comissionados.js

Update pages/api/senado/v1/quantitativos/pessoal.js

Update pages/api/senado/v1/orcamento/receita.js

Co-Authored-By: Lorhan Sohaky <16273730+LorhanSohaky@users.noreply.github.com>
@sonarcloud
Copy link

sonarcloud bot commented Apr 29, 2023

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

No Coverage information No Coverage information
1.6% 1.6% Duplication

@sonarcloud
Copy link

sonarcloud bot commented Aug 6, 2023

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

No Coverage information No Coverage information
1.5% 1.5% Duplication

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Endpoint com dados abertos do senado
2 participants