Class: Nexmo::Client

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Client

Returns a new instance of Client.



13
14
15
16
17
18
19
# File 'lib/nexmo.rb', line 13

def initialize(options = {})
  @key = options.fetch(:key) { ENV.fetch('NEXMO_API_KEY') }

  @secret = options.fetch(:secret) { ENV.fetch('NEXMO_API_SECRET') }

  @host = options.fetch(:host) { 'rest.nexmo.com' }
end

Instance Attribute Details

#keyObject

Returns the value of attribute key.



11
12
13
# File 'lib/nexmo.rb', line 11

def key
  @key
end

#secretObject

Returns the value of attribute secret.



11
12
13
# File 'lib/nexmo.rb', line 11

def secret
  @secret
end

Instance Method Details

#buy_number(params) ⇒ Object



53
54
55
# File 'lib/nexmo.rb', line 53

def buy_number(params)
  post('/number/buy', params)
end

#cancel_number(params) ⇒ Object



57
58
59
# File 'lib/nexmo.rb', line 57

def cancel_number(params)
  post('/number/cancel', params)
end

#check_verification_request(params) ⇒ Object



113
114
115
# File 'lib/nexmo.rb', line 113

def check_verification_request(params)
  post('https://api.nexmo.com/verify/check/json', params)
end

#get_account_numbers(params) ⇒ Object



45
46
47
# File 'lib/nexmo.rb', line 45

def (params)
  get('/account/numbers', params)
end

#get_balanceObject



33
34
35
# File 'lib/nexmo.rb', line 33

def get_balance
  get('/account/get-balance')
end

#get_country_pricing(country_code) ⇒ Object



37
38
39
# File 'lib/nexmo.rb', line 37

def get_country_pricing(country_code)
  get('/account/get-pricing/outbound', {:country => country_code})
end

#get_message(id) ⇒ Object



65
66
67
# File 'lib/nexmo.rb', line 65

def get_message(id)
  get('/search/message', {:id => id})
end

#get_message_rejections(params) ⇒ Object



69
70
71
# File 'lib/nexmo.rb', line 69

def get_message_rejections(params)
  get('/search/rejections', params)
end

#get_prefix_pricing(prefix) ⇒ Object



41
42
43
# File 'lib/nexmo.rb', line 41

def get_prefix_pricing(prefix)
  get('/account/get-prefix-pricing/outbound', {:prefix => prefix})
end

#get_verification_request(id) ⇒ Object



117
118
119
# File 'lib/nexmo.rb', line 117

def get_verification_request(id)
  get('https://api.nexmo.com/verify/search/json', :request_id => id)
end

#initiate_call(params) ⇒ Object



97
98
99
# File 'lib/nexmo.rb', line 97

def initiate_call(params)
  post('/call/json', params)
end

#initiate_tts_call(params) ⇒ Object



101
102
103
# File 'lib/nexmo.rb', line 101

def initiate_tts_call(params)
  post('https://api.nexmo.com/tts/json', params)
end

#initiate_tts_prompt_call(params) ⇒ Object



105
106
107
# File 'lib/nexmo.rb', line 105

def initiate_tts_prompt_call(params)
  post('https://api.nexmo.com/tts-prompt/json', params)
end

#number_search(country_code, params = {}) ⇒ Object



49
50
51
# File 'lib/nexmo.rb', line 49

def number_search(country_code, params = {})
  get('/number/search', {:country => country_code}.merge(params))
end

#request_number_insight(params) ⇒ Object



121
122
123
# File 'lib/nexmo.rb', line 121

def request_number_insight(params)
  post('/ni/json', params)
end

#search_messages(params) ⇒ Object



73
74
75
# File 'lib/nexmo.rb', line 73

def search_messages(params)
  get('/search/messages', Hash === params ? params : {:ids => Array(params)})
end

#send_2fa_message(params) ⇒ Object



85
86
87
# File 'lib/nexmo.rb', line 85

def send_2fa_message(params)
  post('/sc/us/2fa/json', params)
end

#send_event_alert_message(params) ⇒ Object



89
90
91
# File 'lib/nexmo.rb', line 89

def send_event_alert_message(params)
  post('/sc/us/alert/json', params)
end

#send_marketing_message(params) ⇒ Object



93
94
95
# File 'lib/nexmo.rb', line 93

def send_marketing_message(params)
  post('/sc/us/marketing/json', params)
end

#send_message(params) ⇒ Object

Raises:



21
22
23
24
25
26
27
28
29
30
31
# File 'lib/nexmo.rb', line 21

def send_message(params)
  response = post('/sms/json', params)

  item = response['messages'].first

  status = item['status'].to_i

  raise Error, "#{item['error-text']} (status=#{status})" unless status.zero?

  return item
end

#send_ussd_prompt_message(params) ⇒ Object



81
82
83
# File 'lib/nexmo.rb', line 81

def send_ussd_prompt_message(params)
  post('/ussd-prompt/json', params)
end

#send_ussd_push_message(params) ⇒ Object



77
78
79
# File 'lib/nexmo.rb', line 77

def send_ussd_push_message(params)
  post('/ussd/json', params)
end

#send_verification_request(params) ⇒ Object



109
110
111
# File 'lib/nexmo.rb', line 109

def send_verification_request(params)
  post('https://api.nexmo.com/verify/json', params)
end

#update_number(params) ⇒ Object



61
62
63
# File 'lib/nexmo.rb', line 61

def update_number(params)
  post('/number/update', params)
end