vonage 7.8.2 → 7.36.0
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.
- checksums.yaml +4 -4
- data/README.md +880 -87
- data/lib/vonage/account.rb +2 -0
- data/lib/vonage/api_error.rb +33 -0
- data/lib/vonage/applications.rb +12 -4
- data/lib/vonage/basic.rb +1 -1
- data/lib/vonage/basic_and_bearer_token.rb +18 -0
- data/lib/vonage/basic_and_signature.rb +22 -0
- data/lib/vonage/bearer_token.rb +1 -1
- data/lib/vonage/client.rb +79 -0
- data/lib/vonage/client_error.rb +1 -1
- data/lib/vonage/config.rb +11 -1
- data/lib/vonage/conversation/event/list_response.rb +11 -0
- data/lib/vonage/conversation/event.rb +108 -0
- data/lib/vonage/conversation/list_response.rb +11 -0
- data/lib/vonage/conversation/member/list_response.rb +11 -0
- data/lib/vonage/conversation/member.rb +134 -0
- data/lib/vonage/conversation/user/conversations_list_response.rb +11 -0
- data/lib/vonage/conversation/user/sessions_list_response.rb +11 -0
- data/lib/vonage/conversation/user.rb +67 -0
- data/lib/vonage/conversation.rb +164 -0
- data/lib/vonage/conversations/events.rb +12 -0
- data/lib/vonage/conversations/legs.rb +6 -0
- data/lib/vonage/conversations/members.rb +15 -0
- data/lib/vonage/conversations/users.rb +15 -0
- data/lib/vonage/conversations.rb +30 -0
- data/lib/vonage/conversions.rb +2 -0
- data/lib/vonage/errors.rb +37 -20
- data/lib/vonage/http.rb +3 -3
- data/lib/vonage/identity_insights/insights_builder.rb +75 -0
- data/lib/vonage/identity_insights.rb +75 -0
- data/lib/vonage/jwt.rb +17 -0
- data/lib/vonage/key_secret_params.rb +3 -2
- data/lib/vonage/keys.rb +24 -1
- data/lib/vonage/logger.rb +0 -3
- data/lib/vonage/meetings/applications.rb +28 -0
- data/lib/vonage/meetings/dial_in_numbers/list_response.rb +11 -0
- data/lib/vonage/meetings/dial_in_numbers.rb +26 -0
- data/lib/vonage/meetings/recordings.rb +42 -0
- data/lib/vonage/meetings/rooms/list_response.rb +11 -0
- data/lib/vonage/meetings/rooms.rb +167 -0
- data/lib/vonage/meetings/sessions/list_response.rb +11 -0
- data/lib/vonage/meetings/sessions.rb +31 -0
- data/lib/vonage/meetings/themes/list_response.rb +11 -0
- data/lib/vonage/meetings/themes.rb +239 -0
- data/lib/vonage/meetings.rb +50 -0
- data/lib/vonage/messaging/channels/messenger.rb +2 -0
- data/lib/vonage/messaging/channels/mms.rb +13 -3
- data/lib/vonage/messaging/channels/rcs.rb +44 -0
- data/lib/vonage/messaging/channels/sms.rb +2 -0
- data/lib/vonage/messaging/channels/viber.rb +11 -2
- data/lib/vonage/messaging/channels/whats_app.rb +5 -1
- data/lib/vonage/messaging/message.rb +4 -1
- data/lib/vonage/messaging.rb +43 -4
- data/lib/vonage/namespace.rb +152 -69
- data/lib/vonage/network_authentication/client_authentication.rb +39 -0
- data/lib/vonage/network_authentication/server_authentication.rb +47 -0
- data/lib/vonage/network_authentication.rb +22 -0
- data/lib/vonage/network_number_verification.rb +92 -0
- data/lib/vonage/network_sim_swap.rb +84 -0
- data/lib/vonage/number_insight.rb +1 -0
- data/lib/vonage/number_insight_2.rb +21 -0
- data/lib/vonage/numbers.rb +40 -17
- data/lib/vonage/proactive_connect/events/list_response.rb +11 -0
- data/lib/vonage/proactive_connect/events.rb +71 -0
- data/lib/vonage/proactive_connect/item.rb +116 -0
- data/lib/vonage/proactive_connect/items/file_response.rb +32 -0
- data/lib/vonage/proactive_connect/items/list_response.rb +11 -0
- data/lib/vonage/proactive_connect/items.rb +116 -0
- data/lib/vonage/proactive_connect/list.rb +186 -0
- data/lib/vonage/proactive_connect/lists/list_response.rb +11 -0
- data/lib/vonage/proactive_connect/lists.rb +38 -0
- data/lib/vonage/proactive_connect.rb +43 -0
- data/lib/vonage/server_error.rb +1 -1
- data/lib/vonage/signature.rb +29 -6
- data/lib/vonage/sms.rb +25 -0
- data/lib/vonage/subaccounts/balance_transfers/list_response.rb +11 -0
- data/lib/vonage/subaccounts/credit_transfers/list_response.rb +11 -0
- data/lib/vonage/subaccounts/list_response.rb +15 -0
- data/lib/vonage/subaccounts.rb +203 -0
- data/lib/vonage/users/list_response.rb +11 -0
- data/lib/vonage/users.rb +156 -0
- data/lib/vonage/verify.rb +2 -0
- data/lib/vonage/verify2/channels/email.rb +36 -0
- data/lib/vonage/verify2/channels/silent_auth.rb +46 -0
- data/lib/vonage/verify2/channels/sms.rb +63 -0
- data/lib/vonage/verify2/channels/voice.rb +32 -0
- data/lib/vonage/verify2/channels/whats_app.rb +45 -0
- data/lib/vonage/verify2/channels/whats_app_interactive.rb +32 -0
- data/lib/vonage/verify2/start_verification_options.rb +63 -0
- data/lib/vonage/verify2/template_fragments/list_response.rb +11 -0
- data/lib/vonage/verify2/template_fragments.rb +125 -0
- data/lib/vonage/verify2/templates/list_response.rb +11 -0
- data/lib/vonage/verify2/templates.rb +86 -0
- data/lib/vonage/verify2/workflow.rb +39 -0
- data/lib/vonage/verify2/workflow_builder.rb +25 -0
- data/lib/vonage/verify2.rb +112 -0
- data/lib/vonage/version.rb +1 -1
- data/lib/vonage/video/archives/list_response.rb +11 -0
- data/lib/vonage/video/archives.rb +164 -0
- data/lib/vonage/video/broadcasts/list_response.rb +11 -0
- data/lib/vonage/video/broadcasts.rb +75 -0
- data/lib/vonage/video/captions.rb +67 -0
- data/lib/vonage/video/connections/list_response.rb +11 -0
- data/lib/vonage/video/connections.rb +29 -0
- data/lib/vonage/video/moderation.rb +58 -0
- data/lib/vonage/video/renders/list_response.rb +11 -0
- data/lib/vonage/video/renders.rb +107 -0
- data/lib/vonage/video/signals.rb +50 -0
- data/lib/vonage/video/sip.rb +48 -0
- data/lib/vonage/video/streams/list_response.rb +11 -0
- data/lib/vonage/video/streams.rb +70 -0
- data/lib/vonage/video/web_socket.rb +68 -0
- data/lib/vonage/video.rb +134 -0
- data/lib/vonage/voice/actions/connect.rb +45 -9
- data/lib/vonage/voice/actions/conversation.rb +10 -4
- data/lib/vonage/voice/actions/input.rb +26 -3
- data/lib/vonage/voice/actions/notify.rb +8 -3
- data/lib/vonage/voice/actions/record.rb +52 -4
- data/lib/vonage/voice/actions/stream.rb +7 -3
- data/lib/vonage/voice/actions/talk.rb +29 -4
- data/lib/vonage/voice/actions/transfer.rb +83 -0
- data/lib/vonage/voice/actions/wait.rb +43 -0
- data/lib/vonage/voice/ncco.rb +3 -1
- data/lib/vonage/voice/talk.rb +11 -1
- data/lib/vonage/voice.rb +24 -0
- data/lib/vonage.rb +4 -0
- data/vonage.gemspec +3 -1
- metadata +119 -9
- data/lib/vonage/voice/actions/pay.rb +0 -107
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: vonage
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 7.
|
|
4
|
+
version: 7.36.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Vonage
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: vonage-jwt
|
|
@@ -16,14 +15,14 @@ dependencies:
|
|
|
16
15
|
requirements:
|
|
17
16
|
- - "~>"
|
|
18
17
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: 0.
|
|
18
|
+
version: 0.2.0
|
|
20
19
|
type: :runtime
|
|
21
20
|
prerelease: false
|
|
22
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
22
|
requirements:
|
|
24
23
|
- - "~>"
|
|
25
24
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: 0.
|
|
25
|
+
version: 0.2.0
|
|
27
26
|
- !ruby/object:Gem::Dependency
|
|
28
27
|
name: zeitwerk
|
|
29
28
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -58,6 +57,40 @@ dependencies:
|
|
|
58
57
|
- - "~>"
|
|
59
58
|
- !ruby/object:Gem::Version
|
|
60
59
|
version: '0.5'
|
|
60
|
+
- !ruby/object:Gem::Dependency
|
|
61
|
+
name: multipart-post
|
|
62
|
+
requirement: !ruby/object:Gem::Requirement
|
|
63
|
+
requirements:
|
|
64
|
+
- - "~>"
|
|
65
|
+
- !ruby/object:Gem::Version
|
|
66
|
+
version: '2.0'
|
|
67
|
+
type: :runtime
|
|
68
|
+
prerelease: false
|
|
69
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
70
|
+
requirements:
|
|
71
|
+
- - "~>"
|
|
72
|
+
- !ruby/object:Gem::Version
|
|
73
|
+
version: '2.0'
|
|
74
|
+
- !ruby/object:Gem::Dependency
|
|
75
|
+
name: net-http-persistent
|
|
76
|
+
requirement: !ruby/object:Gem::Requirement
|
|
77
|
+
requirements:
|
|
78
|
+
- - "~>"
|
|
79
|
+
- !ruby/object:Gem::Version
|
|
80
|
+
version: '4.0'
|
|
81
|
+
- - ">="
|
|
82
|
+
- !ruby/object:Gem::Version
|
|
83
|
+
version: 4.0.2
|
|
84
|
+
type: :runtime
|
|
85
|
+
prerelease: false
|
|
86
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
87
|
+
requirements:
|
|
88
|
+
- - "~>"
|
|
89
|
+
- !ruby/object:Gem::Version
|
|
90
|
+
version: '4.0'
|
|
91
|
+
- - ">="
|
|
92
|
+
- !ruby/object:Gem::Version
|
|
93
|
+
version: 4.0.2
|
|
61
94
|
- !ruby/object:Gem::Dependency
|
|
62
95
|
name: rexml
|
|
63
96
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -99,14 +132,26 @@ files:
|
|
|
99
132
|
- lib/vonage/abstract_authentication.rb
|
|
100
133
|
- lib/vonage/account.rb
|
|
101
134
|
- lib/vonage/alerts.rb
|
|
135
|
+
- lib/vonage/api_error.rb
|
|
102
136
|
- lib/vonage/applications.rb
|
|
103
137
|
- lib/vonage/applications/list_response.rb
|
|
104
138
|
- lib/vonage/authentication_error.rb
|
|
105
139
|
- lib/vonage/basic.rb
|
|
140
|
+
- lib/vonage/basic_and_bearer_token.rb
|
|
141
|
+
- lib/vonage/basic_and_signature.rb
|
|
106
142
|
- lib/vonage/bearer_token.rb
|
|
107
143
|
- lib/vonage/client.rb
|
|
108
144
|
- lib/vonage/client_error.rb
|
|
109
145
|
- lib/vonage/config.rb
|
|
146
|
+
- lib/vonage/conversation.rb
|
|
147
|
+
- lib/vonage/conversation/event.rb
|
|
148
|
+
- lib/vonage/conversation/event/list_response.rb
|
|
149
|
+
- lib/vonage/conversation/list_response.rb
|
|
150
|
+
- lib/vonage/conversation/member.rb
|
|
151
|
+
- lib/vonage/conversation/member/list_response.rb
|
|
152
|
+
- lib/vonage/conversation/user.rb
|
|
153
|
+
- lib/vonage/conversation/user/conversations_list_response.rb
|
|
154
|
+
- lib/vonage/conversation/user/sessions_list_response.rb
|
|
110
155
|
- lib/vonage/conversations.rb
|
|
111
156
|
- lib/vonage/conversations/events.rb
|
|
112
157
|
- lib/vonage/conversations/legs.rb
|
|
@@ -120,27 +165,57 @@ files:
|
|
|
120
165
|
- lib/vonage/form_data.rb
|
|
121
166
|
- lib/vonage/gsm7.rb
|
|
122
167
|
- lib/vonage/http.rb
|
|
168
|
+
- lib/vonage/identity_insights.rb
|
|
169
|
+
- lib/vonage/identity_insights/insights_builder.rb
|
|
123
170
|
- lib/vonage/json.rb
|
|
124
171
|
- lib/vonage/jwt.rb
|
|
125
172
|
- lib/vonage/key_secret_params.rb
|
|
126
173
|
- lib/vonage/keys.rb
|
|
127
174
|
- lib/vonage/logger.rb
|
|
175
|
+
- lib/vonage/meetings.rb
|
|
176
|
+
- lib/vonage/meetings/applications.rb
|
|
177
|
+
- lib/vonage/meetings/dial_in_numbers.rb
|
|
178
|
+
- lib/vonage/meetings/dial_in_numbers/list_response.rb
|
|
179
|
+
- lib/vonage/meetings/recordings.rb
|
|
180
|
+
- lib/vonage/meetings/rooms.rb
|
|
181
|
+
- lib/vonage/meetings/rooms/list_response.rb
|
|
182
|
+
- lib/vonage/meetings/sessions.rb
|
|
183
|
+
- lib/vonage/meetings/sessions/list_response.rb
|
|
184
|
+
- lib/vonage/meetings/themes.rb
|
|
185
|
+
- lib/vonage/meetings/themes/list_response.rb
|
|
128
186
|
- lib/vonage/messages.rb
|
|
129
187
|
- lib/vonage/messaging.rb
|
|
130
188
|
- lib/vonage/messaging/channels/messenger.rb
|
|
131
189
|
- lib/vonage/messaging/channels/mms.rb
|
|
190
|
+
- lib/vonage/messaging/channels/rcs.rb
|
|
132
191
|
- lib/vonage/messaging/channels/sms.rb
|
|
133
192
|
- lib/vonage/messaging/channels/viber.rb
|
|
134
193
|
- lib/vonage/messaging/channels/whats_app.rb
|
|
135
194
|
- lib/vonage/messaging/message.rb
|
|
136
195
|
- lib/vonage/namespace.rb
|
|
196
|
+
- lib/vonage/network_authentication.rb
|
|
197
|
+
- lib/vonage/network_authentication/client_authentication.rb
|
|
198
|
+
- lib/vonage/network_authentication/server_authentication.rb
|
|
199
|
+
- lib/vonage/network_number_verification.rb
|
|
200
|
+
- lib/vonage/network_sim_swap.rb
|
|
137
201
|
- lib/vonage/number_insight.rb
|
|
202
|
+
- lib/vonage/number_insight_2.rb
|
|
138
203
|
- lib/vonage/numbers.rb
|
|
139
204
|
- lib/vonage/numbers/list_response.rb
|
|
140
205
|
- lib/vonage/numbers/response.rb
|
|
141
206
|
- lib/vonage/params.rb
|
|
142
207
|
- lib/vonage/pricing.rb
|
|
143
208
|
- lib/vonage/pricing_types.rb
|
|
209
|
+
- lib/vonage/proactive_connect.rb
|
|
210
|
+
- lib/vonage/proactive_connect/events.rb
|
|
211
|
+
- lib/vonage/proactive_connect/events/list_response.rb
|
|
212
|
+
- lib/vonage/proactive_connect/item.rb
|
|
213
|
+
- lib/vonage/proactive_connect/items.rb
|
|
214
|
+
- lib/vonage/proactive_connect/items/file_response.rb
|
|
215
|
+
- lib/vonage/proactive_connect/items/list_response.rb
|
|
216
|
+
- lib/vonage/proactive_connect/list.rb
|
|
217
|
+
- lib/vonage/proactive_connect/lists.rb
|
|
218
|
+
- lib/vonage/proactive_connect/lists/list_response.rb
|
|
144
219
|
- lib/vonage/redact.rb
|
|
145
220
|
- lib/vonage/response.rb
|
|
146
221
|
- lib/vonage/secrets.rb
|
|
@@ -149,19 +224,56 @@ files:
|
|
|
149
224
|
- lib/vonage/service_error.rb
|
|
150
225
|
- lib/vonage/signature.rb
|
|
151
226
|
- lib/vonage/sms.rb
|
|
227
|
+
- lib/vonage/subaccounts.rb
|
|
228
|
+
- lib/vonage/subaccounts/balance_transfers/list_response.rb
|
|
229
|
+
- lib/vonage/subaccounts/credit_transfers/list_response.rb
|
|
230
|
+
- lib/vonage/subaccounts/list_response.rb
|
|
152
231
|
- lib/vonage/tfa.rb
|
|
153
232
|
- lib/vonage/user_agent.rb
|
|
233
|
+
- lib/vonage/users.rb
|
|
234
|
+
- lib/vonage/users/list_response.rb
|
|
154
235
|
- lib/vonage/verify.rb
|
|
236
|
+
- lib/vonage/verify2.rb
|
|
237
|
+
- lib/vonage/verify2/channels/email.rb
|
|
238
|
+
- lib/vonage/verify2/channels/silent_auth.rb
|
|
239
|
+
- lib/vonage/verify2/channels/sms.rb
|
|
240
|
+
- lib/vonage/verify2/channels/voice.rb
|
|
241
|
+
- lib/vonage/verify2/channels/whats_app.rb
|
|
242
|
+
- lib/vonage/verify2/channels/whats_app_interactive.rb
|
|
243
|
+
- lib/vonage/verify2/start_verification_options.rb
|
|
244
|
+
- lib/vonage/verify2/template_fragments.rb
|
|
245
|
+
- lib/vonage/verify2/template_fragments/list_response.rb
|
|
246
|
+
- lib/vonage/verify2/templates.rb
|
|
247
|
+
- lib/vonage/verify2/templates/list_response.rb
|
|
248
|
+
- lib/vonage/verify2/workflow.rb
|
|
249
|
+
- lib/vonage/verify2/workflow_builder.rb
|
|
155
250
|
- lib/vonage/version.rb
|
|
251
|
+
- lib/vonage/video.rb
|
|
252
|
+
- lib/vonage/video/archives.rb
|
|
253
|
+
- lib/vonage/video/archives/list_response.rb
|
|
254
|
+
- lib/vonage/video/broadcasts.rb
|
|
255
|
+
- lib/vonage/video/broadcasts/list_response.rb
|
|
256
|
+
- lib/vonage/video/captions.rb
|
|
257
|
+
- lib/vonage/video/connections.rb
|
|
258
|
+
- lib/vonage/video/connections/list_response.rb
|
|
259
|
+
- lib/vonage/video/moderation.rb
|
|
260
|
+
- lib/vonage/video/renders.rb
|
|
261
|
+
- lib/vonage/video/renders/list_response.rb
|
|
262
|
+
- lib/vonage/video/signals.rb
|
|
263
|
+
- lib/vonage/video/sip.rb
|
|
264
|
+
- lib/vonage/video/streams.rb
|
|
265
|
+
- lib/vonage/video/streams/list_response.rb
|
|
266
|
+
- lib/vonage/video/web_socket.rb
|
|
156
267
|
- lib/vonage/voice.rb
|
|
157
268
|
- lib/vonage/voice/actions/connect.rb
|
|
158
269
|
- lib/vonage/voice/actions/conversation.rb
|
|
159
270
|
- lib/vonage/voice/actions/input.rb
|
|
160
271
|
- lib/vonage/voice/actions/notify.rb
|
|
161
|
-
- lib/vonage/voice/actions/pay.rb
|
|
162
272
|
- lib/vonage/voice/actions/record.rb
|
|
163
273
|
- lib/vonage/voice/actions/stream.rb
|
|
164
274
|
- lib/vonage/voice/actions/talk.rb
|
|
275
|
+
- lib/vonage/voice/actions/transfer.rb
|
|
276
|
+
- lib/vonage/voice/actions/wait.rb
|
|
165
277
|
- lib/vonage/voice/dtmf.rb
|
|
166
278
|
- lib/vonage/voice/list_response.rb
|
|
167
279
|
- lib/vonage/voice/ncco.rb
|
|
@@ -177,7 +289,6 @@ metadata:
|
|
|
177
289
|
bug_tracker_uri: https://github.com/Vonage/vonage-ruby-sdk/issues
|
|
178
290
|
changelog_uri: https://github.com/Vonage/vonage-ruby-sdk/blob/master/CHANGES.md
|
|
179
291
|
documentation_uri: https://www.rubydoc.info/github/vonage/vonage-ruby-sdk
|
|
180
|
-
post_install_message:
|
|
181
292
|
rdoc_options: []
|
|
182
293
|
require_paths:
|
|
183
294
|
- lib
|
|
@@ -192,8 +303,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
192
303
|
- !ruby/object:Gem::Version
|
|
193
304
|
version: '0'
|
|
194
305
|
requirements: []
|
|
195
|
-
rubygems_version: 3.
|
|
196
|
-
signing_key:
|
|
306
|
+
rubygems_version: 3.6.9
|
|
197
307
|
specification_version: 4
|
|
198
308
|
summary: This is the Ruby Server SDK for Vonage APIs. To use it you'll need a Vonage
|
|
199
309
|
account. Sign up for free at https://www.vonage.com
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
# typed: true
|
|
2
|
-
# frozen_string_literal: true
|
|
3
|
-
module Vonage
|
|
4
|
-
class Voice::Actions::Pay
|
|
5
|
-
attr_accessor :amount, :currency, :eventUrl, :prompts, :voice
|
|
6
|
-
|
|
7
|
-
def initialize(attributes= {})
|
|
8
|
-
@amount = attributes.fetch(:amount)
|
|
9
|
-
@currency = attributes.fetch(:currency, nil)
|
|
10
|
-
@eventUrl = attributes.fetch(:eventUrl, nil)
|
|
11
|
-
@prompts = attributes.fetch(:prompts, nil)
|
|
12
|
-
@voice = attributes.fetch(:voice, nil)
|
|
13
|
-
|
|
14
|
-
after_initialize!
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def action
|
|
18
|
-
create_pay!(self)
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def create_pay!(builder)
|
|
22
|
-
ncco = [
|
|
23
|
-
{
|
|
24
|
-
action: 'pay',
|
|
25
|
-
amount: builder.amount
|
|
26
|
-
}
|
|
27
|
-
]
|
|
28
|
-
|
|
29
|
-
ncco[0].merge!(currency: builder.currency) if builder.currency
|
|
30
|
-
ncco[0].merge!(eventUrl: builder.eventUrl) if builder.eventUrl
|
|
31
|
-
ncco[0].merge!(prompts: builder.prompts) if builder.prompts
|
|
32
|
-
ncco[0].merge!(voice: builder.voice) if builder.voice
|
|
33
|
-
|
|
34
|
-
ncco
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
private
|
|
38
|
-
|
|
39
|
-
def after_initialize!
|
|
40
|
-
verify_amount
|
|
41
|
-
|
|
42
|
-
if self.eventUrl
|
|
43
|
-
verify_event_url
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
if self.prompts
|
|
47
|
-
verify_prompts
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
if self.voice
|
|
51
|
-
verify_voice
|
|
52
|
-
end
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
def verify_amount
|
|
56
|
-
verify_amount_class
|
|
57
|
-
verify_amount_value
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
def verify_event_url
|
|
61
|
-
raise ClientError.new("Expected 'eventUrl' parameter to be an Array containing a single string item") unless self.eventUrl.is_a?(Array)
|
|
62
|
-
|
|
63
|
-
uri = URI.parse(self.eventUrl[0])
|
|
64
|
-
|
|
65
|
-
raise ClientError.new("Invalid 'eventUrl' value, must be a valid URL") unless uri.kind_of?(URI::HTTP) || uri.kind_of?(URI::HTTPS)
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
def verify_prompts
|
|
69
|
-
verify_prompts_structure
|
|
70
|
-
verify_prompts_values
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
def verify_voice
|
|
74
|
-
verify_voice_structure
|
|
75
|
-
verify_voice_style if self.voice[:style]
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
def verify_amount_class
|
|
79
|
-
raise ClientError.new("Invalid 'amount' value, must be a float") unless self.amount.is_a?(Float)
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
def verify_amount_value
|
|
83
|
-
raise ClientError.new("Invalid 'amount' value, must be greater than 0") unless self.amount > 0
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
def verify_prompts_structure
|
|
87
|
-
raise ClientError.new("Invalid 'prompt', must be an array of at least one hash") unless self.prompts.is_a?(Array) && !self.prompts.empty? && self.prompts.all?(Hash)
|
|
88
|
-
end
|
|
89
|
-
|
|
90
|
-
def verify_prompts_values
|
|
91
|
-
self.prompts.each do |prompt|
|
|
92
|
-
prompt_keys = prompt.keys
|
|
93
|
-
[:type, :text, :errors].each do |key|
|
|
94
|
-
raise ClientError.new("Invalid 'prompt', '#{key}' is required") unless prompt_keys.include?(key)
|
|
95
|
-
end
|
|
96
|
-
end
|
|
97
|
-
end
|
|
98
|
-
|
|
99
|
-
def verify_voice_structure
|
|
100
|
-
raise ClientError.new("Expected 'voice' value to be a Hash") unless self.voice.is_a?(Hash)
|
|
101
|
-
end
|
|
102
|
-
|
|
103
|
-
def verify_voice_style
|
|
104
|
-
raise ClientError.new("Expected 'style' value to be an Integer") unless self.voice[:style].is_a?(Integer)
|
|
105
|
-
end
|
|
106
|
-
end
|
|
107
|
-
end
|