diff --git a/app/jobs/send_reply_job.rb b/app/jobs/send_reply_job.rb index 654578320..0aba9f7f1 100644 --- a/app/jobs/send_reply_job.rb +++ b/app/jobs/send_reply_job.rb @@ -1,30 +1,29 @@ class SendReplyJob < ApplicationJob queue_as :high + CHANNEL_SERVICES = { + 'Channel::TwitterProfile' => ::Twitter::SendOnTwitterService, + 'Channel::TwilioSms' => ::Twilio::SendOnTwilioService, + 'Channel::Line' => ::Line::SendOnLineService, + 'Channel::Telegram' => ::Telegram::SendOnTelegramService, + 'Channel::Whatsapp' => ::Whatsapp::SendOnWhatsappService, + 'Channel::Sms' => ::Sms::SendOnSmsService, + 'Channel::Instagram' => ::Instagram::SendOnInstagramService, + 'Channel::Email' => ::Email::SendOnEmailService, + 'Channel::WebWidget' => ::Messages::SendEmailNotificationService, + 'Channel::Api' => ::Messages::SendEmailNotificationService + }.freeze + def perform(message_id) message = Message.find(message_id) - conversation = message.conversation - channel_name = conversation.inbox.channel.class.to_s + channel_name = message.conversation.inbox.channel.class.to_s - services = { - 'Channel::TwitterProfile' => ::Twitter::SendOnTwitterService, - 'Channel::TwilioSms' => ::Twilio::SendOnTwilioService, - 'Channel::Line' => ::Line::SendOnLineService, - 'Channel::Telegram' => ::Telegram::SendOnTelegramService, - 'Channel::Whatsapp' => ::Whatsapp::SendOnWhatsappService, - 'Channel::Sms' => ::Sms::SendOnSmsService, - 'Channel::Instagram' => ::Instagram::SendOnInstagramService, - 'Channel::Email' => ::Email::SendOnEmailService, - 'Channel::WebWidget' => ::Messages::SendEmailNotificationService, - 'Channel::Api' => ::Messages::SendEmailNotificationService - } + return send_on_facebook_page(message) if channel_name == 'Channel::FacebookPage' - case channel_name - when 'Channel::FacebookPage' - send_on_facebook_page(message) - else - services[channel_name].new(message: message).perform if services[channel_name].present? - end + service_class = CHANNEL_SERVICES[channel_name] + return unless service_class + + service_class.new(message: message).perform end private