Skip to content

Commit

Permalink
delivery_report fies to delayed_job
Browse files Browse the repository at this point in the history
  • Loading branch information
holli committed Feb 19, 2012
1 parent 063e2a9 commit a69b273
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 8 deletions.
4 changes: 4 additions & 0 deletions lib/action_smser/base.rb
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,10 @@ def message_real_cropped(message, max_length = 159)

# Delivery methods can use this to save data for debugging, e.g. http responses etc
attr_accessor :delivery_info
attr_accessor :delivery_reports
def delivery_reports
@delivery_reports ||= []
end

# Called from class.method_missing with own_sms_message when you call OwnMailer.own_sms_message
def initialize(method_name = 'no_name_given', *args)
Expand Down
2 changes: 1 addition & 1 deletion lib/action_smser/delivery_methods/delayed_job.rb
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ class SmsDeliverJob < ActionSmser::Base

def initialize(sms, to)
[:body, :from, :sms_type, :re_delivery_of_delivery_report_id, :ttl, :delivery_options].each do |attr|
self.send("#{attr}=", sms.send(attr))
self.send("#{attr}=", sms.send(attr).dup) unless sms.send(attr).nil?
end
self.send("to=", to)
@valid = true
Expand Down
5 changes: 2 additions & 3 deletions lib/action_smser/delivery_methods/nexmo.rb
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ def self.deliver(sms)
options[:status_report_req] ||= sms.delivery_options[:save_delivery_reports]

sms.delivery_info = []
delivery_reports = []

sms.to_numbers_array.each do |to|
deliver_path = self.deliver_path(sms, to, options)
Expand All @@ -38,11 +37,11 @@ def self.deliver(sms)
dr.log += "nexmo_error: #{result["error-text"]}"
end
dr.save
delivery_reports << dr
sms.delivery_reports.push(dr)
end
end

sms.delivery_options[:save_delivery_reports] ? delivery_reports : sms.delivery_info
sms.delivery_options[:save_delivery_reports] ? sms.delivery_reports : sms.delivery_info
end

def self.deliver_path(sms, to, options)
Expand Down
5 changes: 2 additions & 3 deletions lib/action_smser/delivery_methods/simple_http.rb
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,10 @@ def self.deliver(sms, options = nil)

results = response.body.split("\n")
if sms.delivery_options[:save_delivery_reports]
delivery_reports = []
sms.to_numbers_array.each_with_index do |to, i|
delivery_reports << ActionSmser::DeliveryReport.create_from_sms(sms, to, results[i].to_s.strip)
sms.delivery_reports.push(ActionSmser::DeliveryReport.create_from_sms(sms, to, results[i].to_s.strip))
end
return delivery_reports
return sms.delivery_reports
else
return results
end
Expand Down
6 changes: 5 additions & 1 deletion test/unit/action_smser/delivery_methods/delayed_job_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,14 @@ def basic_sms(to, from, body)
test "test that serializing is ok" do
smsdj = ActionSmser::DeliveryMethods::DelayedJob::SmsDeliverJob.new(@sms, @sms.to_numbers_array.first)

[:body, :from, :sms_type, :re_delivery_of_delivery_report_id, :ttl, :delivery_options, :delivery_info].each do |var|
[:body, :from, :sms_type, :re_delivery_of_delivery_report_id, :ttl, :delivery_info].each do |var|
assert_equal smsdj.send(var), @sms.send(var)
end

assert smsdj.body.object_id != @sms.body.object_id, "It should make copy of all values, not use the same objects."

assert_equal smsdj.delivery_options, @sms.delivery_options.merge(:delivery_method => @sms.delivery_options[:delayed_job][:delivery_method])

assert_equal smsdj.to, @sms.to_numbers_array.first

assert_equal :nexmo, smsdj.delivery_options[:delivery_method], "Should set the deliverymethod to nexmo"
Expand Down

0 comments on commit a69b273

Please sign in to comment.