nexmo 7.0.0 → 7.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,18 +1,23 @@
1
- # typed: false
1
+ # typed: strict
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Nexmo
5
5
  class Messages < Namespace
6
+ extend T::Sig
7
+
6
8
  self.host = :rest_host
7
9
 
10
+ sig { params(id: String).returns(Nexmo::Response) }
8
11
  def get(id)
9
12
  request('/search/message', params: {id: id})
10
13
  end
11
14
 
15
+ sig { params(params: T::Hash[Symbol, T.untyped]).returns(Nexmo::Response) }
12
16
  def search(params)
13
17
  request('/search/messages', params: params)
14
18
  end
15
19
 
20
+ sig { params(params: T::Hash[Symbol, T.untyped]).returns(Nexmo::Response) }
16
21
  def rejections(params)
17
22
  request('/search/rejections', params: params)
18
23
  end
@@ -1,4 +1,4 @@
1
- # typed: false
1
+ # typed: true
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Nexmo
@@ -1,4 +1,4 @@
1
- # typed: false
1
+ # typed: true
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Nexmo
@@ -1,4 +1,4 @@
1
- # typed: false
1
+ # typed: true
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Nexmo
@@ -1,4 +1,4 @@
1
- # typed: false
1
+ # typed: true
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Nexmo
@@ -1,8 +1,10 @@
1
- # typed: false
1
+ # typed: strict
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Nexmo
5
5
  class Redact < Namespace
6
+ extend T::Sig
7
+
6
8
  self.authentication = Basic
7
9
 
8
10
  self.request_body = JSON
@@ -27,6 +29,7 @@ module Nexmo
27
29
  #
28
30
  # @see https://developer.nexmo.com/api/redact#redact-message
29
31
  #
32
+ sig { params(params: T::Hash[Symbol, T.untyped]).returns(Nexmo::Response) }
30
33
  def transaction(params)
31
34
  request('/v1/redact/transaction', params: params, type: Post)
32
35
  end
@@ -1,4 +1,4 @@
1
- # typed: false
1
+ # typed: true
2
2
 
3
3
  module Nexmo
4
4
  class Response
@@ -1,4 +1,4 @@
1
- # typed: false
1
+ # typed: true
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Nexmo
@@ -1,4 +1,4 @@
1
- # typed: false
1
+ # typed: true
2
2
  # frozen_string_literal: true
3
3
  require 'openssl'
4
4
  require 'digest/md5'
@@ -115,7 +115,7 @@ module Nexmo
115
115
 
116
116
  sig { params(text: String).returns(T::Boolean) }
117
117
  def unicode?(text)
118
- !GSM7.encoded?(text)
118
+ !Nexmo::GSM7.encoded?(text)
119
119
  end
120
120
  end
121
121
  end
@@ -1,4 +1,4 @@
1
- # typed: false
1
+ # typed: true
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Nexmo
@@ -1,8 +1,9 @@
1
- # typed: false
1
+ # typed: strict
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Nexmo
5
5
  class Verify < Namespace
6
+ extend T::Sig
6
7
  alias_method :http_request, :request
7
8
 
8
9
  private :http_request
@@ -59,8 +60,9 @@ module Nexmo
59
60
  #
60
61
  # @see https://developer.nexmo.com/api/verify#verifyRequest
61
62
  #
62
- def request(params)
63
- response = http_request('/verify/json', params: params, type: Post)
63
+ sig { params(params: T.untyped, uri: T.untyped).returns(T.untyped) }
64
+ def request(params, uri = '/verify/json')
65
+ response = http_request(uri, params: params, type: Post)
64
66
 
65
67
  raise Error, response[:error_text] if error?(response)
66
68
 
@@ -91,6 +93,7 @@ module Nexmo
91
93
  #
92
94
  # @see https://developer.nexmo.com/api/verify#verifyCheck
93
95
  #
96
+ sig { params(params: T::Hash[Symbol, T.untyped]).returns(Nexmo::Response) }
94
97
  def check(params)
95
98
  response = http_request('/verify/check/json', params: params, type: Post)
96
99
 
@@ -117,6 +120,7 @@ module Nexmo
117
120
  #
118
121
  # @see https://developer.nexmo.com/api/verify#verifySearch
