Class: MessageRequest

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/message_request.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.per_pageObject



28
29
30
# File 'app/models/message_request.rb', line 28

def self.per_page
  10
end

.send_messagesObject



67
68
69
70
71
72
73
# File 'app/models/message_request.rb', line 67

def self.send_messages
  count = MessageRequest.not_sent.size
  MessageRequest.not_sent.each do |request|
    request.start_sending_message
  end
  logger.info "#{Time.zone.now} sent #{count} messages!"
end

Instance Method Details

#save_message_body(options = {}) ⇒ Object



59
60
61
62
63
64
65
# File 'app/models/message_request.rb', line 59

def save_message_body(options = {})
  options = {
    :receiver => self.receiver,
    :locale => self.receiver.locale
  }.merge(options)
  self.update_attributes!({:body => self.message_template.embed_body(options)})
end

#send_messageObject



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'app/models/message_request.rb', line 37

def send_message
  message = nil
  MessageRequest.transaction do
    if self.body
      message = Message.create!(:sender => self.sender, :recipient => self.receiver.username, :subject => self.subject, :body => self.body)
    else
      raise 'body is empty!'
    end
    self.update_attributes({:sent_at => Time.zone.now})
    if ['reservation_expired_for_patron', 'reservation_expired_for_patron'].include?(self.message_template.status)
      self.receiver.reserves.each do |reserve|
        reserve.update_attribute(:expiration_notice_to_patron, true)
      end
    end
  end
  return message
end

#start_sending_messageObject



32
33
34
35
# File 'app/models/message_request.rb', line 32

def start_sending_message
  sm_start!
  sm_send_message!
end

#subjectObject



55
56
57
# File 'app/models/message_request.rb', line 55

def subject
  self.message_template.title
end