Criação do endpoint '/health'#42
Open
Maxwbh wants to merge 197 commits into
Open
Conversation
Update brcobranca
Update to use repo master.
Bumps [rack](https://github.com/rack/rack) from 2.2.2 to 2.2.3. - [Release notes](https://github.com/rack/rack/releases) - [Changelog](https://github.com/rack/rack/blob/master/CHANGELOG.md) - [Commits](rack/rack@v2.2.2...2.2.3) Signed-off-by: dependabot[bot] <support@github.com>
Bumps [puma](https://github.com/puma/puma) from 4.3.5 to 4.3.8. - [Release notes](https://github.com/puma/puma/releases) - [Changelog](https://github.com/puma/puma/blob/master/History.md) - [Commits](puma/puma@v4.3.5...v4.3.8) Signed-off-by: dependabot[bot] <support@github.com>
Bump rack from 2.2.2 to 2.2.3
Bump puma from 4.3.5 to 4.3.8
Change repo to waiting PR Unicred CNAB400 merge in the main repo.
NameError at /api/boleto/multi uninitialized constant Brcobranca::Bol…
[IMP] Atualização BRCobranca versão 10.0.0 .
## Gemfile - rghost: '0.9.8' (fixo) -> '~> 0.9.8' (aceita patch updates) - Organizado em secoes com comentarios claros - Gems da stdlib (base64, mutex_m, bigdecimal) documentadas como necessarias para Ruby 3.4+ compatibilidade ## Dockerfile - Base: alpine:3.19 -> ruby:3.3-alpine (garante Ruby 3.3 consistente com o Gemfile.lock, evita incompatibilidade de gems nativas) - Builder: removido 'gem install bundler' (ja vem na imagem ruby:3.3) e removido 'ruby-dev' (ja na imagem base) - Runtime: removido 'gem install bundler' (idem) - Removido 'ruby' do apk add (ja na imagem base) - Labels simplificados - Comentarios reduzidos ## docker-compose.yml - Removido 'version: 3.8' (deprecated no Docker Compose v2+) - Removido volume de docs/ no servico principal (desnecessario) - Servico test: 'gem install rspec rack-test' ao inves de 'bundle install' completo (mais rapido) - BUNDLE_WITHOUT= (vazio) para nao excluir test group 168 testes passando.
brcobranca 12.7.1: fix compatibilidade rghost 0.9.9 rghost 0.9.8 → 0.9.9: fix RGhost::VERSION (restaurado fallback) Documentacao atualizada: - brcobranca-fork.md: entrada v12.7.1 no historico, versao exata - ARCHITECTURE.md: referencia v12.7.1 - fields/README.md: gem v12.7.1 168 testes passando com brcobranca v12.7.1 + rghost 0.9.9.
Integrate Brcobranca::Bancos v12.7.1 and update documentation
O endpoint GET /api/boleto/nosso_numero ainda retornava nosso_numero_boleto vindo do merge com dados_calculados da gem. Adicionado delete(:nosso_numero_boleto) apos o merge. Todos os endpoints de boleto agora retornam consistentemente apenas 3 campos: nosso_numero (valor padronizado) nosso_numero_formatado (impresso no boleto) nosso_numero_dv (digito verificador) docs/README.md atualizado com tabela completa de endpoints incluindo /api/info, /api/metadata, /api/bancos e detalhes de retorno (include_data, headers X-*). 168 testes passando.
[FIX] Remover nosso_numero_boleto residual do endpoint /nosso_numero
Adiciona 3 novos endpoints para documentacao consumivel por outros sistemas: GET /api/docs Swagger UI navegavel (HTML interativo) GET /api/openapi.json Spec OpenAPI 3.0 em JSON GET /api/openapi.yaml Spec OpenAPI 3.0 em YAML Casos de uso: - Desenvolvedores: abrir /api/docs no browser para explorar e testar - Postman/Insomnia: importar /api/openapi.json - Geradores de SDK (openapi-generator, swagger-codegen): consumir spec - Sistemas externos: descobrir capacidades dinamicamente OpenAPI completo agora cobre 12 endpoints (era 8): + /api/info + /api/metadata + /api/bancos + include_data=true documentado em /api/boleto e /api/boleto/multi Novos schemas: - InfoResponse, MetadataResponse, BancoInfo - BoletoWithFileResponse (com content_base64) - MultiBoletoResponse, BoletoMetadata /api/metadata agora inclui secao 'documentation' apontando para os 3 endpoints de docs. 172 testes passando (4 novos em spec/integration/docs_endpoint_spec.rb).
[FEAT] Swagger UI + OpenAPI JSON/YAML servidos pela API
…ate=prawn Adiciona parametro opcional template=prawn nos endpoints GET /api/boleto e POST /api/boleto/multi. Usa PrawnBolepix da brcobranca v12.7.1 para gerar PDF sem depender de GhostScript. Uso: GET /api/boleto?bank=banco_brasil&type=pdf&data=...&template=prawn POST /api/boleto/multi (form: template=prawn) Comparacao: RGhost (padrao): ~303KB PDF, requer GhostScript Prawn: ~24KB PDF, Ruby puro, sem dependencia externa Gems adicionadas no Gemfile: prawn, prawn-table, barby, rqrcode, chunky_png, matrix BoletoService: generate() e generate_multi() aceitam template: 'prawn' Metodos privados generate_prawn() e generate_prawn_lote() boleto.extend(PrawnBolepix) para usar template alternativo Compatibilidade total: template=rghost (padrao) continua funcionando identico ao comportamento anterior. 172 testes passando.
Swagger UI, Prawn template, brcobranca v12.7.1, Dockerfile ruby:3.3
## Remessa PIX Parametro pix=true no endpoint POST /api/remessa gera arquivo CNAB com segmento PIX incorporado (boleto hibrido). Usa classes PIX da brcobranca v12.7.1: CNAB 400: BradescoPix, ItauPix, BancoC6Pix, SantanderPix CNAB 240: SicoobPix, CaixaPix, BancoBrasilPix Uso: POST /api/remessa?bank=bradesco&type=cnab400&pix=true (arquivo JSON com dados da remessa no body) RemessaService.generate() aceita pix: true, que resolve a classe PIX do banco automaticamente via remessa_pix_class(). Retorna erro claro se o banco nao suporta PIX no formato solicitado. ## Sicoob Layout 810 Ja funcional: envie versao_layout_arquivo_opcao: "810" no payload da remessa Sicoob CNAB240. O campo passa pelo transform_keys e chega ao Brcobranca::Remessa::Cnab240::Sicoob que seta o layout. Nenhuma alteracao de codigo necessaria — apenas documentacao. ROADMAP.md atualizado com ambos os itens concluidos. 172 testes passando.
- docs/api/pix.md: reescrito com tabela unificada de suporte PIX (boleto, remessa CNAB400, remessa CNAB240), secao de Remessa PIX com exemplo de uso, simplificado e mais direto - docs/api/troubleshooting.md: secoes 5 (Remessa PIX banco nao suportado) e 6 (Sicoob Layout 810) adicionadas - docs/openapi.yaml: parametro pix=true documentado no endpoint POST /api/remessa com descricao dos bancos suportados por formato - docs/ROADMAP.md: itens 2 (Remessa PIX) e 3 (Sicoob 810) marcados como concluidos
…pos PIX brcobranca v12.8.0 adiciona 3 campos opcionais no boleto: chave_pix - Chave PIX (CPF, CNPJ, email, telefone, aleatoria) tipo_chave_pix - Tipo da chave (cpf, cnpj, email, telefone, aleatoria) txid - Codigo de identificacao da transacao PIX dados_pix agora retorna tambem qrcode_disponivel (boolean). Documentacao atualizada: - brcobranca-fork.md: entrada v12.8.0 no historico - ARCHITECTURE.md: referencia v12.8.0 - pix.md: secao 'Novos campos PIX (v12.8.0)' com tabela - openapi.yaml: campos chave_pix, tipo_chave_pix, txid no BoletoData 172 testes passando.
Adiciona Dockerfile.prawn que gera imagem Docker SEM ghostscript, usando apenas Prawn (Ruby puro) para geração de PDF. Diferenças vs Dockerfile padrão: - Sem pacotes ghostscript e ghostscript-fonts (~50MB menor) - Env var BOLETO_TEMPLATE=prawn (default da imagem) - Mesma funcionalidade, apenas PDF (sem JPG/PNG/TIF) BoletoService.generate() e generate_multi() agora usam ENV['BOLETO_TEMPLATE'] como default ao inves de 'rghost' hardcoded. O parametro template= no endpoint ainda sobrescreve. docker-compose.yml: servico boleto_api_prawn adicionado (profile: prawn). Uso: # Build padrão (com GhostScript) docker build -t boleto-api . # Build Prawn (sem GhostScript, ~70MB menor) docker build -f Dockerfile.prawn -t boleto-api-prawn . # Docker Compose docker compose --profile prawn up boleto_api_prawn ROADMAP item 4 concluído. 172 testes passando.
Remessa PIX (pix=true) e Sicoob Layout 810
Reescrito ROADMAP.md com: ## Estado atual - 18 bancos, 15 endpoints, 172 testes, brcobranca v12.8.0 - Listagem completa de features concluidas (v1.0 a v1.3) ## Proximo release v1.4.0 Alta prioridade: 1. Validacao de payload por banco (campos obrigatorios, carteiras) 2. Suporte a CNAB 444 (Itau) — gem ja suporta 3. Cache de /api/bancos Media prioridade: 4. Cliente Python v1.3.0 (novos endpoints) 5. Rate limiting (Rack::Attack) 6. Testes de integracao Remessa PIX Baixa prioridade: 7. Webhook de notificacao de pagamento 8. Novos bancos (Inter, Original, PagBank) — requer gem 9. Migrar para Prawn como padrao ## Melhorias tecnicas - Ruby 3.4, Rubocop, SimpleCov, gzip, CORS ## Comparacao com upstream Fork @Maxwbh esta a frente em 14 features vs upstream akretion (brcobranca 12.8.0 vs 12.0.0, 18 vs 16 bancos, 172 vs ~30 testes).
README completamente reescrito com foco em clareza e impacto: - Header centralizado com metricas principais (18 bancos, 15 endpoints, 172 testes, Swagger UI) e links diretos (docs, bugs, roadmap) - Badges alinhados (version, license, ruby, brcobranca) - Quick Start em 4 linhas com link para Swagger UI - Tabela de endpoints concisa (8 principais, link para os 15) - Tabela de bancos com colunas Boleto/CNAB400/CNAB240/PIX - Exemplo Python unico e completo (include_data=true, 1 chamada) - Tabela de funcionalidades (boletos, CNAB, PIX, OFX, Prawn, Swagger) - Deploy simplificado (Docker padrao vs Prawn, Render 1-click) - Tabela de tecnologias limpa - Tabela de documentacao com links diretos - Removidos: secoes duplicadas, lista extensa de features, estrutura de diretorios (movida para ARCHITECTURE.md), instrucoes de versionamento (movidas para scripts/README.md)
Merge
Reescrito com foco em marketing e adocao: - Header visual com badges e metricas de impacto - Secao "Por que usar?" com tabela problema/solucao - Secao "Diferenciais" destacando vantagens competitivas - Quick Start com exemplo curl completo (1 chamada) - Tabela de bancos com formatos CNAB especificos - Exemplo Python realista (gerar boleto + parsear OFX) - Deploy em tabela (Docker, Prawn, Compose, Render, local) - Endpoints em tabela com expandable (8 principais + 15 total) - Links para Swagger UI demo ao vivo - CTA para estrela no final - Secao Contributing com 3 comandos
README profissional + Roadmap v1.4
Excluido: - docs/fields/examples.md (471 linhas) — conteudo duplicado com docs/fields/all-banks.md (exemplos por banco) e examples/python/README.md (scripts executaveis) Corrigido: - CONTRIBUTING.md: 'main' → 'master' (5 ocorrencias), removida secao de changelog exemplo obsoleto (versoes 1.0/1.1) - docs/ARCHITECTURE.md: adicionado docs_endpoint.rb na estrutura, removidas versoes de inline nos nomes de services - docs/README.md: link para examples.md removido - docs/development/brcobranca-fork.md: link para examples.md removido - docs/fields/README.md: link atualizado para examples/python/ 172 testes passando.
Consolidar docs — excluir duplicados, corrigir refs
## Cache de /api/bancos BankInfoService.all agora cacheia resultado em @cached (dados nao mudam em runtime). Metodo reset_cache! disponivel para testes. ## Compressao gzip Rack::Deflater adicionado no config.ru. Comprime responses JSON automaticamente (~70% reducao). Transparente para o cliente (requer header Accept-Encoding: gzip). ## SimpleCov Gem simplecov adicionada no grupo test. Ativado via COVERAGE=true: COVERAGE=true bundle exec rspec Gera relatorio HTML em coverage/. Cobertura atual: 79.82%. Grupos: Services, Endpoints, Middleware, Config. Minimo configurado: 70%. coverage/ adicionado ao .gitignore. 172 testes passando.
## Cliente Python v1.3.0 Novos metodos no BoletoClient: - info() — GET /api/info - metadata() — GET /api/metadata - bancos() — GET /api/bancos - generate_boleto_with_data() — include_data=true (PDF+dados em 1 chamada) - generate_multiple_boletos_with_data() — multi com include_data - generate_remessa(pix=True) — remessa CNAB com segmento PIX - process_retorno() — processar arquivo de retorno CNAB - parse_ofx() — parsear extrato OFX Metodos existentes atualizados: - generate_boleto() aceita template='prawn' - generate_multiple_boletos() aceita template='prawn' Versao bumped: 1.1.0 → 1.3.0 44 testes Python passando. ## Testes de integracao Remessa PIX spec/integration/remessa_pix_spec.rb com 4 testes: - Banco que nao suporta PIX no formato → 400 - Banco inexistente para PIX → 400 - Remessa normal (sem pix) valida payload - Formato CNAB invalido para PIX → 400 176 testes Ruby passando (antes 172).
Cache /api/bancos, gzip, SimpleCov
Todos os itens do roadmap v1.4 foram implementados e mergeados: - #3 Cache /api/bancos (PR #43) - #4 Cliente Python v1.3.0 (PR #43) - #6 Testes Remessa PIX (PR #43) - gzip, SimpleCov (PR #43) - Remessa PIX, Sicoob 810 (PR #39) - Template Prawn, Dockerfile.prawn (PR #38) - Swagger UI, OpenAPI (PR #33) Itens fora do escopo removidos do roadmap. Metricas atualizadas: 220 testes, cobertura 79.82%.
ROADMAP atualizado — todos os itens concluidos
## Banco C6 (spec/integration/banco_c6_spec.rb) — 7 testes - Carteira 10: validacao, dados (nosso_numero), PDF rghost, PDF prawn, include_data - Carteira 20: validacao, dados - Carteira invalida (30): rejeicao ## PIX no Boleto (spec/integration/pix_boleto_spec.rb) — 21 testes - 7 bancos (BB, Sicoob, Bradesco, Itau, Caixa, Santander, C6) x 3 cenarios: - Validacao com campos PIX (emv, chave_pix, tipo_chave_pix, txid) - Dados com PIX em /boleto/data - PDF com PIX via template prawn ## CNAB Remessa (spec/integration/cnab_completo_spec.rb) — 13 testes - C6 CNAB 400: normal, com PIX, rejeicao CNAB 240 - Remessa PIX CNAB 400: Bradesco, Itau, C6, Santander - Remessa PIX CNAB 240: Sicoob, Caixa, BB - Validacao de payload: Array como root, sem pagamentos ## Fix: NoMethodError na remessa RemessaService.generate_with_factory agora captura NoMethodError (campo nao suportado pelo banco) e retorna 400 ao inves de 500. Ex: 'convenio' nao existe em Cnab400::BancoC6. 217 testes passando (antes 176).
- README.md: 172 → 217 testes Ruby - ROADMAP.md: 176+44=220 → 217+44=261 testes - openapi.yaml: exemplo brcobranca 12.7.1 → 12.8.0
Testes C6 carteiras, PIX 7 bancos, CNAB remessa + fix NoMethodError
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Criado /health
Para Retornar que o serviço esta ativo e no ar;