add filter banks by partial name by araujovicthor · Pull Request #285 · BrasilAPI/BrasilAPI · GitHub
Skip to content

add filter banks by partial name - #285

Closed
araujovicthor wants to merge 5 commits into
BrasilAPI:mainfrom
araujovicthor:add/filtrarBancosPorParteNome
Closed

araujovicthor wants to merge 5 commits into
BrasilAPI:mainfrom
araujovicthor:add/filtrarBancosPorParteNome

Conversation

@araujovicthor

@araujovicthor araujovicthor commented Mar 26, 2021 •

Copy link
Copy Markdown

Descrição

Esse PR adiciona a possibilidade de filtrar os bancos retornados por querystring, utilizando o parâmetro search como por exemplo em banks/v1?search=itau.

@vercel

vercel Bot commented Mar 26, 2021 •

Copy link
Copy Markdown

joaoigm
joaoigm previously approved these changes Mar 26, 2021
Comment thread tests/banks-v1.test.js Outdated
Comment thread pages/api/banks/v1/index.js Outdated
Comment thread tests/banks-v1.test.js Outdated
Comment thread tests/banks-v1.test.js Outdated
Comment thread pages/api/banks/v1/index.js Outdated

@lucianopf lucianopf left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Primeiramente obrigado pelo PR mestre! 🚀 👏

A ideia é mto boa e ta caminhando pra um merge! 🙏 ❤️

Deixei só um comentário pra gente discutir mas acho que já ta bem perto do merge @araujovicthor

Comment thread pages/api/banks/v1/index.js Outdated
@sonarqubecloud

sonarqubecloud Bot commented Apr 6, 2021

Copy link
Copy Markdown

Kudos, SonarCloud 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

@araujovicthor
araujovicthor requested a review from lucianopf April 23, 2021 00:49
Comment thread pages/api/banks/v1/index.js Outdated
Comment thread pages/api/banks/v1/index.js Outdated
Comment thread pages/api/banks/v1/index.js Outdated
Comment thread pages/api/banks/v1/index.js Outdated
@ghost

ghost commented May 24, 2021 via email

Copy link
Copy Markdown

@pedrosancao

Copy link
Copy Markdown
Contributor

@Mulequehype no final do e-mail do tem um link "unsubscribe", só clicar nele que os e-mails param.

Comment thread pages/api/banks/v1/index.js Outdated
@sonarqubecloud

Copy link
Copy Markdown

Kudos, SonarCloud 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

@lnfernandobr

lnfernandobr commented May 25, 2021 via email

Copy link
Copy Markdown

@yuhrao

yuhrao commented Aug 2, 2021

Copy link
Copy Markdown

Acho que seria interessante manter o ISPB como "chave primária" (/api/banks/v1/:ispb). É um código definido pelo BACEN e é único para o arranjo (tanto de instituições bancárias quanto participantes do arranjo PIX)

@LorhanSohaky

Copy link
Copy Markdown
Member

@araujovicthor , consegue atualizar este PR?

@lucianopf
lucianopf force-pushed the main branch 3 times, most recently from 5ac36e3 to c9604de Compare November 23, 2022 03:17
@lucianopf
lucianopf force-pushed the main branch 5 times, most recently from d29a1aa to bf3a71b Compare May 8, 2023 15:58
@lucianopf

Copy link
Copy Markdown
Member

Olá @araujovicthor, adicionar busca por nome parcial é uma feature útil! A implementação core está limpa. Alguns ajustes:

1. Testes com dados hardcoded (frágil)

expect(response.data).toStrictEqual([
  { ispb: '00416968', name: 'BANCO INTER', code: 77, fullName: 'Banco Inter S.A.' },
  ...
]);

A lista de bancos é atualizada periodicamente — bancos podem ser criados, renomeados ou removidos. Um teste que hardcoda dados específicos quebra a cada atualização da lista.

Prefira verificar a estrutura e que os resultados contenham a string buscada:

test('Listar bancos por parte de nome', async () => {
  const response = await axios.get(`${SERVER_URL}/api/banks/v1?search=inter`);
  expect(response.status).toBe(200);
  expect(response.data.every(bank => 
    bank.name?.toLowerCase().includes('inter') || 
    String(bank.code)?.includes('inter')
  )).toBe(true);
});

2. Documentação OpenAPI com query param no path (formato inválido)

// ❌ — query params não vão no path do OpenAPI
"/banks/v1?search={search}": { ... }

// ✅ — adicione como parâmetro com in: "query"
"/banks/v1": {
  "get": {
    "parameters": [{
      "name": "search",
      "in": "query",
      "required": false,
      "schema": { "type": "string" },
      "description": "Filtra por parte do nome ou código do banco"
    }]
  }
}

Além disso, as mudanças em pages/docs/doc.json parecem ser em um arquivo mais antigo — o projeto usa pages/docs/doc/banks.json para a documentação dos bancos. Verifique qual é o arquivo correto.

3. return response no final do handler

// ❌
response.status(200);
response.json(banksData);
return response;

// ✅
return response.status(200).json(banksData);

Com essas correções o PR fica pronto!

@lucianopf

Copy link
Copy Markdown
Member

This branch was successfully deployed

1 active deployment
Preview — c0fd0312 Deployed May 25, 2021 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants