Class: Mblox::SmsResponse

Inherits:
Object
  • Object
show all
Defined in:
lib/mblox/sms_response.rb

Defined Under Namespace

Classes: Result

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(xml) ⇒ SmsResponse

Returns a new instance of SmsResponse.



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/mblox/sms_response.rb', line 35

def initialize(xml)
  data = Mblox.from_xml(xml)['NotificationRequestResult']

  raise MissingExpectedXmlContentError, "Xml should have contained a 'NotificationRequestResult' node, but was #{xml}" if data.blank?
  header = data['NotificationResultHeader']
  raise MissingExpectedXmlContentError, "Xml should have contained a 'NotificationRequestResult' -> 'NotificationResultHeader' node, but was #{xml}" if header.blank?
  @request = Result.new(header['RequestResultCode'], header['RequestResultText'])
  @request = nil unless @request.valid?

  result_list = data['NotificationResultList']
  raise MissingExpectedXmlContentError, "Xml should have contained a 'NotificationRequestResult' -> 'NotificationResultList' node, but was #{xml}" if result_list.blank?
  result_list = result_list['NotificationResult']
  raise MissingExpectedXmlContentError, "Xml should have contained a 'NotificationRequestResult' -> 'NotificationResultList' -> 'NotificationResult' node, but was #{xml}" if result_list.blank?
  @result = Result.new(result_list['NotificationResultCode'], result_list['NotificationResultText'])
  @result = nil unless @result.valid?

  if @result.ok?
    result_list = result_list['SubscriberResult']
    raise MissingExpectedXmlContentError, "Xml should have contained a 'NotificationRequestResult' -> 'NotificationResultList' -> 'NotificationResult' -> 'SubscriberResult' node, but was #{xml}" if result_list.blank?
    @subscriber_result = Result.new(result_list['SubscriberResultCode'], result_list['SubscriberResultText'])
    @subscriber_result = nil unless @subscriber_result.valid?
  end
end

Instance Attribute Details

#requestObject (readonly)

Returns the value of attribute request.



34
35
36
# File 'lib/mblox/sms_response.rb', line 34

def request
  @request
end

#resultObject (readonly)

Returns the value of attribute result.



34
35
36
# File 'lib/mblox/sms_response.rb', line 34

def result
  @result
end

#subscriber_resultObject (readonly)

Returns the value of attribute subscriber_result.



34
35
36
# File 'lib/mblox/sms_response.rb', line 34

def subscriber_result
  @subscriber_result
end

Instance Method Details

#ok?Boolean

Returns:

  • (Boolean)


59
60
61
# File 'lib/mblox/sms_response.rb', line 59

def ok?
  @request.ok? && @result.ok? && @subscriber_result.ok?
end

#unroutable?Boolean

Returns:

  • (Boolean)


63
64
65
# File 'lib/mblox/sms_response.rb', line 63

def unroutable?
  @request.ok? && @result.ok? && Result::UNROUTABLE == @subscriber_result
end