nexmo 6.3.0 → 7.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +21 -3
- data/lib/nexmo/account.rb +5 -1
- data/lib/nexmo/alerts.rb +5 -1
- data/lib/nexmo/client.rb +6 -6
- data/lib/nexmo/config.rb +2 -2
- data/lib/nexmo/errors.rb +2 -0
- data/lib/nexmo/namespace.rb +2 -10
- data/lib/nexmo/number_insight.rb +20 -6
- data/lib/nexmo/sms.rb +9 -7
- data/lib/nexmo/verify.rb +28 -16
- data/lib/nexmo/version.rb +1 -1
- data/lib/nexmo/{calls.rb → voice.rb} +11 -11
- data/lib/nexmo/{calls → voice}/dtmf.rb +1 -1
- data/lib/nexmo/{calls → voice}/list_response.rb +1 -1
- data/lib/nexmo/{calls → voice}/stream.rb +1 -1
- data/lib/nexmo/{calls → voice}/talk.rb +1 -1
- metadata +8 -11
- data/lib/nexmo/number_insight/response.rb +0 -7
- data/lib/nexmo/sms/response.rb +0 -8
- data/lib/nexmo/verify/response.rb +0 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c11d202ac7a62f8ee5ae904f0a3c3edfd92d9d04899b747f8369811ca140d6d3
|
4
|
+
data.tar.gz: 595afbed12c7c0e2bda951059beac3f904ded148a229b2d1eec84996c5a9c736
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c0bb244ff331d3faa4eec0b79b173e8829aead849682ad508bb9c152be677276387db0d602a801f09c7c5237699d00c43ac65021ba2b9f8d8ee0f5c096c9b5d1
|
7
|
+
data.tar.gz: 527352b2f4a00c318a39f234182f240b7955018b75882ed084809ef5b3a245b202036d94dad8c210e50512f7a08b6b71fd41faec3fa9f8ee2b7e830ee9a4c265
|
data/README.md
CHANGED
@@ -2,15 +2,18 @@
|
|
2
2
|
|
3
3
|
[![Gem Version](https://badge.fury.io/rb/nexmo.svg)](https://badge.fury.io/rb/nexmo) [![Build Status](https://api.travis-ci.org/Nexmo/nexmo-ruby.svg?branch=master)](https://travis-ci.org/Nexmo/nexmo-ruby) [![Coverage Status](https://coveralls.io/repos/github/Nexmo/nexmo-ruby/badge.svg?branch=coveralls)](https://coveralls.io/github/Nexmo/nexmo-ruby?branch=master)
|
4
4
|
|
5
|
+
<img src="https://developer.nexmo.com/assets/images/Vonage_Nexmo.svg" height="48px" alt="Nexmo is now known as Vonage" />
|
6
|
+
|
5
7
|
This is the Ruby client library for Nexmo's API. To use it you'll
|
6
8
|
need a Nexmo account. Sign up [for free at nexmo.com][signup].
|
7
9
|
|
8
10
|
* [Requirements](#requirements)
|
9
11
|
* [Installation](#installation)
|
10
12
|
* [Usage](#usage)
|
11
|
-
* [Logging](#logging)
|
12
|
-
* [
|
13
|
-
* [
|
13
|
+
* [Logging](#logging)
|
14
|
+
* [Overriding the default hosts](#overriding-the-default-hosts)
|
15
|
+
* [JWT authentication](#jwt-authentication)
|
16
|
+
* [Webhook signatures](#webhook-signatures)
|
14
17
|
* [Documentation](#documentation)
|
15
18
|
* [License](#license)
|
16
19
|
|
@@ -73,6 +76,21 @@ By default the library sets the logger to `Rails.logger` if it is defined.
|
|
73
76
|
To disable logging set the logger to `nil`.
|
74
77
|
|
75
78
|
|
79
|
+
## Overriding the default hosts
|
80
|
+
|
81
|
+
To override the default hosts that the SDK uses for HTTP requests, you need to
|
82
|
+
specify the `api_host`, `rest_host` or both in the client configuration. For example:
|
83
|
+
|
84
|
+
```ruby
|
85
|
+
client = Nexmo::Client.new(
|
86
|
+
api_host: 'api-sg-1.nexmo.com',
|
87
|
+
rest_host: 'rest-sg-1.nexmo.com'
|
88
|
+
)
|
89
|
+
```
|
90
|
+
|
91
|
+
By default the hosts are set to `api.nexmo.com` and `rest.nexmo.com`, respectively.
|
92
|
+
|
93
|
+
|
76
94
|
## JWT authentication
|
77
95
|
|
78
96
|
To call newer endpoints that support JWT authentication such as the Voice API you'll
|
data/lib/nexmo/account.rb
CHANGED
@@ -1,8 +1,9 @@
|
|
1
|
-
# typed:
|
1
|
+
# typed: strict
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
4
|
module Nexmo
|
5
5
|
class Account < Namespace
|
6
|
+
extend T::Sig
|
6
7
|
include Keys
|
7
8
|
|
8
9
|
self.host = :rest_host
|
@@ -13,6 +14,7 @@ module Nexmo
|
|
13
14
|
#
|
14
15
|
# @see https://developer.nexmo.com/api/developer/account#get-balance
|
15
16
|
#
|
17
|
+
sig { returns(Nexmo::Response) }
|
16
18
|
def balance
|
17
19
|
request('/account/get-balance')
|
18
20
|
end
|
@@ -35,6 +37,7 @@ module Nexmo
|
|
35
37
|
#
|
36
38
|
# @see https://developer.nexmo.com/api/developer/account#settings
|
37
39
|
#
|
40
|
+
sig { params(params: T::Hash[Symbol, T.untyped]).returns(Nexmo::Response) }
|
38
41
|
def update(params)
|
39
42
|
request('/account/settings', params: camelcase(params), type: Post)
|
40
43
|
end
|
@@ -50,6 +53,7 @@ module Nexmo
|
|
50
53
|
#
|
51
54
|
# @see https://developer.nexmo.com/api/developer/account#top-up
|
52
55
|
#
|
56
|
+
sig { params(params: T::Hash[Symbol, T.untyped]).returns(Nexmo::Response) }
|
53
57
|
def topup(params)
|
54
58
|
request('/account/top-up', params: params, type: Post)
|
55
59
|
end
|
data/lib/nexmo/alerts.rb
CHANGED
@@ -1,8 +1,9 @@
|
|
1
|
-
# typed:
|
1
|
+
# typed: strict
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
4
|
module Nexmo
|
5
5
|
class Alerts < Namespace
|
6
|
+
extend T::Sig
|
6
7
|
self.host = :rest_host
|
7
8
|
|
8
9
|
# Request the list of phone numbers opted out from your campaign.
|
@@ -11,6 +12,7 @@ module Nexmo
|
|
11
12
|
#
|
12
13
|
# @return [Response]
|
13
14
|
#
|
15
|
+
sig { returns(Nexmo::Response) }
|
14
16
|
def list
|
15
17
|
request('/sc/us/alert/opt-in/query/json')
|
16
18
|
end
|
@@ -26,6 +28,7 @@ module Nexmo
|
|
26
28
|
#
|
27
29
|
# @see https://developer.nexmo.com/api/sms/us-short-codes/alerts/subscription
|
28
30
|
#
|
31
|
+
sig { params(params: T::Hash[Symbol, T.untyped]).returns(Nexmo::Response) }
|
29
32
|
def remove(params)
|
30
33
|
request('/sc/us/alert/opt-in/manage/json', params: params, type: Post)
|
31
34
|
end
|
@@ -61,6 +64,7 @@ module Nexmo
|
|
61
64
|
#
|
62
65
|
# @see https://developer.nexmo.com/api/sms/us-short-codes/alerts/sending
|
63
66
|
#
|
67
|
+
sig { params(params: T::Hash[Symbol, T.untyped]).returns(Nexmo::Response) }
|
64
68
|
def send(params)
|
65
69
|
request('/sc/us/alert/json', params: params, type: Post)
|
66
70
|
end
|
data/lib/nexmo/client.rb
CHANGED
@@ -32,12 +32,6 @@ module Nexmo
|
|
32
32
|
@applications ||= Applications.new(config)
|
33
33
|
end
|
34
34
|
|
35
|
-
# @return [Calls]
|
36
|
-
#
|
37
|
-
def calls
|
38
|
-
@calls ||= Calls.new(config)
|
39
|
-
end
|
40
|
-
|
41
35
|
# @return [Conversations]
|
42
36
|
#
|
43
37
|
def conversations
|
@@ -109,5 +103,11 @@ module Nexmo
|
|
109
103
|
def verify
|
110
104
|
@verify ||= Verify.new(config)
|
111
105
|
end
|
106
|
+
|
107
|
+
# @return [Voice]
|
108
|
+
#
|
109
|
+
def voice
|
110
|
+
@voice ||= Voice.new(config)
|
111
|
+
end
|
112
112
|
end
|
113
113
|
end
|
data/lib/nexmo/config.rb
CHANGED
@@ -8,9 +8,9 @@ module Nexmo
|
|
8
8
|
self.api_host = 'api.nexmo.com'
|
9
9
|
self.api_key = ENV['NEXMO_API_KEY']
|
10
10
|
self.api_secret = ENV['NEXMO_API_SECRET']
|
11
|
-
self.application_id =
|
11
|
+
self.application_id = ENV['NEXMO_APPLICATION_ID']
|
12
12
|
self.logger = (defined?(Rails.logger) && Rails.logger) || ::Logger.new(nil)
|
13
|
-
self.private_key =
|
13
|
+
self.private_key = ENV['NEXMO_PRIVATE_KEY_PATH'] ? File.read(ENV['NEXMO_PRIVATE_KEY_PATH']) : ENV['NEXMO_PRIVATE_KEY']
|
14
14
|
self.rest_host = 'rest.nexmo.com'
|
15
15
|
self.signature_secret = ENV['NEXMO_SIGNATURE_SECRET']
|
16
16
|
self.signature_method = ENV['NEXMO_SIGNATURE_METHOD'] || 'md5hash'
|
data/lib/nexmo/errors.rb
CHANGED
data/lib/nexmo/namespace.rb
CHANGED
@@ -46,14 +46,6 @@ module Nexmo
|
|
46
46
|
@request_headers ||= {}
|
47
47
|
end
|
48
48
|
|
49
|
-
def self.response_class
|
50
|
-
@response_class ||= Response
|
51
|
-
end
|
52
|
-
|
53
|
-
def self.response_class=(response_class)
|
54
|
-
@response_class = response_class
|
55
|
-
end
|
56
|
-
|
57
49
|
protected
|
58
50
|
|
59
51
|
Get = Net::HTTP::Get
|
@@ -61,7 +53,7 @@ module Nexmo
|
|
61
53
|
Post = Net::HTTP::Post
|
62
54
|
Delete = Net::HTTP::Delete
|
63
55
|
|
64
|
-
def request(path, params: nil, type: Get, response_class:
|
56
|
+
def request(path, params: nil, type: Get, response_class: Response, &block)
|
65
57
|
uri = URI('https://' + @host + path)
|
66
58
|
|
67
59
|
params ||= {}
|
@@ -97,7 +89,7 @@ module Nexmo
|
|
97
89
|
|
98
90
|
logger.debug(response.body) if response.body
|
99
91
|
|
100
|
-
parse(response, response_class
|
92
|
+
parse(response, response_class)
|
101
93
|
end
|
102
94
|
|
103
95
|
def parse(response, response_class)
|
data/lib/nexmo/number_insight.rb
CHANGED
@@ -3,8 +3,6 @@
|
|
3
3
|
|
4
4
|
module Nexmo
|
5
5
|
class NumberInsight < Namespace
|
6
|
-
self.response_class = Response
|
7
|
-
|
8
6
|
# Provides basic number insight information about a number.
|
9
7
|
#
|
10
8
|
# @example
|
@@ -25,7 +23,11 @@ module Nexmo
|
|
25
23
|
# @see https://developer.nexmo.com/api/number-insight#getNumberInsightBasic
|
26
24
|
#
|
27
25
|
def basic(params)
|
28
|
-
request('/ni/basic/json', params: params)
|
26
|
+
response = request('/ni/basic/json', params: params)
|
27
|
+
|
28
|
+
raise Error, response[:status_message] unless response.status.zero?
|
29
|
+
|
30
|
+
response
|
29
31
|
end
|
30
32
|
|
31
33
|
# Provides standard number insight information about a number.
|
@@ -53,7 +55,11 @@ module Nexmo
|
|
53
55
|
# @see https://developer.nexmo.com/api/number-insight#getNumberInsightStandard
|
54
56
|
#
|
55
57
|
def standard(params)
|
56
|
-
request('/ni/standard/json', params: params)
|
58
|
+
response = request('/ni/standard/json', params: params)
|
59
|
+
|
60
|
+
raise Error, response[:status_message] unless response.status.zero?
|
61
|
+
|
62
|
+
response
|
57
63
|
end
|
58
64
|
|
59
65
|
# Provides advanced number insight information about a number synchronously.
|
@@ -85,7 +91,11 @@ module Nexmo
|
|
85
91
|
# @see https://developer.nexmo.com/api/number-insight#getNumberInsightAdvanced
|
86
92
|
#
|
87
93
|
def advanced(params)
|
88
|
-
request('/ni/advanced/json', params: params)
|
94
|
+
response = request('/ni/advanced/json', params: params)
|
95
|
+
|
96
|
+
raise Error, response[:status_message] unless response.status.zero?
|
97
|
+
|
98
|
+
response
|
89
99
|
end
|
90
100
|
|
91
101
|
# Provides advanced number insight number information *asynchronously* using the URL specified in the callback parameter.
|
@@ -120,7 +130,11 @@ module Nexmo
|
|
120
130
|
# @see https://developer.nexmo.com/api/number-insight#getNumberInsightAsync
|
121
131
|
#
|
122
132
|
def advanced_async(params)
|
123
|
-
request('/ni/advanced/async/json', params: params)
|
133
|
+
response = request('/ni/advanced/async/json', params: params)
|
134
|
+
|
135
|
+
raise Error, response[:status_message] unless response.status.zero?
|
136
|
+
|
137
|
+
response
|
124
138
|
end
|
125
139
|
end
|
126
140
|
end
|
data/lib/nexmo/sms.rb
CHANGED
@@ -13,11 +13,7 @@ module Nexmo
|
|
13
13
|
# @example
|
14
14
|
# response = client.sms.send(from: 'Ruby', to: '447700900000', text: 'Hello world')
|
15
15
|
#
|
16
|
-
#
|
17
|
-
# puts "Sent message id=#{response.messages.first.message_id}"
|
18
|
-
# else
|
19
|
-
# puts "Error: #{response.messages.first.error_text}"
|
20
|
-
# end
|
16
|
+
# puts "Sent message id=#{response.messages.first.message_id}"
|
21
17
|
#
|
22
18
|
# @option params [required, String] :from
|
23
19
|
# The name or number the message should be sent from.
|
@@ -96,7 +92,7 @@ module Nexmo
|
|
96
92
|
#
|
97
93
|
# @see https://developer.nexmo.com/api/sms#send-an-sms
|
98
94
|
#
|
99
|
-
sig { params(params: T::Hash[Symbol, T.untyped]).returns(Nexmo::
|
95
|
+
sig { params(params: T::Hash[Symbol, T.untyped]).returns(Nexmo::Response) }
|
100
96
|
def send(params)
|
101
97
|
if unicode?(params.fetch(:text)) && params[:type] != 'unicode'
|
102
98
|
message = 'Sending unicode text SMS without setting the type parameter to "unicode". ' \
|
@@ -106,7 +102,13 @@ module Nexmo
|
|
106
102
|
logger.warn(message)
|
107
103
|
end
|
108
104
|
|
109
|
-
request('/sms/json', params: hyphenate(params), type: Post
|
105
|
+
response = request('/sms/json', params: hyphenate(params), type: Post)
|
106
|
+
|
107
|
+
unless response.messages.first.status == '0'
|
108
|
+
raise Error, response.messages.first[:error_text]
|
109
|
+
end
|
110
|
+
|
111
|
+
response
|
110
112
|
end
|
111
113
|
|
112
114
|
private
|
data/lib/nexmo/verify.rb
CHANGED
@@ -7,8 +7,6 @@ module Nexmo
|
|
7
7
|
|
8
8
|
private :http_request
|
9
9
|
|
10
|
-
self.response_class = Response
|
11
|
-
|
12
10
|
# Generate and send a PIN to your user.
|
13
11
|
#
|
14
12
|
# @note You can make a maximum of one Verify request per second.
|
@@ -16,11 +14,7 @@ module Nexmo
|
|
16
14
|
# @example
|
17
15
|
# response = client.verify.request(number: '447700900000', brand: 'Acme Inc')
|
18
16
|
#
|
19
|
-
#
|
20
|
-
# puts "Started verification request_id=#{response.request_id}"
|
21
|
-
# else
|
22
|
-
# puts "Error: #{response.error_text}"
|
23
|
-
# end
|
17
|
+
# puts "Started verification request_id=#{response.request_id}"
|
24
18
|
#
|
25
19
|
# @option params [required, String] :number
|
26
20
|
# The mobile or landline phone number to verify.
|
@@ -66,7 +60,11 @@ module Nexmo
|
|
66
60
|
# @see https://developer.nexmo.com/api/verify#verifyRequest
|
67
61
|
#
|
68
62
|
def request(params)
|
69
|
-
http_request('/verify/json', params: params, type: Post)
|
63
|
+
response = http_request('/verify/json', params: params, type: Post)
|
64
|
+
|
65
|
+
raise Error, response[:error_text] if error?(response)
|
66
|
+
|
67
|
+
response
|
70
68
|
end
|
71
69
|
|
72
70
|
# Confirm that the PIN you received from your user matches the one sent by Nexmo in your verification request.
|
@@ -74,11 +72,7 @@ module Nexmo
|
|
74
72
|
# @example
|
75
73
|
# response = client.verify.check(request_id: request_id, code: '1234')
|
76
74
|
#
|
77
|
-
#
|
78
|
-
# puts "Verification complete, event_id=#{response.event_id}"
|
79
|
-
# else
|
80
|
-
# puts "Error: #{response.error_text}"
|
81
|
-
# end
|
75
|
+
# puts "Verification complete, event_id=#{response.event_id}"
|
82
76
|
#
|
83
77
|
# @option params [required, String] :request_id
|
84
78
|
# The Verify request to check.
|
@@ -98,7 +92,11 @@ module Nexmo
|
|
98
92
|
# @see https://developer.nexmo.com/api/verify#verifyCheck
|
99
93
|
#
|
100
94
|
def check(params)
|
101
|
-
http_request('/verify/check/json', params: params, type: Post)
|
95
|
+
response = http_request('/verify/check/json', params: params, type: Post)
|
96
|
+
|
97
|
+
raise Error, response[:error_text] if error?(response)
|
98
|
+
|
99
|
+
response
|
102
100
|
end
|
103
101
|
|
104
102
|
# Check the status of past or current verification requests.
|
@@ -120,7 +118,11 @@ module Nexmo
|
|
120
118
|
# @see https://developer.nexmo.com/api/verify#verifySearch
|
121
119
|
#
|
122
120
|
def search(params)
|
123
|
-
http_request('/verify/search/json', params: params)
|
121
|
+
response = http_request('/verify/search/json', params: params)
|
122
|
+
|
123
|
+
raise Error, response[:error_text] if error?(response)
|
124
|
+
|
125
|
+
response
|
124
126
|
end
|
125
127
|
|
126
128
|
# Control the progress of your verification requests.
|
@@ -142,7 +144,11 @@ module Nexmo
|
|
142
144
|
# @see https://developer.nexmo.com/api/verify#verifyControl
|
143
145
|
#
|
144
146
|
def control(params)
|
145
|
-
http_request('/verify/control/json', params: params, type: Post)
|
147
|
+
response = http_request('/verify/control/json', params: params, type: Post)
|
148
|
+
|
149
|
+
raise Error, response[:error_text] if error?(response)
|
150
|
+
|
151
|
+
response
|
146
152
|
end
|
147
153
|
|
148
154
|
# Cancel an existing verification request.
|
@@ -174,5 +180,11 @@ module Nexmo
|
|
174
180
|
def trigger_next_event(id)
|
175
181
|
control(request_id: id, cmd: 'trigger_next_event')
|
176
182
|
end
|
183
|
+
|
184
|
+
private
|
185
|
+
|
186
|
+
def error?(response)
|
187
|
+
response.respond_to?(:error_text)
|
188
|
+
end
|
177
189
|
end
|
178
190
|
end
|
data/lib/nexmo/version.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
4
|
module Nexmo
|
5
|
-
class
|
5
|
+
class Voice < Namespace
|
6
6
|
self.authentication = BearerToken
|
7
7
|
|
8
8
|
self.request_body = JSON
|
@@ -10,7 +10,7 @@ module Nexmo
|
|
10
10
|
# Create an outbound Call.
|
11
11
|
#
|
12
12
|
# @example
|
13
|
-
# response = client.
|
13
|
+
# response = client.voice.create({
|
14
14
|
# to: [{type: 'phone', number: '14843331234'}],
|
15
15
|
# from: {type: 'phone', number: '14843335555'},
|
16
16
|
# answer_url: ['https://example.com/answer']
|
@@ -61,7 +61,7 @@ module Nexmo
|
|
61
61
|
# Get details of your calls.
|
62
62
|
#
|
63
63
|
# @example
|
64
|
-
# response = client.
|
64
|
+
# response = client.voice.list
|
65
65
|
# response.each do |item|
|
66
66
|
# puts "#{item.uuid} #{item.direction} #{item.status}"
|
67
67
|
# end
|
@@ -100,7 +100,7 @@ module Nexmo
|
|
100
100
|
# Get detail of a specific call.
|
101
101
|
#
|
102
102
|
# @example
|
103
|
-
# response = client.
|
103
|
+
# response = client.voice.get(id)
|
104
104
|
#
|
105
105
|
# @param [String] id
|
106
106
|
#
|
@@ -115,7 +115,7 @@ module Nexmo
|
|
115
115
|
# Modify an in progress call.
|
116
116
|
#
|
117
117
|
# @example
|
118
|
-
# response = client.
|
118
|
+
# response = client.voice.update(id, action: 'hangup')
|
119
119
|
#
|
120
120
|
# @option params [required, String] :action
|
121
121
|
#
|
@@ -136,7 +136,7 @@ module Nexmo
|
|
136
136
|
# Hangup an in progress call.
|
137
137
|
#
|
138
138
|
# @example
|
139
|
-
# response = client.
|
139
|
+
# response = client.voice.hangup(id)
|
140
140
|
#
|
141
141
|
# @param [String] id
|
142
142
|
#
|
@@ -151,7 +151,7 @@ module Nexmo
|
|
151
151
|
# Mute an in progress call.
|
152
152
|
#
|
153
153
|
# @example
|
154
|
-
# response = client.
|
154
|
+
# response = client.voice.mute(id)
|
155
155
|
#
|
156
156
|
# @param [String] id
|
157
157
|
#
|
@@ -166,7 +166,7 @@ module Nexmo
|
|
166
166
|
# Unmute an in progress call.
|
167
167
|
#
|
168
168
|
# @example
|
169
|
-
# response = client.
|
169
|
+
# response = client.voice.unmute(id)
|
170
170
|
#
|
171
171
|
# @param [String] id
|
172
172
|
#
|
@@ -181,7 +181,7 @@ module Nexmo
|
|
181
181
|
# Earmuff an in progress call.
|
182
182
|
#
|
183
183
|
# @example
|
184
|
-
# response = client.
|
184
|
+
# response = client.voice.earmuff(id)
|
185
185
|
#
|
186
186
|
# @param [String] id
|
187
187
|
#
|
@@ -196,7 +196,7 @@ module Nexmo
|
|
196
196
|
# Unearmuff an in progress call.
|
197
197
|
#
|
198
198
|
# @example
|
199
|
-
# response = client.
|
199
|
+
# response = client.voice.unearmuff(id)
|
200
200
|
#
|
201
201
|
# @param [String] id
|
202
202
|
#
|
@@ -216,7 +216,7 @@ module Nexmo
|
|
216
216
|
# url: ['https://example.com/ncco.json']
|
217
217
|
# }
|
218
218
|
#
|
219
|
-
# response = client.
|
219
|
+
# response = client.voice.transfer(id, destination: destination)
|
220
220
|
#
|
221
221
|
# @param [String] id
|
222
222
|
# @param [Hash] destination
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nexmo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 7.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nexmo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-04-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jwt
|
@@ -76,11 +76,6 @@ files:
|
|
76
76
|
- lib/nexmo/authentication_error.rb
|
77
77
|
- lib/nexmo/basic.rb
|
78
78
|
- lib/nexmo/bearer_token.rb
|
79
|
-
- lib/nexmo/calls.rb
|
80
|
-
- lib/nexmo/calls/dtmf.rb
|
81
|
-
- lib/nexmo/calls/list_response.rb
|
82
|
-
- lib/nexmo/calls/stream.rb
|
83
|
-
- lib/nexmo/calls/talk.rb
|
84
79
|
- lib/nexmo/client.rb
|
85
80
|
- lib/nexmo/client_error.rb
|
86
81
|
- lib/nexmo/config.rb
|
@@ -105,7 +100,6 @@ files:
|
|
105
100
|
- lib/nexmo/messages.rb
|
106
101
|
- lib/nexmo/namespace.rb
|
107
102
|
- lib/nexmo/number_insight.rb
|
108
|
-
- lib/nexmo/number_insight/response.rb
|
109
103
|
- lib/nexmo/numbers.rb
|
110
104
|
- lib/nexmo/numbers/list_response.rb
|
111
105
|
- lib/nexmo/numbers/response.rb
|
@@ -119,12 +113,15 @@ files:
|
|
119
113
|
- lib/nexmo/server_error.rb
|
120
114
|
- lib/nexmo/signature.rb
|
121
115
|
- lib/nexmo/sms.rb
|
122
|
-
- lib/nexmo/sms/response.rb
|
123
116
|
- lib/nexmo/tfa.rb
|
124
117
|
- lib/nexmo/user_agent.rb
|
125
118
|
- lib/nexmo/verify.rb
|
126
|
-
- lib/nexmo/verify/response.rb
|
127
119
|
- lib/nexmo/version.rb
|
120
|
+
- lib/nexmo/voice.rb
|
121
|
+
- lib/nexmo/voice/dtmf.rb
|
122
|
+
- lib/nexmo/voice/list_response.rb
|
123
|
+
- lib/nexmo/voice/stream.rb
|
124
|
+
- lib/nexmo/voice/talk.rb
|
128
125
|
- nexmo.gemspec
|
129
126
|
homepage: https://github.com/Nexmo/nexmo-ruby
|
130
127
|
licenses:
|
@@ -150,7 +147,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
150
147
|
- !ruby/object:Gem::Version
|
151
148
|
version: '0'
|
152
149
|
requirements: []
|
153
|
-
rubygems_version: 3.
|
150
|
+
rubygems_version: 3.0.0
|
154
151
|
signing_key:
|
155
152
|
specification_version: 4
|
156
153
|
summary: This is the Ruby client library for Nexmo's API. To use it you'll need a
|
data/lib/nexmo/sms/response.rb
DELETED