119
122
  #
123
+ sig { params(params: T::Hash[Symbol, T.untyped]).returns(T.any(T::Hash[Symbol, T.untyped], Nexmo::Response)) }
120
124
  def search(params)
121
125
  response = http_request('/verify/search/json', params: params)
122
126
 
@@ -143,6 +147,7 @@ module Nexmo
143
147
  #
144
148
  # @see https://developer.nexmo.com/api/verify#verifyControl
145
149
  #
150
+ sig { params(params: T::Hash[Symbol, T.untyped]).returns(T.untyped) }
146
151
  def control(params)
147
152
  response = http_request('/verify/control/json', params: params, type: Post)
148
153
 
@@ -162,6 +167,7 @@ module Nexmo
162
167
  #
163
168
  # @see https://developer.nexmo.com/api/verify#verifyControl
164
169
  #
170
+ sig { params(id: String).returns(Nexmo::Response) }
165
171
  def cancel(id)
166
172
  control(request_id: id, cmd: 'cancel')
167
173
  end
@@ -177,12 +183,69 @@ module Nexmo
177
183
  #
178
184
  # @see https://developer.nexmo.com/api/verify#verifyControl
179
185
  #
186
+ sig { params(id: String).returns(Nexmo::Response) }
180
187
  def trigger_next_event(id)
181
188
  control(request_id: id, cmd: 'trigger_next_event')
182
189
  end
183
190
 
191
+ # Send a PSD2-compliant payment token to a user for payment authorization
192
+ #
193
+ # @example
194
+ # response = client.verify.psd2(number: '447700900000', payee: 'Acme Inc', amount: 48.00)
195
+ #
196
+ # @option params [required, String] :number
197
+ # The mobile or landline phone number to verify.
198
+ # Unless you are setting **:country** explicitly, this number must be in E.164 format.
199
+ #
200
+ # @option params [String] :country
201
+ # If you do not provide **:number** in international format or you are not sure if **:number** is correctly formatted, specify the two-character country code in **:country**.
202
+ # Verify will then format the number for you.
203
+ #
204
+ # @option params [required, String] :payee
205
+ # An alphanumeric string to indicate to the user the name of the recipient that they are confirming a payment to.
206
+ #
207
+ # @option params [required, Float] :amount
208
+ # The decimal amount of the payment to be confirmed, in Euros
209
+ #
210
+ # @option params [Integer] :code_length
211
+ # The length of the verification code.
212
+ #
213
+ # @option params [String] :lg
214
+ # By default, the SMS or text-to-speech (TTS) message is generated in the locale that matches the **:number**.
215
+ # For example, the text message or TTS message for a `33*` number is sent in French.
216
+ # Use this parameter to explicitly control the language, accent and gender used for the Verify request.
217
+ #
218
+ # @option params [Integer] :pin_expiry
219
+ # How log the generated verification code is valid for, in seconds.
220
+ # When you specify both **:pin_expiry** and **:next_event_wait** then **:pin_expiry** must be an integer multiple of **:next_event_wait** otherwise **:pin_expiry** is defaulted to equal **:next_event_wait**.
221
+ # See [changing the event timings](https://developer.nexmo.com/verify/guides/changing-default-timings).
222
+ #
223
+ # @option params [Integer] :next_event_wait
224
+ # Specifies the wait time in seconds between attempts to deliver the verification code.
225
+ #
226
+ # @option params [Integer] :workflow_id
227
+ # Selects the predefined sequence of SMS and TTS (Text To Speech) actions to use in order to convey the PIN to your user.
228
+ # For example, an id of 1 identifies the workflow SMS - TTS - TTS.
229
+ # For a list of all workflows and their associated ids, please visit the [developer portal](https://developer.nexmo.com/verify/guides/workflows-and-events).
230
+ #
231
+ # @param [Hash] params
232
+ #
233
+ # @return [Response]
234
+ #
235
+ # @see https://developer.nexmo.com/api/verify#verifyRequestWithPSD2
236
+ #
237
+ sig { params(params: T.untyped, uri: T.untyped).returns(T.any(Nexmo::Error, Nexmo::Response)) }
238
+ def psd2(params, uri = '/verify/psd2/json')
239
+ response = http_request(uri, params: params, type: Post)
240
+
241
+ raise Error, response[:error_text] if error?(response)
242
+
243
+ response
244
+ end
245
+
184
246
  private
