vonage 7.20.0 → 8.0.0.beta

Sign up to get free protection for your applications and to get access to all the features.
Files changed (79) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +87 -386
  3. data/lib/vonage/applications.rb +4 -12
  4. data/lib/vonage/client.rb +0 -42
  5. data/lib/vonage/client_error.rb +1 -1
  6. data/lib/vonage/config.rb +1 -9
  7. data/lib/vonage/errors.rb +20 -37
  8. data/lib/vonage/gsm7.rb +1 -1
  9. data/lib/vonage/jwt.rb +0 -17
  10. data/lib/vonage/keys.rb +0 -2
  11. data/lib/vonage/logger.rb +3 -5
  12. data/lib/vonage/messaging/channels/viber.rb +1 -8
  13. data/lib/vonage/messaging/channels/whats_app.rb +1 -3
  14. data/lib/vonage/messaging.rb +0 -11
  15. data/lib/vonage/namespace.rb +57 -128
  16. data/lib/vonage/numbers.rb +6 -29
  17. data/lib/vonage/server_error.rb +1 -1
  18. data/lib/vonage/signature.rb +5 -5
  19. data/lib/vonage/sms.rb +20 -20
  20. data/lib/vonage/version.rb +1 -1
  21. data/lib/vonage/video/archives.rb +53 -18
  22. data/lib/vonage/video/list_response.rb +11 -0
  23. data/lib/vonage/video/moderation.rb +22 -7
  24. data/lib/vonage/video/signals.rb +9 -4
  25. data/lib/vonage/video/streams.rb +12 -6
  26. data/lib/vonage/video.rb +13 -31
  27. data/lib/vonage/voice/actions/connect.rb +3 -27
  28. data/lib/vonage/voice/actions/conversation.rb +2 -2
  29. data/lib/vonage/voice/actions/pay.rb +107 -0
  30. data/lib/vonage/voice/actions/talk.rb +2 -11
  31. data/lib/vonage/voice/talk.rb +1 -11
  32. data/lib/vonage/voice.rb +0 -22
  33. data/lib/vonage.rb +0 -2
  34. data/vonage.gemspec +1 -2
  35. metadata +9 -65
  36. data/lib/vonage/api_error.rb +0 -33
  37. data/lib/vonage/meetings/applications.rb +0 -25
  38. data/lib/vonage/meetings/dial_in_numbers/list_response.rb +0 -11
  39. data/lib/vonage/meetings/dial_in_numbers.rb +0 -23
  40. data/lib/vonage/meetings/recordings.rb +0 -36
  41. data/lib/vonage/meetings/rooms/list_response.rb +0 -11
  42. data/lib/vonage/meetings/rooms.rb +0 -155
  43. data/lib/vonage/meetings/sessions/list_response.rb +0 -11
  44. data/lib/vonage/meetings/sessions.rb +0 -28
  45. data/lib/vonage/meetings/themes/list_response.rb +0 -11
  46. data/lib/vonage/meetings/themes.rb +0 -218
  47. data/lib/vonage/meetings.rb +0 -38
  48. data/lib/vonage/number_insight_2.rb +0 -36
  49. data/lib/vonage/proactive_connect/events/list_response.rb +0 -11
  50. data/lib/vonage/proactive_connect/events.rb +0 -68
  51. data/lib/vonage/proactive_connect/item.rb +0 -104
  52. data/lib/vonage/proactive_connect/items/file_response.rb +0 -32
  53. data/lib/vonage/proactive_connect/items/list_response.rb +0 -11
  54. data/lib/vonage/proactive_connect/items.rb +0 -107
  55. data/lib/vonage/proactive_connect/list.rb +0 -168
  56. data/lib/vonage/proactive_connect/lists/list_response.rb +0 -11
  57. data/lib/vonage/proactive_connect/lists.rb +0 -35
  58. data/lib/vonage/proactive_connect.rb +0 -33
  59. data/lib/vonage/subaccounts/balance_transfers/list_response.rb +0 -11
  60. data/lib/vonage/subaccounts/credit_transfers/list_response.rb +0 -11
  61. data/lib/vonage/subaccounts/list_response.rb +0 -15
  62. data/lib/vonage/subaccounts.rb +0 -203
  63. data/lib/vonage/users/list_response.rb +0 -11
  64. data/lib/vonage/users.rb +0 -156
  65. data/lib/vonage/verify2/channels/email.rb +0 -36
  66. data/lib/vonage/verify2/channels/silent_auth.rb +0 -45
  67. data/lib/vonage/verify2/channels/sms.rb +0 -53
  68. data/lib/vonage/verify2/channels/voice.rb +0 -32
  69. data/lib/vonage/verify2/channels/whats_app.rb +0 -38
  70. data/lib/vonage/verify2/channels/whats_app_interactive.rb +0 -32
  71. data/lib/vonage/verify2/start_verification_options.rb +0 -62
  72. data/lib/vonage/verify2/workflow.rb +0 -39
  73. data/lib/vonage/verify2/workflow_builder.rb +0 -25
  74. data/lib/vonage/verify2.rb +0 -93
  75. data/lib/vonage/video/archives/list_response.rb +0 -11
  76. data/lib/vonage/video/broadcasts/list_response.rb +0 -11
  77. data/lib/vonage/video/broadcasts.rb +0 -75
  78. data/lib/vonage/video/sip.rb +0 -48
  79. data/lib/vonage/video/streams/list_response.rb +0 -11
