From ec6cfc317d7d09c239587909b477c702d4173e65 Mon Sep 17 00:00:00 2001 From: Rodrigo Borba Date: Sat, 28 Feb 2026 17:47:33 -0300 Subject: [PATCH] =?UTF-8?q?fix(whatsapp):=20restaura=20attachment=5Fparams?= =?UTF-8?q?=20no=20PayloadParser=20para=20m=C3=ADdia=20funcionar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit O refactoring c48047ba5 removeu attachment_params acidentalmente sem mover para outro lugar, quebrando o download de áudio, imagem, vídeo e documento. O método é chamado por incoming_message_wuzapi_service.rb#attach_files. Co-Authored-By: Claude Sonnet 4.6 --- .../providers/wuzapi/payload_parser.rb | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/app/services/whatsapp/providers/wuzapi/payload_parser.rb b/app/services/whatsapp/providers/wuzapi/payload_parser.rb index 680a0bf46..a3ef884ab 100644 --- a/app/services/whatsapp/providers/wuzapi/payload_parser.rb +++ b/app/services/whatsapp/providers/wuzapi/payload_parser.rb @@ -105,6 +105,29 @@ class Whatsapp::Providers::Wuzapi::PayloadParser params.dig(:event, :Info, :IsGroup) || params.dig(:event, :IsGroup) end + def attachment_params + media_key = case message_type + when :image then :imageMessage + when :audio then :audioMessage + when :video then :videoMessage + when :document then :documentMessage + when :sticker then :stickerMessage + end + return nil unless media_key + + msg = unwrap_ephemeral_message(params.dig(:event, :Message)) + data = msg[media_key] + return nil unless data.is_a?(Hash) + + { + external_url: data['URL'], + file_name: data['fileName'] || "file_#{external_id}", + mimetype: data['mimetype'], + thumbnail: data['JPEGThumbnail'], + media_key: data['mediaKey'] + } + end + def text_content # Direct text field (some WuzAPI versions) return params.dig(:event, :Text) if params.dig(:event, :Text).present?