185
247
 
248
+ sig { params(response: T.untyped).returns(T::Boolean) }
186
249
  def error?(response)
187
250
  response.respond_to?(:error_text)
188
251
  end
@@ -1,5 +1,5 @@
1
1
  # typed: strong
2
2
 
3
3
  module Nexmo
4
- VERSION = '7.0.0'
4
+ VERSION = '7.2.1'
5
5
  end
@@ -1,4 +1,4 @@
1
- # typed: false
1
+ # typed: true
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Nexmo
@@ -1,4 +1,4 @@
1
- # typed: false
1
+ # typed: true
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Nexmo
@@ -1,4 +1,4 @@
1
- # typed: false
1
+ # typed: true
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Nexmo
@@ -1,4 +1,4 @@
1
- # typed: false
1
+ # typed: true
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Nexmo
@@ -12,10 +12,22 @@ Gem::Specification.new do |s|
12
12
  s.summary = 'This is the Ruby client library for Nexmo\'s API. To use it you\'ll need a Nexmo account. Sign up for free at https://www.nexmo.com'
13
13
  s.files = Dir.glob('lib/**/*.rb') + %w(LICENSE.txt README.md nexmo.gemspec)
14
14
  s.required_ruby_version = '>= 2.5.0'
15
- s.add_dependency('jwt', '~> 2')
15
+ s.add_dependency('nexmo-jwt', '~> 0.1.1')
16
16
  s.add_dependency('zeitwerk', '~> 2', '>= 2.2')
17
17
  s.add_dependency('sorbet-runtime', '~> 0.5')
18
+ s.add_development_dependency('timecop', '~> 0.9')
18
19
  s.require_path = 'lib'
20
+ s.post_install_message = <<~HEREDOC
21
+ This Ruby gem has moved to `vonage`!
22
+
23
+ We will support this last release of `nexmo` through October 2021 with any needed bug fixes or security fixes.
24
+
25
+ New features will only be relased under the new `vonage` gem, so make sure to switch as soon as you can.
26
+
27
+ To switch now, change your dependency in your `Gemfile` to `vonage` or run `gem install vonage` from the command line.
28
+
29
+ You can find more information on GitHub at https://github.com/Vonage/vonage-ruby-sdk.
30
+ HEREDOC
19
31
  s.metadata = {
20
32
  'homepage' => 'https://github.com/Nexmo/nexmo-ruby',
21
33
  'source_code_uri' => 'https://github.com/Nexmo/nexmo-ruby',
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nexmo
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.0.0
4
+ version: 7.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nexmo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-06 00:00:00.000000000 Z
11
+ date: 2020-09-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: jwt
14
+ name: nexmo-jwt
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '2'
19
+ version: 0.1.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '2'
26
+ version: 0.1.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: zeitwerk
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -58,6 +58,20 @@ dependencies:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
60
  version: '0.5'
61
+ - !ruby/object:Gem::Dependency
62
+ name: timecop
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '0.9'
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '0.9'
61
75
  description: Nexmo Client Library for Ruby
62
76
  email:
63
77
  - devrel@nexmo.com
@@ -132,7 +146,16 @@ metadata:
132
146
  bug_tracker_uri: https://github.com/Nexmo/nexmo-ruby/issues
133
147
  changelog_uri: https://github.com/Nexmo/nexmo-ruby/blob/master/CHANGES.md
134
148
  documentation_uri: https://www.rubydoc.info/github/nexmo/nexmo-ruby
135
- post_install_message:
149
+ post_install_message: |
150
+ This Ruby gem has moved to `vonage`!
151
+
152
+ We will support this last release of `nexmo` through October 2021 with any needed bug fixes or security fixes.
153
+
154
+ New features will only be relased under the new `vonage` gem, so make sure to switch as soon as you can.
155
+
156
+ To switch now, change your dependency in your `Gemfile` to `vonage` or run `gem install vonage` from the command line.
157
+
158
+ You can find more information on GitHub at https://github.com/Vonage/vonage-ruby-sdk.
136
159
  rdoc_options: []
137
160
  require_paths:
138
161
  - lib