vonage 7.20.0 → 8.0.0.beta

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.
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