Skip to content

fix: loga o erro real dos services de envio (em vez de descartar silenciosamente) - #4

Open
FranciscoGoulartJr wants to merge 1 commit into
Z-API:masterfrom
FranciscoGoulartJr:fix/log-real-error-on-send-failure
Open

fix: loga o erro real dos services de envio (em vez de descartar silenciosamente)#4
FranciscoGoulartJr wants to merge 1 commit into
Z-API:masterfrom
FranciscoGoulartJr:fix/log-real-error-on-send-failure

Conversation

@FranciscoGoulartJr

Copy link
Copy Markdown

O que mudou

Os 4 services de envio (send-image.js, send-audio.js, send-video.js, send-message.js) tinham catch (e) { spinner.fail('...') } sem usar e em nenhum lugar — qualquer erro real da chamada à API (400, 401, timeout de rede) virava só uma mensagem genérica no spinner, sem nenhum detalhe do motivo. Adicionei console.error(e.response?.data || e.message) nos 4, aproveitando o shape padrão de erro do axios.

De quebra, encontrei um bug de escopo em send-message.js: const spinner era declarado dentro do bloco try {}, mas o catch {} tentava usar spinner.fail(...) — como const é block-scoped, isso lança ReferenceError: spinner is not defined toda vez que a chamada falha, mascarando completamente o erro original. Corrigi movendo a declaração pra fora do try, no mesmo padrão já usado nos outros 3 services. Aproveitei para corrigir também o texto do spinner nesse arquivo ("Enviando áudio para a API""Enviando mensagem para a API", resquício de copy-paste de send-audio.js).

Por que

Achei isso estudando os repositórios da org pra melhorar nossa própria integração (somos usuários da Z-API). Como o padrão se repetia idêntico nos 4 arquivos e o bug de escopo é objetivamente incorreto (não é preferência de estilo), pareceu valer a pena mandar de volta pra quem mais usa esse repo como referência de integração.

Teste

Revisão manual do diff — mudança mínima e isolada, sem alterar o fluxo de sucesso em nenhum dos 4 arquivos.

…ces de envio

Os 4 services de envio (send-image, send-audio, send-video, send-message)
tinham catch(e) que nunca usava "e" - qualquer falha na chamada a Z-API
(400, 401, rede) virava so um spinner.fail() generico, sem nenhum detalhe
do motivo real. Adiciona console.error(e.response?.data || e.message) nos
4, o mesmo padrao que axios ja expoe no objeto de erro.

De quebra, send-message.js tinha um bug de escopo: "const spinner" era
declarado dentro do try{}, entao o catch{} que tentava chamar
spinner.fail(...) lançava "spinner is not defined" - mascarando o erro
original com um ReferenceError toda vez que a chamada falhava. Movido
para fora do try (mesmo padrao ja usado nos outros 3 services). Tambem
corrigido o texto do spinner ("Enviando áudio para a API" -> "Enviando
mensagem para a API", copy-paste de send-audio.js).
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.

1 participant