Move code for sending the messages from model to MessageNotifier
This commit is contained in:
parent
add281c738
commit
3f7efbc4b9
2 changed files with 13 additions and 18 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue