Class: SmsTraffic::Client::DeliverReply

Inherits:
Reply
  • Object
show all
Defined in:
lib/sms_traffic/client/deliver_reply.rb

Constant Summary collapse

OK_REPLY =
'OK'.freeze

Instance Attribute Summary

Attributes inherited from Reply

#hash, #xml

Instance Method Summary collapse

Methods inherited from Reply

#initialize

Constructor Details

This class inherits a constructor from SmsTraffic::Client::Reply

Instance Method Details

#codeObject



20
21
22
# File 'lib/sms_traffic/client/deliver_reply.rb', line 20

def code
  fetch_value(hash, :code)
end

#descriptionObject



24
25
26
# File 'lib/sms_traffic/client/deliver_reply.rb', line 24

def description
  fetch_value(hash, :description)
end

#error?Boolean

Returns:

  • (Boolean)


12
13
14
# File 'lib/sms_traffic/client/deliver_reply.rb', line 12

def error?
  !ok?
end

#error_descriptionObject



53
54
55
# File 'lib/sms_traffic/client/deliver_reply.rb', line 53

def error_description
  "#{result}: code: #{code}, description: #{description}" if error?
end

#message_infosObject



28
29
30
# File 'lib/sms_traffic/client/deliver_reply.rb', line 28

def message_infos
  fetch_value(hash, :message_infos)
end

#ok?Boolean

Returns:

  • (Boolean)


6
7
8
9
10
# File 'lib/sms_traffic/client/deliver_reply.rb', line 6

def ok?
  fetch_value(hash, :result) == OK_REPLY
rescue NoMethodError
  false
end

#resultObject



16
17
18
# File 'lib/sms_traffic/client/deliver_reply.rb', line 16

def result
  fetch_value(hash, :result)
end

#sms_id(phone = nil) ⇒ Object



32
33
34
35
36
37
38
39
40
41
# File 'lib/sms_traffic/client/deliver_reply.rb', line 32

def sms_id(phone = nil)
  message_info = fetch_value(message_infos, :message_info)
  return fetch_value(message_info, :sms_id) if message_info.is_a?(Hash) || message_info.nil?

  if phone
    fetch_value(find_message_info(phone), :sms_id)
  elsif message_info.is_a?(Array)
    fetch_value(message_info.first, :sms_id)
  end
end

#sms_idsObject



43
44
45
46
47
48
49
50
51
# File 'lib/sms_traffic/client/deliver_reply.rb', line 43

def sms_ids
  message_info = fetch_value(message_infos, :message_info)

  return [fetch_value(message_info, :sms_id)] if message_info&.size == 1

  message_info.each_with_object({}) do |info, hash|
    hash[fetch_value(info, :phone)] = fetch_value(info, :sms_id)
  end
end