chatwoot-develop/app/services/whatsapp/incoming_message_zapi_service.rb

24 lines
940 B
Ruby
Executable File

class Whatsapp::IncomingMessageZapiService < Whatsapp::IncomingMessageBaseService
include Events::Types
include Whatsapp::ZapiHandlers::ConnectedCallback
include Whatsapp::ZapiHandlers::DisconnectedCallback
include Whatsapp::ZapiHandlers::ReceivedCallback
include Whatsapp::ZapiHandlers::DeliveryCallback
include Whatsapp::ZapiHandlers::MessageStatusCallback
def perform
return if processed_params[:type].blank?
Rails.configuration.dispatcher.dispatch(PROVIDER_EVENT_RECEIVED, Time.zone.now, inbox: inbox, event: processed_params[:type],
payload: processed_params)
event_prefix = processed_params[:type].underscore
method_name = "process_#{event_prefix}"
if respond_to?(method_name, true)
send(method_name)
else
Rails.logger.warn "Z-API unsupported event: #{processed_params.inspect}"
end
end
end