Repository navigation
add filter banks by partial name - #285
araujovicthor wants to merge 5 commits into
Conversation
lucianopf
left a comment
There was a problem hiding this comment.
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
|
Kudos, SonarCloud Quality Gate passed!
|
|
@Mulequehype no final do e-mail do tem um link "unsubscribe", só clicar nele que os e-mails param. |
|
Kudos, SonarCloud Quality Gate passed!
|
|
Ternário é show também 👍😀
Em ter., 25 de mai. de 2021 às 18:39, Rodrigo Teixeira Andreotti <
***@***.***> escreveu:
… ***@***.**** commented on this pull request.
------------------------------
In pages/api/banks/v1/index.js
<#285 (comment)>:
> @@ -4,8 +4,30 @@ import { getBanksData } from '@/services/banco-central';
const action = async (request, response) => {
const allBanksData = await getBanksData();
+ if (request.query.search) {
+ const { search } = request.query;
+ const formatedSearch = search.toLowerCase();
+
+ const filteredBanks = allBanksData.filter((bank) => {
+ const { code, name } = bank;
+
+ // Checagem se search é parte do código do banco (number)
+ const checkCode = String(code).toLowerCase().indexOf(formatedSearch) > -1;
Esse recuso é bem útil usado com o React, não sei se você usa, mas é assim:
{isDelivery && <Delivery />}
Acho que no Vue deve ser parecido, mas é muito útil esse recuso, evita
bastante mutabilidade sem precisar fazer uma função (algo que eu gosto)
Cara, conheço React sim, mas eu costumo usar mais operadores ternários
mesmo... rs
{isDelivery ? <Delivery /> : null}
Como falei, pode ser pela carga de outras linguagens, mas, apesar de
conhecer este comportamento hoje, não achei ele muito claro, mas sei que é
uma especificidade da linguagem, e se existe, é para ser usado.
Pessoalmente eu não usaria, mas é bom saber caso pegue algum projeto que
ele seja usado :-p
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#285 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AHCOTWGG25NAQNEKOTDJH2LTPQRKBANCNFSM4Z2OUEAA>
.
--
*Fernando Lima*
|
|
Acho que seria interessante manter o ISPB como "chave primária" ( |
|
@araujovicthor , consegue atualizar este PR? |
5ac36e3 to
c9604de
Compare
d29a1aa to
bf3a71b
Compare
|
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 3. // ❌
response.status(200);
response.json(banksData);
return response;
// ✅
return response.status(200).json(banksData);Com essas correções o PR fica pronto! |

Descrição
Esse PR adiciona a possibilidade de filtrar os bancos retornados por querystring, utilizando o parâmetro
searchcomo por exemplo embanks/v1?search=itau.