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



18
19
20
# File 'lib/sms_traffic/client/deliver_reply.rb', line 18

def code
  fetch_value(hash, :code)
end

#descriptionObject



22
23
24
# File 'lib/sms_traffic/client/deliver_reply.rb', line 22

def description
  fetch_value(hash, :description)
end

#error?Boolean

Returns:

  • (Boolean)


10
11
12
# File 'lib/sms_traffic/client/deliver_reply.rb', line 10

def error?
  !ok?
end

#error_descriptionObject



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

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

#message_infosObject



26
27
28
# File 'lib/sms_traffic/client/deliver_reply.rb', line 26

def message_infos
  fetch_value(hash, :message_infos)
end

#ok?Boolean

Returns:

  • (Boolean)


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

def ok?
  result == OK_REPLY && message_infos
end

#resultObject



14
15
16
# File 'lib/sms_traffic/client/deliver_reply.rb', line 14

def result
  fetch_value(hash, :result)
end

#sms_id(phone = nil) ⇒ Object



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

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



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

def sms_ids
  message_info = fetch_value(message_infos, :message_info)

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

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