feat: endereço da sede dos bancos (rebase #763) by lucianopf · Pull Request #876 · BrasilAPI/BrasilAPI · GitHub
Skip to content

feat: endereço da sede dos bancos (rebase #763) - #876

Merged
lucianopf merged 5 commits into
mainfrom
rebase/763-bank-sede
Aug 9, 2026
Merged

lucianopf merged 5 commits into
mainfrom
rebase/763-bank-sede

Conversation

@lucianopf

Copy link
Copy Markdown
Member

Rebase do PR original (#763, fork lucsantosdev) na main atual.

Feature: GET /banks/v1 e /banks/v1/:code agora incluem:

  • localizacao_sede (estático, do banksList com 327/469 bancos)
  • headquarters_address + address_source + address_last_sync + address_confidence + cnpj (enriquecimento dinâmico via BCB Olinda + CNPJ, com cache 6h e snapshot fallback)

Ajustes no rebase:

  • banksList mesclado: lista atual da main (469 bancos) + endereços do fork (327)
  • Snapshots com timestamp no nome descartados (lixo); latest.json mantido (fallback do serviço)
  • package-lock descartado (sem dependências novas)
  • Teste do fork validado contra o fallback (campos null quando o BCB/CNPJ indisponível)
  • Script snapshot:banks para regenerar o snapshot

Destaque: o fork do autor continha ~28k linhas de mudanças não relacionadas (cptec, holidays, ibge, isbn, vite.config) — tudo descartado, só o bank ficou.

lucsantosdev and others added 5 commits August 9, 2026 09:48
… de todos os bancos da API

Implementação de endereco da sede de todos os 352 bancos cadastrados na API.

feat #746
Co-authored-by: Hermes Agent <noreply@nousresearch.com>
Ai-tool: hermes
Ai-model: deepseek-v4-flash
Ai-os: wsl
O teste do fork validava um esquema (headquarters_address,
address_source) que não corresponde à feature localizacao_sede
deste PR, e os snapshots são dados temporários.

Co-authored-by: Hermes Agent <noreply@nousresearch.com>
Ai-tool: hermes
Ai-model: deepseek-v4-flash
Ai-os: wsl
O teste do fork valida o enriquecimento headquarters_address
(BCB Olinda + CNPJ) que faz parte do PR; o snapshot latest.json
é o fallback usado pelo serviço quando o BCB está indisponível.

Co-authored-by: Hermes Agent <noreply@nousresearch.com>
Ai-tool: hermes
Ai-model: deepseek-v4-flash
Ai-os: wsl
@vercel

vercel Bot commented Aug 9, 2026 •

Copy link
Copy Markdown

@sonarqubecloud

sonarqubecloud Bot commented Aug 9, 2026

Copy link
Copy Markdown

@lucianopf
lucianopf merged commit 4507e71 into main Aug 9, 2026
3 of 4 checks passed
@lucianopf
lucianopf deleted the rebase/763-bank-sede branch August 9, 2026 13:54
lucianopf added a commit that referenced this pull request Aug 10, 2026
#885)

* refactor: lint limpo no CI, teste NCM honesto e move codes.js para services

- CI: step de ESLint no workflow E2E (lint nunca rodava — 43 erros passaram despercebidos)
- lint: mapUfToUfCode (42x prettier), weather.js, cpf (console.log redundante), cep-error-handler (disable scoped)
- teste NCM: expect.assertions + comportamento real (200 [] pós-984c956) — antes passava sem validar nada
- move pages/api/indices/codes.js → services/indices/codes.js (módulo de constantes virava rota 500 em produção)

Co-authored-by: Hermes Agent <noreply@nousresearch.com>

* docs: paridade total rotas ↔ OpenAPI (0 rotas sem doc, 0 paths fantasma)

Auditoria achou 26 rotas sem doc + ~10 params divergentes (doc PT-BR vs
código EN, dos rebases #861-#876). Correções:
- params renomeados: fipe (tipoVeiculo→vehicleType...), ibge (siglaUF→uf...),
  cptec (icaoCode→airport), ibpt (siglaUF→uf), solar (path→query)
- paths novos: /ibge/uf/v1/regiao, /fipe/marcas/v1, /feriados/v1, /oms/cid10/v1,
  /status/v1 (cid10.json + status.json novos)
- eleicoes.json: prefixo /api removido dos paths
- holydays/statewide: path fantasma {ano}/{uf} removido (UF é query)
- ibpt: ?ex=01 removido do path key (query param)
- teste novo: docs-parity.test.js (paridade rotas reais ↔ doc)

Co-authored-by: Hermes Agent <noreply@nousresearch.com>

---------

Co-authored-by: Hermes Agent <noreply@nousresearch.com>
lucianopf added a commit that referenced this pull request Aug 10, 2026
* refactor: lint limpo no CI, teste NCM honesto e move codes.js para services

- CI: step de ESLint no workflow E2E (lint nunca rodava — 43 erros passaram despercebidos)
- lint: mapUfToUfCode (42x prettier), weather.js, cpf (console.log redundante), cep-error-handler (disable scoped)
- teste NCM: expect.assertions + comportamento real (200 [] pós-984c956) — antes passava sem validar nada
- move pages/api/indices/codes.js → services/indices/codes.js (módulo de constantes virava rota 500 em produção)

Co-authored-by: Hermes Agent <noreply@nousresearch.com>

* docs: paridade total rotas ↔ OpenAPI (0 rotas sem doc, 0 paths fantasma)

Auditoria achou 26 rotas sem doc + ~10 params divergentes (doc PT-BR vs
código EN, dos rebases #861-#876). Correções:
- params renomeados: fipe (tipoVeiculo→vehicleType...), ibge (siglaUF→uf...),
  cptec (icaoCode→airport), ibpt (siglaUF→uf), solar (path→query)
- paths novos: /ibge/uf/v1/regiao, /fipe/marcas/v1, /feriados/v1, /oms/cid10/v1,
  /status/v1 (cid10.json + status.json novos)
- eleicoes.json: prefixo /api removido dos paths
- holydays/statewide: path fantasma {ano}/{uf} removido (UF é query)
- ibpt: ?ex=01 removido do path key (query param)
- teste novo: docs-parity.test.js (paridade rotas reais ↔ doc)

Co-authored-by: Hermes Agent <noreply@nousresearch.com>

* feat: campo logo_url no /banks/v1 (issue #834)

Adiciona logo_url (CDN jsDelivr do projeto logos-bancos-br, do autor da
issue) para bancos com logo mapeado por ISPB; null nos demais (154/469
hoje, 33%).

- snapshot services/banco-central/logo-urls.json (476 ISPB→URL, gerado
  do pacote npm logos-bancos-br@0.6.2)
- enrich em getBanksData cobre todos os caminhos (CSV/snapshot/fallback)
- doc: schema Bank com logo_url opcional (string|null)
- testes: logo presente, null para sem-logo, compatibilidade retroativa

Co-authored-by: Hermes Agent <noreply@nousresearch.com>

---------

Co-authored-by: Hermes Agent <noreply@nousresearch.com>
lucianopf added a commit that referenced this pull request Aug 10, 2026
* refactor: lint limpo no CI, teste NCM honesto e move codes.js para services

- CI: step de ESLint no workflow E2E (lint nunca rodava — 43 erros passaram despercebidos)
- lint: mapUfToUfCode (42x prettier), weather.js, cpf (console.log redundante), cep-error-handler (disable scoped)
- teste NCM: expect.assertions + comportamento real (200 [] pós-984c956) — antes passava sem validar nada
- move pages/api/indices/codes.js → services/indices/codes.js (módulo de constantes virava rota 500 em produção)

Co-authored-by: Hermes Agent <noreply@nousresearch.com>

* docs: paridade total rotas ↔ OpenAPI (0 rotas sem doc, 0 paths fantasma)

Auditoria achou 26 rotas sem doc + ~10 params divergentes (doc PT-BR vs
código EN, dos rebases #861-#876). Correções:
- params renomeados: fipe (tipoVeiculo→vehicleType...), ibge (siglaUF→uf...),
  cptec (icaoCode→airport), ibpt (siglaUF→uf), solar (path→query)
- paths novos: /ibge/uf/v1/regiao, /fipe/marcas/v1, /feriados/v1, /oms/cid10/v1,
  /status/v1 (cid10.json + status.json novos)
- eleicoes.json: prefixo /api removido dos paths
- holydays/statewide: path fantasma {ano}/{uf} removido (UF é query)
- ibpt: ?ex=01 removido do path key (query param)
- teste novo: docs-parity.test.js (paridade rotas reais ↔ doc)

Co-authored-by: Hermes Agent <noreply@nousresearch.com>

* feat: filtro por UF em /cvm/corretoras/v1 (issue #736)

GET /api/cvm/corretoras/v1?uf=SP retorna apenas corretoras do estado
(166 de 375 hoje). UF inválida → 400 validation_error; UF sem corretoras
→ 200 [] (padrão do repo). Sem uf → comportamento atual (lista completa).

- doc: param opcional uf no OpenAPI
- testes: filtro SP (todos uf=SP), UF sem resultado, UF inválida 400

Co-authored-by: Hermes Agent <noreply@nousresearch.com>

* test: move import do helper CORS para o topo (lint import/first)

---------

Co-authored-by: Hermes Agent <noreply@nousresearch.com>
lucianopf added a commit that referenced this pull request Aug 10, 2026
* refactor: lint limpo no CI, teste NCM honesto e move codes.js para services

- CI: step de ESLint no workflow E2E (lint nunca rodava — 43 erros passaram despercebidos)
- lint: mapUfToUfCode (42x prettier), weather.js, cpf (console.log redundante), cep-error-handler (disable scoped)
- teste NCM: expect.assertions + comportamento real (200 [] pós-984c956) — antes passava sem validar nada
- move pages/api/indices/codes.js → services/indices/codes.js (módulo de constantes virava rota 500 em produção)

Co-authored-by: Hermes Agent <noreply@nousresearch.com>

* docs: paridade total rotas ↔ OpenAPI (0 rotas sem doc, 0 paths fantasma)

Auditoria achou 26 rotas sem doc + ~10 params divergentes (doc PT-BR vs
código EN, dos rebases #861-#876). Correções:
- params renomeados: fipe (tipoVeiculo→vehicleType...), ibge (siglaUF→uf...),
  cptec (icaoCode→airport), ibpt (siglaUF→uf), solar (path→query)
- paths novos: /ibge/uf/v1/regiao, /fipe/marcas/v1, /feriados/v1, /oms/cid10/v1,
  /status/v1 (cid10.json + status.json novos)
- eleicoes.json: prefixo /api removido dos paths
- holydays/statewide: path fantasma {ano}/{uf} removido (UF é query)
- ibpt: ?ex=01 removido do path key (query param)
- teste novo: docs-parity.test.js (paridade rotas reais ↔ doc)

Co-authored-by: Hermes Agent <noreply@nousresearch.com>

* test: skip B3 quando o provider bloqueia o runner (403 datacenter)

O b3-v1.test.js não tinha o padrão health-check+skip dos outros
providers — quando a B3 bloqueia o runner (403 por IP de datacenter),
22 testes E2E + CORS falhavam e derrubavam o CI de todos os PRs.

Padrão: describe.skipIf(shouldSkipTests) (como ibge-populacao-fix).

Co-authored-by: Hermes Agent <noreply@nousresearch.com>

* test: skip CEP v3 quando OpenCEP falha no runner (coordenadas null)

O runner pegou OpenCEP fora do ar: coordinates vieram null e o teste
toEqua... quebrava (1 falha flaky derrubando o CI). Mesmo padrão
describe.skipIf(shouldSkipTests) dos outros providers.

Co-authored-by: Hermes Agent <noreply@nousresearch.com>

---------

Co-authored-by: Hermes Agent <noreply@nousresearch.com>

This branch had an error being deployed

1 failed deployment
Preview — db4bd91f Deployed Aug 9, 2026 by vercel[bot]
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.

2 participants