Class: Message

Inherits:
Notification show all
Defined in:
app/models/message.rb

Instance Attribute Summary

Attributes inherited from Notification

#object, #recipients

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Notification

#clean, #is_unread?, notify_all, #receipt_for

Class Method Details

.on_deliver(callback_method) ⇒ Object

Sets the on deliver callback method.



13
14
15
# File 'app/models/message.rb', line 13

def on_deliver(callback_method)
  self.on_deliver_callback = callback_method
end

Instance Method Details

#deliver(reply = false, should_clean = true) ⇒ Object

Delivers a Message. USE NOT RECOMENDED. Use Mailboxer::Models::Message.send_message instead.



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'app/models/message.rb', line 20

def deliver(reply = false, should_clean = true)
  self.clean if should_clean
  temp_receipts = Array.new
  #Receiver receipts
  self.recipients.each do |r|
    msg_receipt = Receipt.new
    msg_receipt.notification = self
    msg_receipt.read = false
    msg_receipt.receiver = r
    msg_receipt.mailbox_type = "inbox"
    temp_receipts << msg_receipt
    #Should send an email?
    if r.should_email? self
      MessageMailer.send_email(self,r).deliver
    end
  end
  #Sender receipt
  sender_receipt = Receipt.new
  sender_receipt.notification = self
  sender_receipt.read = true
  sender_receipt.receiver = self.sender
  sender_receipt.mailbox_type = "sentbox"
  temp_receipts << sender_receipt

  temp_receipts.each(&:valid?)
  if temp_receipts.all? { |t| t.errors.empty? }
    temp_receipts.each(&:save!) 	#Save receipts
    if reply
    self.conversation.update_attribute(:updated_at, Time.now)
    end
  self.recipients=nil
  self.on_deliver_callback.call(self) unless self.on_deliver_callback.nil?
  end
  return sender_receipt
end