Class: ActionSmser::DeliveryReport

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

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.build_from_sms(sms, to, msg_id) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
# File 'app/models/action_smser/delivery_report.rb', line 8

def self.build_from_sms(sms, to, msg_id)
  @delivery_report = self.new

  [:from, :body, :sms_type, :re_delivery_of_delivery_report_id].each do |var|
    @delivery_report.send("#{var}=", sms.send(var))
  end
  @delivery_report.to = to
  @delivery_report.msg_id = msg_id
  @delivery_report.status = "LOCAL_SENT"
  @delivery_report.gateway = sms.delivery_options[:delivery_method].to_s
  @delivery_report
end

.create_from_sms(sms, to, sms_id) ⇒ Object



21
22
23
24
25
# File 'app/models/action_smser/delivery_report.rb', line 21

def self.create_from_sms(sms, to, sms_id)
  @delivery_report = self.build_from_sms(sms, to, sms_id)
  @delivery_report.save
  @delivery_report
end

Instance Method Details

#add_log(str) ⇒ Object



33
34
35
36
# File 'app/models/action_smser/delivery_report.rb', line 33

def add_log(str)
  self.log = "" if self.log.nil?
  self.log += "#{str}\n"
end

#re_deliver(gateway = :default) ⇒ Object



47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'app/models/action_smser/delivery_report.rb', line 47

def re_deliver(gateway = :default)
  ActionSmser::Logger.info("Re_delivering: #{self.inspect}")
  self.update_attribute(:re_delivered, true)
  
  sms_new = self.to_sms
  sms_new.sms_type = "#{sms_new.sms_type}.re_delivery"
  sms_new.re_delivery_of_delivery_report_id = self.id

  unless gateway == :default
    sms_new.delivery_options[:delivery_method] = gateway
  end

  [sms_new, sms_new.deliver]
end

#status=(stat, skip_log = false) ⇒ Object



27
28
29
30
31
# File 'app/models/action_smser/delivery_report.rb', line 27

def status=(stat, skip_log = false)
  self[:status] = stat
  self.status_updated_at = Time.now
  add_log("#{Time.now.to_s(:db)}: #{stat}") unless skip_log
end

#to_smsObject

Copy this delivery_report information to a new sms object



39
40
41
42
43
44
45
# File 'app/models/action_smser/delivery_report.rb', line 39

def to_sms
  sms_new = ActionSmser::Base.new()
  [:sms_type, :to, :from, :body, :sms_type].each do |var|
    sms_new.send("#{var}=", self.send(var))
  end
  sms_new
end