Class: Smsinabox::DeliveryReport

Inherits:
Object
  • Object
show all
Defined in:
lib/smsinabox/delivery_report.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeDeliveryReport

Returns a new instance of DeliveryReport.



40
41
42
43
44
45
46
# File 'lib/smsinabox/delivery_report.rb', line 40

def initialize
  @fail_count = 0
  @success_count = 0

  @failures = []
  @successes = []
end

Instance Attribute Details

#creditsObject

Returns the value of attribute credits.



38
39
40
# File 'lib/smsinabox/delivery_report.rb', line 38

def credits
  @credits
end

#event_idObject

Returns the value of attribute event_id.



38
39
40
# File 'lib/smsinabox/delivery_report.rb', line 38

def event_id
  @event_id
end

#fail_countObject

Returns the value of attribute fail_count.



38
39
40
# File 'lib/smsinabox/delivery_report.rb', line 38

def fail_count
  @fail_count
end

#failuresObject

Returns the value of attribute failures.



38
39
40
# File 'lib/smsinabox/delivery_report.rb', line 38

def failures
  @failures
end

#success_countObject

Returns the value of attribute success_count.



38
39
40
# File 'lib/smsinabox/delivery_report.rb', line 38

def success_count
  @success_count
end

#successesObject

Returns the value of attribute successes.



38
39
40
# File 'lib/smsinabox/delivery_report.rb', line 38

def successes
  @successes
end

Class Method Details

.from_response(nokogiri_xml) ⇒ Object

Generate a delivery report from a nokogiri response



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/smsinabox/delivery_report.rb', line 7

def from_response( nokogiri_xml )
  response = new

  # basic send_info stuff
  response.event_id = nokogiri_xml.xpath('/api_result/send_info/eventid/text()').to_s.to_i
  response.credits = nokogiri_xml.xpath('/api_result/send_info/credits/text()').to_s.to_i
  response.fail_count = nokogiri_xml.xpath('/api_result/send_info/msgs_failed/text()').to_s.to_i
  response.success_count = nokogiri_xml.xpath('/api_result/send_info/msgs_success/text()').to_s.to_i

  # failures
  nokogiri_xml.xpath('/api_result/entries_failed').each do |node|
    response.failures << {
      :numto => node.xpath('./numto/text()').to_s,
      :customerid => node.xpath('./customerid/text()').to_s,
      :reason => node.xpath('./reason/text()').to_s
    }
  end

  # successes
  nokogiri_xml.xpath('/api_result/entries_success').each do |node|
    response.successes << {
      :numto => node.xpath('./numto/text()').to_s,
      :customerid => node.xpath('./customerid/text()').to_s
    }
  end

  response
end