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
55
56
57
58
59
60
61
62
63
64
65
|
# File 'lib/action_smser/delivery_methods/smstrade.rb', line 22
def self.deliver(sms)
options = sms.delivery_options[:smstrade] || {}
options = options.dup
options[:server] = 'gateway.smstrade.de'
options[:use_ssl] = false
options[:status_report_req] ||= sms.delivery_options[:save_delivery_reports]
sms.delivery_info = []
formatted_numbers = sms.to_numbers_array.map { |to| ["00", to].join }
formatted_numbers.each do |to|
deliver_path = self.deliver_path(sms, to, options)
response = self.deliver_http_request(sms, options, deliver_path)
ActionSmser::Logger.info "Smstrade delivery http ||| #{deliver_path} ||| #{response.inspect}"
ActionSmser::Logger.info response.body if !response.blank?
sms.delivery_info.push(response)
result = response.body.split("\n")
result = {"response-code" => result[0], "message-id" => result[1], "cost" => result[2], "message-count" => result[3]}
if ERROR_CODES[result["response-code"]].nil?
status = "UNKNOWN_ERROR"
else
status = ERROR_CODES[result["response-code"]]
end
if sms.delivery_options[:save_delivery_reports]
dr = ActionSmser::DeliveryReport.build_from_sms(sms, to, result["message-id"])
if status != "OK"
dr.status = status
dr.add_log "smstrade_error_code: #{result["response-code"]}"
end
dr.save
sms.delivery_reports.push(dr)
end
end
sms.delivery_options[:save_delivery_reports] ? sms.delivery_reports : sms.delivery_info
end
|