fix(whatsapp): adiciona método text_content ao PayloadParser e ignora UndecryptableMessage
Corrige NoMethodError que impedia todas as mensagens de texto de chegarem ao front. O método text_content era chamado mas não existia na classe. Também adiciona UndecryptableMessage à lista de eventos ignorados para evitar tentativa de processar mensagens sem conteúdo descriptografável. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
c48047ba50
commit
e6e4c36525
@ -105,6 +105,28 @@ class Whatsapp::Providers::Wuzapi::PayloadParser
|
||||
params.dig(:event, :Info, :IsGroup) || params.dig(:event, :IsGroup)
|
||||
end
|
||||
|
||||
def text_content
|
||||
# Direct text field (some WuzAPI versions)
|
||||
return params.dig(:event, :Text) if params.dig(:event, :Text).present?
|
||||
|
||||
msg = unwrap_ephemeral_message(params.dig(:event, :Message))
|
||||
return nil unless msg.is_a?(Hash)
|
||||
|
||||
# Standard conversation text
|
||||
return msg[:conversation] if msg[:conversation].present?
|
||||
|
||||
# Extended text message (links, mentions, formatting)
|
||||
return msg.dig(:extendedTextMessage, :text) if msg.dig(:extendedTextMessage, :text).present?
|
||||
|
||||
# Media captions
|
||||
%i[imageMessage videoMessage documentMessage audioMessage stickerMessage].each do |key|
|
||||
caption = msg.dig(key, :caption)
|
||||
return caption if caption.present?
|
||||
end
|
||||
|
||||
nil
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def webhook_event_type
|
||||
@ -128,6 +150,7 @@ class Whatsapp::Providers::Wuzapi::PayloadParser
|
||||
Presence
|
||||
PresenceUpdate
|
||||
Ack
|
||||
UndecryptableMessage
|
||||
]
|
||||
|
||||
ignorable.include?(webhook_event_type)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user