data/lib/vonage/users.rb DELETED
@@ -1,156 +0,0 @@
1
- # typed: strict
2
- # frozen_string_literal: true
3
-
4
- module Vonage
5
- class Users < Namespace
6
- extend T::Sig
7
- self.authentication = BearerToken
8
-
9
- self.request_body = JSON
10
-
11
- # Get a list of Users associated with the Vonage Application.
12
- #
13
- # @param [optional, Integer] :page_size
14
- # Specifies the number of records to be returned in the response.
15
- #
16
- # @param [optional, String] :order
17
- # Specifies the order in which the records should be returned.
18
- # Must be one of `asc`, `ASC`, `desc`, or `DESC`
19
- #
20
- # @param [optional, String] :cursor
21
- # Specficy a cursor point from which to start returning results, for example the values of the `next` or `prev`
22
- # `_links` contained in a response.
23
- #
24
- # @param [optional, String] :name
25
- # Specify a user name with which to filter results
26
- #
27
- # @return [ListResponse]
28
- #
29
- # @see https://developer.vonage.com/en/api/application.v2#getUsers
30
- #
31
- def list(**params)
32
- request('/v1/users', params: params, response_class: ListResponse)
33
- end
34
-
35
- # Get a specified User associated with the Vonage Application.
36
- #
37
- # @param [required, String] :id
38
- # The unique ID or name for the user.
39
- #
40
- # @return [Vonage::Response]
41
- #
42
- # @see https://developer.vonage.com/en/api/application.v2#getUser
43
- #
44
- def find(id:)
45
- request("/v1/users/#{id}")
46
- end
47
-
48
- # Create a new User associated with the Vonage Application.
49
- #
50
- # @param [optional, String] :name
51
- # A unique name for the user. If not provided, a name will be auto-generated.
52
- #
53
- # @param [optional, String] :display_name
54
- # A string to be displayed as user name. It does not need to be unique.
55
- #
56
- # @param [optional, String] :image_url
57
- # A publicly accessible URL to an image file for an image to be associated with the user.
58
- #
59
- # @param [optional, Hash] :properties A hash defining properties for the User.
60
- # @option properties [Hash] :custom_data A hash of custom data as key/value pairs.
61
- #
62
- # @param [optional, Hash] :channels A hash defining details of various channels.
63
- # @option channels [Array] :pstn An array containing a Hash which defines data for the pstn channel.
64
- # @option pstn [Integer] :number The pstn number.
65
- # @option channels [Array] :sip An array containing a Hash which defines data for the sip channel.
66
- # @option sip [String] :uri The sip uri.
67
- # @option sip [String] :username The sip username.
68
- # @option sip [String] :password The sip password.
69
- # @option channels [Array] :vbc An array containing a Hash which defines data for the vbc channel.
70
- # @option vbc [String] :extension The vbc extension.
71
- # @option channels [Array] :websocket An array containing a Hash which defines data for the websocket channel.
72
- # @option websocket [String] :uri The websocket uri.
73
- # @option websocket [String] :content-type The websocket audio type. Must be one of: `audio/l16;rate=8000`, `audio/l16;rate=16000`.
74
- # @option websocket [Hash] :headers A hash of custom websocket headers provided as key/value pairs.
75
- # @option channels [Array] :sms An array containing a Hash which defines data for the sms channel.
76
- # @option sms [Integer] :number The sms number.
77
- # @option channels [Array] :mms An array containing a Hash which defines data for the mms channel.
78
- # @option mms [Integer] :number The mms number.
79
- # @option channels [Array] :whatsapp An array containing a Hash which defines data for the whatsapp channel.
80
- # @option whatsapp [Integer] :number The whatsapp number.
81
- # @option channels [Array] :viber An array containing a Hash which defines data for the sms channel.
82
- # @option viber [Integer] :number The viber number.
83
- # @option channels [Array] :messenger An array containing a Hash which defines data for the messenger channel.
84
- # @option messenger [Integer] :id The messenger id.
85
- #
86
- # @return [Vonage::Response]
87
- #
88
- # @see https://developer.vonage.com/en/api/application.v2#createUser
89
- #
90
- def create(**params)
91
- request('/v1/users', params: params, type: Post)
92
- end
93
-
94
- # Update an existing User associated with the Vonage Application.
95
- #
96
- # @param [required, String] :id
97
- # The unique ID or name for the user to be updated.
98
- #
99
- # @param [optional, String] :name
100
- # A unique name for the user.
101
- #
102
- # @param [optional, String] :display_name
103
- # A string to be displayed as user name. It does not need to be unique.
104
- #
105
- # @param [optional, String] :image_url
106
- # A publicly accessible URL to an image file for an image to be associated with the user.
107
- #
108
- # @param [optional, Hash] :properties A hash defining properties for the User.
109
- # @option properties [Hash] :custom_data A hash of custom data as key/value pairs.
110
- #
111
- # @param [optional, Hash] :channels A hash defining details of various channels.
112
- # @option channels [Array] :pstn An array containing a Hash which defines data for the pstn channel.
113
- # @option pstn [Integer] :number The pstn number.
114
- # @option channels [Array] :sip An array containing a Hash which defines data for the sip channel.
115
- # @option sip [String] :uri The sip uri.
116
- # @option sip [String] :username The sip username.
117
- # @option sip [String] :password The sip password.
118
- # @option channels [Array] :vbc An array containing a Hash which defines data for the vbc channel.
119
- # @option vbc [String] :extension The vbc extension.
120
- # @option channels [Array] :websocket An array containing a Hash which defines data for the websocket channel.
121
- # @option websocket [String] :uri The websocket uri.
122
- # @option websocket [String] :content-type The websocket audio type. Must be one of: `audio/l16;rate=8000`, `audio/l16;rate=16000`.
123
- # @option websocket [Hash] :headers A hash of custom websocket headers provided as key/value pairs.
124
- # @option channels [Array] :sms An array containing a Hash which defines data for the sms channel.
125
- # @option sms [Integer] :number The sms number.
126
- # @option channels [Array] :mms An array containing a Hash which defines data for the mms channel.
127
- # @option mms [Integer] :number The mms number.
128
- # @option channels [Array] :whatsapp An array containing a Hash which defines data for the whatsapp channel.
129
- # @option whatsapp [Integer] :number The whatsapp number.
130
- # @option channels [Array] :viber An array containing a Hash which defines data for the sms channel.
131
- # @option viber [Integer] :number The viber number.
132
- # @option channels [Array] :messenger An array containing a Hash which defines data for the messenger channel.
133
- # @option messenger [Integer] :id The messenger id.
134
- #
135
- # @return [Vonage::Response]
136
- #
137
- # @see https://developer.vonage.com/en/api/application.v2#createUser
138
- #
139
- def update(id:, **params)
140
- request("/v1/users/#{id}", params: params, type: Patch)
141
- end
142
-
143
- # Delete a specified User associated with the Vonage Application.
144
- #
145
- # @param [required, String] :id
146
- # The unique ID or name for the user.
147
- #
148
- # @return [Vonage::Response]
149
- #
150
- # @see https://developer.vonage.com/en/api/application.v2#deleteUser
151
- #
152
- def delete(id:)
153
- request("/v1/users/#{id}", type: Delete)
154
- end
155
- end
156
- end
@@ -1,36 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
- require 'phonelib'
4
-
5
- module Vonage
6
- class Verify2::Channels::Email
7
-
8
- attr_reader :channel, :to, :from
9
-
10
- def initialize(to:, from: nil)
11
- self.channel = 'email'
12
- self.to = to
13
- self.from = from unless from.nil?
14
- end
15
-
16
- def to=(to)
17
- @to = to
18
- end
19
-
20
- def from=(from)
21
- @from = from
22
- end
23
-
24
- def to_h
25
- hash = Hash.new
26
- self.instance_variables.each do |ivar|
27
- hash[ivar.to_s.delete("@").to_sym] = self.instance_variable_get(ivar)
28
- end
29
- hash
30
- end
31
-
32
- private
33
-
34
- attr_writer :channel
35
- end
36
- end
@@ -1,45 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
- require 'phonelib'
4
- require 'uri'
5
-
6
- module Vonage
7
- class Verify2::Channels::SilentAuth
8
-
9
- attr_reader :channel, :to, :sandbox, :redirect_url
10
-
11
- def initialize(to:, redirect_url: nil, sandbox: nil)
12
- self.channel = 'silent_auth'
13
- self.to = to
14
- self.redirect_url = redirect_url unless redirect_url.nil?
15
- self.sandbox = sandbox unless sandbox.nil?
16
- end
17
-
18
- def to=(to)
19
- raise ArgumentError, "Invalid 'to' value #{to}. Expected to be in E.164 format" unless Phonelib.parse(to.to_i).valid?
20
- @to = to
21
- end
22
-
23
- def redirect_url=(redirect_url)
24
- raise ArgumentError, "Invalid 'to' value #{redirect_url}. Expected to be a valid URL" unless URI.parse(redirect_url).is_a?(URI::HTTP)
25
- @redirect_url = redirect_url
26
- end
27
-
28
- def sandbox=(sandbox)
29
- raise ArgumentError, "Invalid 'sandbox' value #{sandbox}. Expected to be boolean value" unless [true, false].include? sandbox
30
- @sandbox = sandbox
31
- end
32
-
33
- def to_h
34
- hash = Hash.new
35
- self.instance_variables.each do |ivar|
36
- hash[ivar.to_s.delete("@").to_sym] = self.instance_variable_get(ivar)
37
- end
38
- hash
39
- end
40
-
41
- private
42
-
43
- attr_writer :channel
44
- end
45
- end
@@ -1,53 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
- require 'phonelib'
4
-
5
- module Vonage
6
- class Verify2::Channels::SMS
7
- APP_HASH_LENGTH = 11
8
-
9
- attr_reader :channel, :to, :from, :entity_id, :content_id, :app_hash
10
-
11
- def initialize(to:, app_hash: nil)
12
- self.channel = 'sms'
13
- self.to = to
14
- self.app_hash = app_hash unless app_hash.nil?
15
- end
16
-
17
- def to=(to)
18
- raise ArgumentError, "Invalid 'to' value #{to}. Expected to be in E.164 format" unless Phonelib.parse(to).valid?
19
- @to = to
20
- end
21
-
22
- def from=(from)
23
- @from = from
24
- end
25
-
26
- def entity_id=(entity_id)
27
- raise ArgumentError, "Invalid 'entity_id' value #{entity_id}. Length must be between 1 and 20 characters." unless entity_id.length.between?(1, 20)
28
- @entity_id = entity_id
29
- end
30
-
31
- def content_id=(content_id)
32
- raise ArgumentError, "Invalid 'content_id' value #{content_id}. Length must be between 1 and 20 characters ." unless content_id.length.between?(1, 20)
33
- @content_id = content_id
34
- end
35
-
36
- def app_hash=(app_hash)
37
- raise ArgumentError, "Invalid 'app_hash' value #{app_hash}. Length must be #{APP_HASH_LENGTH}" unless app_hash.length == APP_HASH_LENGTH
38
- @app_hash = app_hash
39
- end
40
-
41
- def to_h
42
- hash = Hash.new
43
- self.instance_variables.each do |ivar|
44
- hash[ivar.to_s.delete("@").to_sym] = self.instance_variable_get(ivar)
45
- end
46
- hash
47
- end
48
-
49
- private
50
-
51
- attr_writer :channel
52
- end
53
- end
@@ -1,32 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
- require 'phonelib'
4
-
5
- module Vonage
6
- class Verify2::Channels::Voice
7
-
8
- attr_reader :channel, :to
9
-
10
- def initialize(to:)
11
- self.channel = 'voice'
12
- self.to = to
13
- end
14
-
15
- def to=(to)
16
- raise ArgumentError, "Invalid 'to' value #{to}. Expected to be in E.164 format" unless Phonelib.parse(to.to_i).valid?
17
- @to = to
18
- end
19
-
20
- def to_h
21
- hash = Hash.new
22
- self.instance_variables.each do |ivar|
23
- hash[ivar.to_s.delete("@").to_sym] = self.instance_variable_get(ivar)
24
- end
25
- hash
26
- end
27
-
28
- private
29
-
30
- attr_writer :channel
31
- end
32
- end
@@ -1,38 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
- require 'phonelib'
4
-
5
- module Vonage
6
- class Verify2::Channels::WhatsApp
7
-
8
- attr_reader :channel, :to, :from
9
-
10
- def initialize(to:, from: nil)
11
- self.channel = 'whatsapp'
12
- self.to = to
13
- self.from = from unless from.nil?
14
- end
15
-
16
- def to=(to)
17
- raise ArgumentError, "Invalid 'to' value #{to}. Expected to be in E.164 format" unless Phonelib.parse(to.to_i).valid?
18
- @to = to
19
- end
20
-
21
- def from=(from)
22
- raise ArgumentError, "Invalid 'from' value #{from}. Expected to be in E.164 format" unless Phonelib.parse(from.to_i).valid?
23
- @from = from
24
- end
25
-
26
- def to_h
27
- hash = Hash.new
28
- self.instance_variables.each do |ivar|
29
- hash[ivar.to_s.delete("@").to_sym] = self.instance_variable_get(ivar)
30
- end
31
- hash
32
- end
33
-
34
- private
35
-
36
- attr_writer :channel
37
- end
38
- end
@@ -1,32 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
- require 'phonelib'
4
-
5
- module Vonage
6
- class Verify2::Channels::WhatsAppInteractive
7
-
8
- attr_reader :channel, :to
9
-
10
- def initialize(to:)
11
- self.channel = 'whatsapp_interactive'
12
- self.to = to
13
- end
14
-
15
- def to=(to)
16
- raise ArgumentError, "Invalid 'to' value #{to}. Expected to be in E.164 format" unless Phonelib.parse(to.to_i).valid?
17
- @to = to
18
- end
19
-
20
- def to_h
21
- hash = Hash.new
22
- self.instance_variables.each do |ivar|
23
- hash[ivar.to_s.delete("@").to_sym] = self.instance_variable_get(ivar)
24
- end
25
- hash
26
- end
27
-
28
- private
29
-
30
- attr_writer :channel
31
- end
32
- end
@@ -1,62 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
-
4
- module Vonage
5
- class Verify2::StartVerificationOptions
6
- VALID_OPTS = [:locale, :channel_timeout, :client_ref, :code_length, :code, :fraud_check].freeze
7
-
8
- MIN_CHANNEL_TIMEOUT, MAX_CHANNEL_TIMEOUT = [60, 900]
9
-
10
- MIN_CODE_LENGTH, MAX_CODE_LENGTH = [4, 10]
11
-
12
- attr_reader(*VALID_OPTS)
13
-
14
- def initialize(**opts)
15
- VALID_OPTS.each do |opt|
16
- send("#{opt}=", opts[opt]) unless opts[opt].nil?
17
- end
18
- end
19
-
20
- def locale=(locale)
21
- @locale = locale
22
- end
23
-
24
- def channel_timeout=(channel_timeout)
25
- unless channel_timeout.between?(MIN_CHANNEL_TIMEOUT, MAX_CHANNEL_TIMEOUT)
26
- raise ArgumentError, "Invalid 'channel_timeout' #{channel_timeout}. Must be between #{MIN_CHANNEL_TIMEOUT} and #{MAX_CHANNEL_TIMEOUT} (inclusive)"
27
- end
28
-
29
- @channel_timeout = channel_timeout
30
- end
31
-
32
- def client_ref=(client_ref)
33
- @client_ref = client_ref
34
- end
35
-
36
- def code_length=(code_length)
37
- unless code_length.between?(MIN_CODE_LENGTH, MAX_CODE_LENGTH)
38
- raise ArgumentError, "Invalid 'code_length' #{code_length}. Must be between #{MIN_CODE_LENGTH} and #{MAX_CODE_LENGTH} (inclusive)"
39
- end
40
-
41
- @code_length = code_length
42
- end
43
-
44
- def code=(code)
45
- @code = code
46
- end
47
-
48
- def fraud_check=(fraud_check)
49
- raise ArgumentError, "Invalid 'fraud_check' #{fraud_check}. Must be `false`" unless fraud_check == false
50
-
51
- @fraud_check = fraud_check
52
- end
53
-
54
- def to_h
55
- hash = Hash.new
56
- self.instance_variables.each do |ivar|
57
- hash[ivar.to_s.delete("@").to_sym] = self.instance_variable_get(ivar)
58
- end
59
- hash
60
- end
61
- end
62
- end
@@ -1,39 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
-
4
- module Vonage
5
- class Verify2::Workflow
6
- CHANNELS = {
7
- sms: Verify2::Channels::SMS,
8
- whatsapp: Verify2::Channels::WhatsApp,
9
- whatsapp_interactive: Verify2::Channels::WhatsAppInteractive,
10
- voice: Verify2::Channels::Voice,
11
- email: Verify2::Channels::Email,
12
- silent_auth: Verify2::Channels::SilentAuth
13
- }
14
-
15
- CHANNELS.keys.each do |method|
16
- define_method method do |attributes|
17
- CHANNELS[method].new(**attributes)
18
- end
19
- end
20
-
21
- def self.method_missing(method)
22
- raise ClientError.new("Workflow channel must be one of the valid options. Please refer to https://developer.vonage.com/en/api/verify.v2#newRequest for a complete list.")
23
- end
24
-
25
- attr_reader :list
26
-
27
- def initialize
28
- @list = []
29
- end
30
-
31
- def <<(workflow)
32
- list << workflow
33
- end
34
-
35
- def hashified_list
36
- list.map(&:to_h)
37
- end
38
- end
39
- end
@@ -1,25 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
-
4
- module Vonage
5
- class Verify2::WorkflowBuilder
6
-
7
- def self.build
8
- builder = self.new
9
- yield builder if block_given?
10
- builder.workflow
11
- end
12
-
13
- attr_reader :workflow
14
-
15
- def initialize
16
- @workflow = Vonage::Verify2::Workflow.new
17
- end
18
-
19
- Vonage::Verify2::Workflow::CHANNELS.keys.each do |channel|
20
- define_method "add_#{channel.to_s}" do |args|
21
- workflow << workflow.send(channel, **args)
22
- end
23
- end
24
- end
25
- end
@@ -1,93 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
-
4
- module Vonage
5
- class Verify2 < Namespace
6
- self.authentication = BearerToken
7
-
8
- self.request_body = JSON
9
-
10
- # Request a verification be sent to a user.
11
- #
12
- # @example
13
- # verification_request = client.verify2.start_verification(
14
- # brand: 'Acme',
15
- # workflow: [{channel: 'sms', to: '447000000000'}],
16
- # code_length: 6
17
- # )
18
- #
19
- # @param [required, String] :brand The brand that is sending the verification request
20
- #
21
- # @param [required, Array<Hash>] :workflow An array of hashes for channels in the workflow
22
- #
23
- # @param [optional, Hash] opts the options for the verification request.
24
- # @option opts [Integer] :code_length The length of the one-time code provided to the end-user
25
- # @option opts [String] :code An optional alphanumeric custom code to use instead of an auto-generated code
26
- # @option opts [String] :locale The language to use for the verification message (where applicable)
27
- # @option opts [Integer] :channel_timeout Wait time in seconds before trying the next channel in the workflow
28
- # @option opts [String] :client_ref Reference to be included in callbacks
29
- # @option opts [Boolean] If used, must be set to `false`. Will bypass a network block for a single Verify V2 request
30
- #
31
- # @return Vonage::Response
32
- # @see https://developer.vonage.com/en/api/verify.v2#newRequest
33
- #
34
- def start_verification(brand:, workflow:, **opts)
35
- raise ArgumentError, ':workflow must be an Array' unless workflow.is_a?(Array)
36
- raise ArgumentError, ':workflow must not be empty' if workflow.empty?
37
-
38
- request('/v2/verify/', params: opts.merge(brand: brand, workflow: workflow), type: Post)
39
- end
40
-
41
- # Check a supplied code against a request to see if it is valid.
42
- #
43
- # @example
44
- # code_check = client.verify2.check_code(request_id: '7e8c5965-0a3f-44df-8a14-f1486209d8a2', code: '1234')
45
- #
46
- # @param [required, String] :request_id The request_id of the verification request being checked
47
- #
48
- # @param [required, String] :code The code supplied to the end-user by the verification request
49
- #
50
- # @see https://developer.vonage.com/en/api/verify.v2#checkCode
51
- #
52
- def check_code(request_id:, code:)
53
- request('/v2/verify/' + request_id, params: {code: code}, type: Post)
54
- end
55
-
56
- # Cancel a verifiction. If a verification request is still active, calling this method aborts the workflow.
57
- #
58
- # @example
59
- # client.verify2.cancel_verification_request(request_id: '7e8c5965-0a3f-44df-8a14-f1486209d8a2')
60
- #
61
- # @param [required, String] :request_id The request_id of the verification request to be cancelled
62
- #
63
- # @see https://developer.vonage.com/en/api/verify.v2#cancelRequest
64
- #
65
- def cancel_verification_request(request_id:)
66
- request('/v2/verify/' + request_id, type: Delete)
67
- end
68
-
69
- # Instantiate a new Vonage::Verify2::StartVerificationOptions object
70
- #
71
- # @param [optional, Hash] opts the options for the verification request.
72
- # @option opts [Integer] :code_length The length of the one-time code provided to the end-user
73
- # @option opts [String] :code An optional alphanumeric custom code to use instead of an auto-generated code
74
- # @option opts [String] :locale The language to use for the verification message (where applicable)
75
- # @option opts [Integer] :channel_timeout Wait time in seconds before trying the next channel in the workflow
76
- # @option opts [String] :client_ref Reference to be included in callbacks
77
- # @option opts [Boolean] If used, must be set to `false`. Will bypass a network block for a single Verify V2 request
78
- #
79
- def start_verification_options(**opts)
80
- StartVerificationOptions.new(**opts)
81
- end
82
-
83
- # Instantiate a new Vonage::Verify2::Workflow object
84
- def workflow
85
- Workflow.new
86
- end
87
-
88
- # Return the Vonage::Verify2::WorkflowBuilder class
89
- def workflow_builder
90
- WorkflowBuilder.itself
91
- end
92
- end
93
- end
@@ -1,11 +0,0 @@
1
- # typed: true
2
-
3
- class Vonage::Video::Archives::ListResponse < Vonage::Response
4
- include Enumerable
5
-
6
- def each
7
- return enum_for(:each) unless block_given?
8
-
9
- @entity.items.each { |item| yield item }
10
- end
11
- end
@@ -1,11 +0,0 @@
1
- # typed: true
2
-
3
- class Vonage::Video::Broadcasts::ListResponse < Vonage::Response
4
- include Enumerable
5
-
6
- def each
7
- return enum_for(:each) unless block_given?
8
-
9
- @entity.items.each { |item| yield item }
10
- end
11
- end