From 3f7efbc4b9bc4db1fadc57ced2814f61737fd4af Mon Sep 17 00:00:00 2001 From: Patrick Gansterer Date: Fri, 18 Aug 2017 00:45:17 +0200 Subject: [PATCH] Move code for sending the messages from model to MessageNotifier --- plugins/messages/app/models/message.rb | 17 ----------------- .../messages/app/workers/message_notifier.rb | 14 +++++++++++++- 2 files changed, 13 insertions(+), 18 deletions(-) diff --git a/plugins/messages/app/models/message.rb b/plugins/messages/app/models/message.rb index 12f904c9..156217a2 100644 --- a/plugins/messages/app/models/message.rb +++ b/plugins/messages/app/models/message.rb @@ -28,10 +28,6 @@ class Message < ActiveRecord::Base before_create :create_salt before_validation :clean_up_recipient_ids, :on => :create - def self.deliver(message_id) - find(message_id).deliver - end - def clean_up_recipient_ids add_recipients Group.find(group_id).users unless group_id.blank? self.recipients_ids = recipients_ids.uniq.reject { |id| id.blank? } unless recipients_ids.nil? @@ -91,19 +87,6 @@ class Message < ActiveRecord::Base Message.where(reply_to: self.id).order(:created_at).last end - def deliver - for user in recipients - if user.receive_email? - begin - MessagesMailer.foodsoft_message(self, user).deliver - rescue - Rails.logger.warn "Deliver failed for user \##{user.id}: #{user.email}" - end - end - end - update_attribute(:email_state, 1) - end - def is_readable_for?(user) !private || sender == user || recipients_ids.include?(user.id) end diff --git a/plugins/messages/app/workers/message_notifier.rb b/plugins/messages/app/workers/message_notifier.rb index 6353fc73..571c0ee1 100644 --- a/plugins/messages/app/workers/message_notifier.rb +++ b/plugins/messages/app/workers/message_notifier.rb @@ -3,6 +3,18 @@ class MessageNotifier < UserNotifier def self.message_deliver(args) message_id = args.first - Message.find(message_id).deliver + message = Message.find(message_id) + + message.recipients.each do |recipient| + if recipient.receive_email? + begin + MessagesMailer.foodsoft_message(message, recipient).deliver + rescue + Rails.logger.warn "Deliver failed for user \##{recipient.id}: #{recipient.email}" + end + end + end + + message.update_attribute(:email_state, 1) end end