vonage 7.32.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 (125) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +92 -604
  3. data/lib/vonage/applications.rb +4 -12
  4. data/lib/vonage/basic.rb +1 -1
  5. data/lib/vonage/bearer_token.rb +1 -1
  6. data/lib/vonage/client.rb +0 -65
  7. data/lib/vonage/client_error.rb +1 -1
  8. data/lib/vonage/config.rb +1 -4
  9. data/lib/vonage/conversations/events.rb +0 -12
  10. data/lib/vonage/conversations/legs.rb +0 -6
  11. data/lib/vonage/conversations/members.rb +0 -15
  12. data/lib/vonage/conversations/users.rb +0 -15
  13. data/lib/vonage/conversations.rb +0 -30
  14. data/lib/vonage/errors.rb +20 -37
  15. data/lib/vonage/gsm7.rb +1 -1
  16. data/lib/vonage/http.rb +3 -3
  17. data/lib/vonage/jwt.rb +0 -17
  18. data/lib/vonage/key_secret_params.rb +2 -3
  19. data/lib/vonage/keys.rb +1 -17
  20. data/lib/vonage/logger.rb +3 -0
  21. data/lib/vonage/messaging/channels/messenger.rb +0 -2
  22. data/lib/vonage/messaging/channels/mms.rb +3 -13
  23. data/lib/vonage/messaging/channels/sms.rb +0 -2
  24. data/lib/vonage/messaging/channels/viber.rb +2 -11
  25. data/lib/vonage/messaging/channels/whats_app.rb +1 -5
  26. data/lib/vonage/messaging/message.rb +1 -4
  27. data/lib/vonage/messaging.rb +3 -42
  28. data/lib/vonage/namespace.rb +68 -137
  29. data/lib/vonage/number_insight.rb +0 -1
  30. data/lib/vonage/numbers.rb +17 -40
  31. data/lib/vonage/server_error.rb +1 -1
  32. data/lib/vonage/signature.rb +5 -5
  33. data/lib/vonage/sms.rb +20 -23
  34. data/lib/vonage/version.rb +1 -1
  35. data/lib/vonage/video/archives.rb +58 -35
  36. data/lib/vonage/video/list_response.rb +11 -0
  37. data/lib/vonage/video/moderation.rb +22 -7
  38. data/lib/vonage/video/signals.rb +9 -4
  39. data/lib/vonage/video/streams.rb +12 -6
  40. data/lib/vonage/video.rb +13 -56
  41. data/lib/vonage/voice/actions/connect.rb +9 -42
  42. data/lib/vonage/voice/actions/conversation.rb +4 -10
  43. data/lib/vonage/voice/actions/input.rb +3 -19
  44. data/lib/vonage/voice/actions/notify.rb +3 -8
  45. data/lib/vonage/voice/actions/pay.rb +107 -0
  46. data/lib/vonage/voice/actions/record.rb +4 -52
  47. data/lib/vonage/voice/actions/stream.rb +3 -7
  48. data/lib/vonage/voice/actions/talk.rb +4 -14
  49. data/lib/vonage/voice/ncco.rb +1 -3
  50. data/lib/vonage/voice/talk.rb +1 -11
  51. data/lib/vonage/voice.rb +0 -24
  52. data/lib/vonage.rb +0 -4
  53. data/vonage.gemspec +1 -3
  54. metadata +12 -112
  55. data/lib/vonage/api_error.rb +0 -33
  56. data/lib/vonage/conversation/event/list_response.rb +0 -11
  57. data/lib/vonage/conversation/event.rb +0 -108
  58. data/lib/vonage/conversation/list_response.rb +0 -11
  59. data/lib/vonage/conversation/member/list_response.rb +0 -11
  60. data/lib/vonage/conversation/member.rb +0 -134
  61. data/lib/vonage/conversation/user/conversations_list_response.rb +0 -11
  62. data/lib/vonage/conversation/user/sessions_list_response.rb +0 -11
  63. data/lib/vonage/conversation/user.rb +0 -67
  64. data/lib/vonage/conversation.rb +0 -164
  65. data/lib/vonage/meetings/applications.rb +0 -28
  66. data/lib/vonage/meetings/dial_in_numbers/list_response.rb +0 -11
  67. data/lib/vonage/meetings/dial_in_numbers.rb +0 -26
  68. data/lib/vonage/meetings/recordings.rb +0 -42
  69. data/lib/vonage/meetings/rooms/list_response.rb +0 -11
  70. data/lib/vonage/meetings/rooms.rb +0 -167
  71. data/lib/vonage/meetings/sessions/list_response.rb +0 -11
  72. data/lib/vonage/meetings/sessions.rb +0 -31
  73. data/lib/vonage/meetings/themes/list_response.rb +0 -11
  74. data/lib/vonage/meetings/themes.rb +0 -239
  75. data/lib/vonage/meetings.rb +0 -50
  76. data/lib/vonage/messaging/channels/rcs.rb +0 -44
  77. data/lib/vonage/network_authentication/client_authentication.rb +0 -39
  78. data/lib/vonage/network_authentication/server_authentication.rb +0 -47
  79. data/lib/vonage/network_authentication.rb +0 -22
  80. data/lib/vonage/network_number_verification.rb +0 -92
  81. data/lib/vonage/network_sim_swap.rb +0 -84
  82. data/lib/vonage/number_insight_2.rb +0 -21
  83. data/lib/vonage/proactive_connect/events/list_response.rb +0 -11
  84. data/lib/vonage/proactive_connect/events.rb +0 -71
  85. data/lib/vonage/proactive_connect/item.rb +0 -116
  86. data/lib/vonage/proactive_connect/items/file_response.rb +0 -32
  87. data/lib/vonage/proactive_connect/items/list_response.rb +0 -11
  88. data/lib/vonage/proactive_connect/items.rb +0 -116
  89. data/lib/vonage/proactive_connect/list.rb +0 -186
  90. data/lib/vonage/proactive_connect/lists/list_response.rb +0 -11
  91. data/lib/vonage/proactive_connect/lists.rb +0 -38
  92. data/lib/vonage/proactive_connect.rb +0 -43
  93. data/lib/vonage/subaccounts/balance_transfers/list_response.rb +0 -11
  94. data/lib/vonage/subaccounts/credit_transfers/list_response.rb +0 -11
  95. data/lib/vonage/subaccounts/list_response.rb +0 -15
  96. data/lib/vonage/subaccounts.rb +0 -203
  97. data/lib/vonage/users/list_response.rb +0 -11
  98. data/lib/vonage/users.rb +0 -156
  99. data/lib/vonage/verify2/channels/email.rb +0 -36
  100. data/lib/vonage/verify2/channels/silent_auth.rb +0 -45
  101. data/lib/vonage/verify2/channels/sms.rb +0 -63
  102. data/lib/vonage/verify2/channels/voice.rb +0 -32
  103. data/lib/vonage/verify2/channels/whats_app.rb +0 -39
  104. data/lib/vonage/verify2/channels/whats_app_interactive.rb +0 -32
  105. data/lib/vonage/verify2/start_verification_options.rb +0 -63
  106. data/lib/vonage/verify2/template_fragments/list_response.rb +0 -11
  107. data/lib/vonage/verify2/template_fragments.rb +0 -125
  108. data/lib/vonage/verify2/templates/list_response.rb +0 -11
  109. data/lib/vonage/verify2/templates.rb +0 -86
  110. data/lib/vonage/verify2/workflow.rb +0 -39
  111. data/lib/vonage/verify2/workflow_builder.rb +0 -25
  112. data/lib/vonage/verify2.rb +0 -112
  113. data/lib/vonage/video/archives/list_response.rb +0 -11
  114. data/lib/vonage/video/broadcasts/list_response.rb +0 -11
  115. data/lib/vonage/video/broadcasts.rb +0 -75
  116. data/lib/vonage/video/captions.rb +0 -67
  117. data/lib/vonage/video/connections/list_response.rb +0 -11
  118. data/lib/vonage/video/connections.rb +0 -29
  119. data/lib/vonage/video/renders/list_response.rb +0 -11
  120. data/lib/vonage/video/renders.rb +0 -107
  121. data/lib/vonage/video/sip.rb +0 -48
  122. data/lib/vonage/video/streams/list_response.rb +0 -11
  123. data/lib/vonage/video/web_socket.rb +0 -62
  124. data/lib/vonage/voice/actions/transfer.rb +0 -83
  125. data/lib/vonage/voice/actions/wait.rb +0 -43
data/lib/vonage/voice.rb CHANGED
@@ -18,8 +18,6 @@ module Vonage
18
18
  #
19
19
  # @option params [required, Array<Hash>] :to
20
20
  # Connect to a Phone (PSTN) number, SIP Endpoint, Websocket, or VBC extension.
21
- # The `to` Hash can contain a number of different properties depending on the `type`.
22
- # See the API reference for specific details.
23
21
  #
24
22
  # @option params [Hash] :from
25
23
  # Connect to a Phone (PSTN) number. Should not be set if **:random_from_number** is **true**
@@ -50,17 +48,6 @@ module Vonage
50
48
  # @option params [String] :machine_detection
51
49
  # Configure the behavior when Vonage detects that the call is answered by voicemail.
52
50
  #
53
- # @option params [Hash] :advanced_machine_detection
54
- # Configure the behavior of Vonage's advanced machine detection. Overrides machine_detection if both are set.
55
- # Hash with three possible properties:
56
- # - :behavior [String]: Must be one of `continue` or `hangup`. When hangup is used, the call will be terminated if a
57
- # machine is detected. When continue is used, the call will continue even if a machine is detected.
58
- # - :mode [String]: Must be one of `detect` or `detect_beep`. Detect if machine answered and sends a human or
59
- # machine status in the webhook payload. When set to `detect_beep`, the system also attempts to detect
60
- # voice mail beep and sends an additional parameter `sub_state` in the webhook with the value `beep_start`.
61
- # - :beep_timeout [Integer]: Min: 45, Max: 120. Maximum time in seconds Vonage should wait for a machine beep
62
- # to be detected. A machine event with `sub_state` set to `beep_timeout` will be sent if the timeout is exceeded.
63
- #
64
51
  # @option params [Integer] :length_timer
65
52
  # Set the number of seconds that elapse before Vonage hangs up after the call state changes to in_progress.
66
53
  #
@@ -281,16 +268,5 @@ module Vonage
281
268
  def dtmf
282
269
  @dtmf ||= DTMF.new(@config)
283
270
  end
284
-
285
- # Validate a JSON Web Token from a Voice API Webhook.
286
- #
287
- # @param [String, required] :token The JWT from the Webhook's Authorization header
288
- # @param [String, optional] :signature_secret The account signature secret. Required, unless `signature_secret`
289
- # is set in `Config`
290
- #
291
- # @return [Boolean] true, if the JWT is verified, false otherwise
292
- def verify_webhook_token(token:, signature_secret: @config.signature_secret)
293
- JWT.verify_hs256_signature(token: token, signature_secret: signature_secret)
294
- end
295
271
  end
296
272
  end
data/lib/vonage.rb CHANGED
@@ -7,16 +7,12 @@ module Vonage
7
7
  loader = Zeitwerk::Loader.new
8
8
  loader.tag = File.basename(__FILE__, '.rb')
9
9
  loader.inflector.inflect({
10
- 'api_error' => 'APIError',
11
10
  'dtmf' => 'DTMF',
12
11
  'gsm7' => 'GSM7',
13
12
  'http' => 'HTTP',
14
13
  'json' => 'JSON',
15
14
  'jwt' => 'JWT',
16
- 'rcs' => 'RCS',
17
- 'sip' => 'SIP',
18
15
  'sms' => 'SMS',
19
- 'network_sim_swap' => 'NetworkSIMSwap',
20
16
  'mms' => 'MMS',
21
17
  'tfa' => 'TFA',
22
18
  'version' => 'VERSION',
data/vonage.gemspec CHANGED
@@ -12,11 +12,9 @@ Gem::Specification.new do |s|
12
12
  s.summary = 'This is the Ruby Server SDK for Vonage APIs. To use it you\'ll need a Vonage account. Sign up for free at https://www.vonage.com'
13
13
  s.files = Dir.glob('lib/**/*.rb') + %w(LICENSE.txt README.md vonage.gemspec)
14
14
  s.required_ruby_version = '>= 2.5.0'
15
- s.add_dependency('vonage-jwt', '~> 0.2.0')
15
+ s.add_dependency('vonage-jwt', '~> 0.1.0')
16
16
  s.add_dependency('zeitwerk', '~> 2', '>= 2.2')
17
17
  s.add_dependency('sorbet-runtime', '~> 0.5')
18
- s.add_dependency('multipart-post', '~> 2.0')
19
- s.add_dependency('net-http-persistent', '~> 4.0', '>= 4.0.2')
20
18
  s.add_runtime_dependency('rexml')
21
19
  s.add_runtime_dependency('phonelib')
22
20
  s.require_path = 'lib'
metadata CHANGED
@@ -1,13 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vonage
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.32.0
4
+ version: 8.0.0.beta
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vonage
8
+ autorequire:
8
9
  bindir: bin
9
10
  cert_chain: []
10
- date: 1980-01-02 00:00:00.000000000 Z
11
+ date: 2022-12-12 00:00:00.000000000 Z
11
12
  dependencies:
12
13
  - !ruby/object:Gem::Dependency
13
14
  name: vonage-jwt
@@ -15,14 +16,14 @@ dependencies:
15
16
  requirements:
16
17
  - - "~>"
17
18
  - !ruby/object:Gem::Version
18
- version: 0.2.0
19
+ version: 0.1.0
19
20
  type: :runtime
20
21
  prerelease: false
21
22
  version_requirements: !ruby/object:Gem::Requirement
22
23
  requirements:
23
24
  - - "~>"
24
25
  - !ruby/object:Gem::Version
25
- version: 0.2.0
26
+ version: 0.1.0
26
27
  - !ruby/object:Gem::Dependency
27
28
  name: zeitwerk
28
29
  requirement: !ruby/object:Gem::Requirement
@@ -57,40 +58,6 @@ dependencies:
57
58
  - - "~>"
58
59
  - !ruby/object:Gem::Version
59
60
  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
94
61
  - !ruby/object:Gem::Dependency
95
62
  name: rexml
96
63
  requirement: !ruby/object:Gem::Requirement
@@ -132,7 +99,6 @@ files:
132
99
  - lib/vonage/abstract_authentication.rb
133
100
  - lib/vonage/account.rb
134
101
  - lib/vonage/alerts.rb
135
- - lib/vonage/api_error.rb
136
102
  - lib/vonage/applications.rb
137
103
  - lib/vonage/applications/list_response.rb
138
104
  - lib/vonage/authentication_error.rb
@@ -141,15 +107,6 @@ files:
141
107
  - lib/vonage/client.rb
142
108
  - lib/vonage/client_error.rb
143
109
  - lib/vonage/config.rb
144
- - lib/vonage/conversation.rb
145
- - lib/vonage/conversation/event.rb
146
- - lib/vonage/conversation/event/list_response.rb
147
- - lib/vonage/conversation/list_response.rb
148
- - lib/vonage/conversation/member.rb
149
- - lib/vonage/conversation/member/list_response.rb
150
- - lib/vonage/conversation/user.rb
151
- - lib/vonage/conversation/user/conversations_list_response.rb
152
- - lib/vonage/conversation/user/sessions_list_response.rb
153
110
  - lib/vonage/conversations.rb
154
111
  - lib/vonage/conversations/events.rb
155
112
  - lib/vonage/conversations/legs.rb
@@ -168,50 +125,22 @@ files:
168
125
  - lib/vonage/key_secret_params.rb
169
126
  - lib/vonage/keys.rb
170
127
  - lib/vonage/logger.rb
171
- - lib/vonage/meetings.rb
172
- - lib/vonage/meetings/applications.rb
173
- - lib/vonage/meetings/dial_in_numbers.rb
174
- - lib/vonage/meetings/dial_in_numbers/list_response.rb
175
- - lib/vonage/meetings/recordings.rb
176
- - lib/vonage/meetings/rooms.rb
177
- - lib/vonage/meetings/rooms/list_response.rb
178
- - lib/vonage/meetings/sessions.rb
179
- - lib/vonage/meetings/sessions/list_response.rb
180
- - lib/vonage/meetings/themes.rb
181
- - lib/vonage/meetings/themes/list_response.rb
182
128
  - lib/vonage/messages.rb
183
129
  - lib/vonage/messaging.rb
184
130
  - lib/vonage/messaging/channels/messenger.rb
185
131
  - lib/vonage/messaging/channels/mms.rb
186
- - lib/vonage/messaging/channels/rcs.rb
187
132
  - lib/vonage/messaging/channels/sms.rb
188
133
  - lib/vonage/messaging/channels/viber.rb
189
134
  - lib/vonage/messaging/channels/whats_app.rb
190
135
  - lib/vonage/messaging/message.rb
191
136
  - lib/vonage/namespace.rb
192
- - lib/vonage/network_authentication.rb
193
- - lib/vonage/network_authentication/client_authentication.rb
194
- - lib/vonage/network_authentication/server_authentication.rb
195
- - lib/vonage/network_number_verification.rb
196
- - lib/vonage/network_sim_swap.rb
197
137
  - lib/vonage/number_insight.rb
198
- - lib/vonage/number_insight_2.rb
199
138
  - lib/vonage/numbers.rb
200
139
  - lib/vonage/numbers/list_response.rb
201
140
  - lib/vonage/numbers/response.rb
202
141
  - lib/vonage/params.rb
203
142
  - lib/vonage/pricing.rb
204
143
  - lib/vonage/pricing_types.rb
205
- - lib/vonage/proactive_connect.rb
206
- - lib/vonage/proactive_connect/events.rb
207
- - lib/vonage/proactive_connect/events/list_response.rb
208
- - lib/vonage/proactive_connect/item.rb
209
- - lib/vonage/proactive_connect/items.rb
210
- - lib/vonage/proactive_connect/items/file_response.rb
211
- - lib/vonage/proactive_connect/items/list_response.rb
212
- - lib/vonage/proactive_connect/list.rb
213
- - lib/vonage/proactive_connect/lists.rb
214
- - lib/vonage/proactive_connect/lists/list_response.rb
215
144
  - lib/vonage/redact.rb
216
145
  - lib/vonage/response.rb
217
146
  - lib/vonage/secrets.rb
@@ -220,56 +149,25 @@ files:
220
149
  - lib/vonage/service_error.rb
221
150
  - lib/vonage/signature.rb
222
151
  - lib/vonage/sms.rb
223
- - lib/vonage/subaccounts.rb
224
- - lib/vonage/subaccounts/balance_transfers/list_response.rb
225
- - lib/vonage/subaccounts/credit_transfers/list_response.rb
226
- - lib/vonage/subaccounts/list_response.rb
227
152
  - lib/vonage/tfa.rb
228
153
  - lib/vonage/user_agent.rb
229
- - lib/vonage/users.rb
230
- - lib/vonage/users/list_response.rb
231
154
  - lib/vonage/verify.rb
232
- - lib/vonage/verify2.rb
233
- - lib/vonage/verify2/channels/email.rb
234
- - lib/vonage/verify2/channels/silent_auth.rb
235
- - lib/vonage/verify2/channels/sms.rb
236
- - lib/vonage/verify2/channels/voice.rb
237
- - lib/vonage/verify2/channels/whats_app.rb
238
- - lib/vonage/verify2/channels/whats_app_interactive.rb
239
- - lib/vonage/verify2/start_verification_options.rb
240
- - lib/vonage/verify2/template_fragments.rb
241
- - lib/vonage/verify2/template_fragments/list_response.rb
242
- - lib/vonage/verify2/templates.rb
243
- - lib/vonage/verify2/templates/list_response.rb
244
- - lib/vonage/verify2/workflow.rb
245
- - lib/vonage/verify2/workflow_builder.rb
246
155
  - lib/vonage/version.rb
247
156
  - lib/vonage/video.rb
248
157
  - lib/vonage/video/archives.rb
249
- - lib/vonage/video/archives/list_response.rb
250
- - lib/vonage/video/broadcasts.rb
251
- - lib/vonage/video/broadcasts/list_response.rb
252
- - lib/vonage/video/captions.rb
253
- - lib/vonage/video/connections.rb
254
- - lib/vonage/video/connections/list_response.rb
158
+ - lib/vonage/video/list_response.rb
255
159
  - lib/vonage/video/moderation.rb
256
- - lib/vonage/video/renders.rb
257
- - lib/vonage/video/renders/list_response.rb
258
160
  - lib/vonage/video/signals.rb
259
- - lib/vonage/video/sip.rb
260
161
  - lib/vonage/video/streams.rb
261
- - lib/vonage/video/streams/list_response.rb
262
- - lib/vonage/video/web_socket.rb
263
162
  - lib/vonage/voice.rb
264
163
  - lib/vonage/voice/actions/connect.rb
265
164
  - lib/vonage/voice/actions/conversation.rb
266
165
  - lib/vonage/voice/actions/input.rb
267
166
  - lib/vonage/voice/actions/notify.rb
167
+ - lib/vonage/voice/actions/pay.rb
268
168
  - lib/vonage/voice/actions/record.rb
269
169
  - lib/vonage/voice/actions/stream.rb
270
170
  - lib/vonage/voice/actions/talk.rb
271
- - lib/vonage/voice/actions/transfer.rb
272
- - lib/vonage/voice/actions/wait.rb
273
171
  - lib/vonage/voice/dtmf.rb
274
172
  - lib/vonage/voice/list_response.rb
275
173
  - lib/vonage/voice/ncco.rb
@@ -285,6 +183,7 @@ metadata:
285
183
  bug_tracker_uri: https://github.com/Vonage/vonage-ruby-sdk/issues
286
184
  changelog_uri: https://github.com/Vonage/vonage-ruby-sdk/blob/master/CHANGES.md
287
185
  documentation_uri: https://www.rubydoc.info/github/vonage/vonage-ruby-sdk
186
+ post_install_message:
288
187
  rdoc_options: []
289
188
  require_paths:
290
189
  - lib
@@ -295,11 +194,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
295
194
  version: 2.5.0
296
195
  required_rubygems_version: !ruby/object:Gem::Requirement
297
196
  requirements:
298
- - - ">="
197
+ - - ">"
299
198
  - !ruby/object:Gem::Version
300
- version: '0'
199
+ version: 1.3.1
301
200
  requirements: []
302
- rubygems_version: 3.6.9
201
+ rubygems_version: 3.3.26
202
+ signing_key:
303
203
  specification_version: 4
304
204
  summary: This is the Ruby Server SDK for Vonage APIs. To use it you'll need a Vonage
305
205
  account. Sign up for free at https://www.vonage.com
@@ -1,33 +0,0 @@
1
- # typed: strong
2
- require "json"
3
-
4
- module Vonage
5
- class APIError < Error
6
- extend T::Sig
7
-
8
- sig { returns(Net::HTTPResponse) }
9
- attr_reader :http_response
10
-
11
- sig { params(message: T.nilable(String), http_response: T.nilable(Net::HTTPResponse)).void }
12
- def initialize(message = nil, http_response: nil)
13
- super(message)
14
- @http_response = http_response
15
- end
16
-
17
- def http_response_code
18
- return nil unless http_response
19
- http_response.code
20
- end
21
-
22
- def http_response_headers
23
- return nil unless http_response
24
- http_response.to_hash
25
- end
26
-
27
- def http_response_body
28
- return nil unless http_response
29
- return {} unless http_response.content_type && http_response.content_type.include?("json")
30
- ::JSON.parse(http_response.body)
31
- end
32
- end
33
- end
@@ -1,11 +0,0 @@
1
- # typed: true
2
-
3
- class Vonage::Conversation::Event::ListResponse < Vonage::Response
4
- include Enumerable
5
-
6
- def each
7
- return enum_for(:each) unless block_given?
8
-
9
- @entity._embedded.each { |item| yield item }
10
- end
11
- end
@@ -1,108 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
-
4
- module Vonage
5
- class Conversation::Event < Namespace
6
- self.authentication = BearerToken
7
-
8
- self.request_body = JSON
9
-
10
- # List conversation events
11
- #
12
- # @example
13
- # response = client.conversation.event.list(conversation_id: 'CON-d66d47de-5bcb-4300-94f0-0c9d4b948e9a')
14
- #
15
- # @param [required, String] :conversation_id The conversation_id of the conversation to list events for
16
- #
17
- # @param [String] :start_id
18
- # The ID to start returning events at
19
- #
20
- # @param [String] :end_id
21
- # The ID to end returning events at
22
- #
23
- # @param [String] :event_type
24
- # The type of event to search for. Does not currently support custom events
25
- #
26
- # @param [Integer] :page_size
27
- # Return this amount of records in the response.
28
- #
29
- # @param ['asc', 'desc'] :order
30
- # Return the records in ascending or descending order.
31
- #
32
- # @param [String] :cursor
33
- # The cursor to start returning results from.
34
- #
35
- # @return [Conversation::Member::ListResponse]
36
- #
37
- # @see https://developer.vonage.com/en/api/conversation#getEvents
38
- #
39
- def list(conversation_id:, **params)
40
- request("/v1/conversations/#{conversation_id}/events", params: params, response_class: ListResponse)
41
- end
42
-
43
- # Create an event
44
- # @example
45
- # response = client.conversation.event.create(
46
- # conversation_id: 'CON-d66d47de-5bcb-4300-94f0-0c9d4b948e9a',
47
- # type: 'message',
48
- # body: {
49
- # message_type: 'text',
50
- # text: 'Hello World'
51
- # }
52
- # )
53
- #
54
- # @param [required, String] :conversation_id The conversation_id of the conversation to create the event for
55
- #
56
- # @param [required, String] :type
57
- # Event type.
58
- #
59
- # @param [String] :from
60
- #
61
- # @option params [required, String] :from
62
- #
63
- # @param [Hash] :body
64
- # The body of the event. There are many possible properties depending on the event type and message_type
65
- #
66
- # @return [Response]
67
- #
68
- # @see https://developer.vonage.com/en/api/conversation#createEvent
69
- #
70
- def create(conversation_id:, **params)
71
- request("/v1/conversations/#{conversation_id}/events", params: params, type: Post)
72
- end
73
-
74
- # Get details of a specific event
75
- #
76
- # @example
77
- # response = client.conversation.event.find(conversation_id: 'CON-d66d47de-5bcb-4300-94f0-0c9d4b948e9a', event_id: 1)
78
- #
79
- # @param [required, String] :conversation_id
80
- #
81
- # @param [required, String] :event_id
82
- #
83
- # @return [Response]
84
- #
85
- # @see https://developer.vonage.com/en/api/conversation#getEvent
86
- #
87
- def find(conversation_id:, event_id:)
88
- request("/v1/conversations/#{conversation_id}/events/#{event_id}")
89
- end
90
-
91
- # Delete an event.
92
- #
93
- # @example
94
- # response = client.conversation.event.delete(conversation_id: 'CON-d66d47de-5bcb-4300-94f0-0c9d4b948e9a', event_id: 1)
95
- #
96
- # @param [String] :conversation_id
97
- #
98
- # @param [String] :event_id
99
- #
100
- # @return [Response]
101
- #
102
- # @see https://developer.vonage.com/en/api/conversation#deleteEvent
103
- #
104
- def delete(conversation_id:, event_id:)
105
- request("/v1/conversations/#{conversation_id}/events/#{event_id}", type: Delete)
106
- end
107
- end
108
- end
@@ -1,11 +0,0 @@
1
- # typed: true
2
-
3
- class Vonage::Conversation::ListResponse < Vonage::Response
4
- include Enumerable
5
-
6
- def each
7
- return enum_for(:each) unless block_given?
8
-
9
- @entity._embedded.conversations.each { |item| yield item }
10
- end
11
- end
@@ -1,11 +0,0 @@
1
- # typed: true
2
-
3
- class Vonage::Conversation::Member::ListResponse < Vonage::Response
4
- include Enumerable
5
-
6
- def each
7
- return enum_for(:each) unless block_given?
8
-
9
- @entity._embedded.members.each { |item| yield item }
10
- end
11
- end
@@ -1,134 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
-
4
- module Vonage
5
- class Conversation::Member < Namespace
6
- self.authentication = BearerToken
7
-
8
- self.request_body = JSON
9
-
10
- # List members of a conversation
11
- #
12
- # @example
13
- # response = client.conversation.member.list(conversation_id: 'CON-d66d47de-5bcb-4300-94f0-0c9d4b948e9a')
14
- #
15
- # @param [required, String] :conversation_id The conversation_id of the conversation to list members for
16
- #
17
- # @param [Integer] :page_size
18
- # Return this amount of records in the response.
19
- #
20
- # @param ['asc', 'desc'] :order
21
- # Return the records in ascending or descending order.
22
- #
23
- # @param [String] :cursor
24
- # The cursor to start returning results from.
25
- #
26
- # @return [Conversation::Member::ListResponse]
27
- #
28
- # @see https://developer.vonage.com/en/api/conversation#getMembers
29
- #
30
- def list(conversation_id:, **params)
31
- request("/v1/conversations/#{conversation_id}/members", params: params, response_class: ListResponse)
32
- end
33
-
34
- # Create a member.
35
- #
36
- # @example
37
- # response = client.conversation.member.create(
38
- # conversation_id: 'CON-d66d47de-5bcb-4300-94f0-0c9d4b948e9a',
39
- # user: {
40
- # id: 'USR-82e028d9-5201-4f1e-8188-604b2d3471ec'
41
- # }
42
- # )
43
- #
44
- # @param [required, String] :conversation_id The conversation_id of the conversation for which to create the member
45
- #
46
- # @param [String] :state Must be one of ['invited', 'joined']
47
- #
48
- # @param [Hash] :user (Either :id or :name is required)
49
- # - @option user [String] :id The user_id of the user to add to the conversation
50
- # - @option user [String] :name The name of the user to add to the conversation
51
- #
52
- # @param [Hash] :channel
53
- # - @option channel [required, String] :type The type of channel
54
- # - @option channel [Hash] :from
55
- # - @option from [String] :type
56
- # - @option from [String] :number
57
- # - @option from [String] :id
58
- # - @option channel [Hash] :to
59
- # - @option from [String] :type
60
- # - @option from [String] :user
61
- # - @option from [String] :number
62
- # - @option from [String] :id
63
- #
64
- # @param [Hash] :media
65
- # - @option media [Boolean] :audio
66
- # - @option media [Hash] :audio_settings
67
- # - @option audio_settings [Boolean] :enabled
68
- # - @option audio_settings [Boolean] :earmuffed
69
- # - @option audio_settings [Boolean] :muted
70
- #
71
- # @param [String] :knocking_id
72
- #
73
- # @param [String] :member_id_inviting
74
- #
75
- # @param [String] :from
76
- #
77
- # @return [Response]
78
- #
79
- # @see https://developer.vonage.com/en/api/conversation#createMember
80
- #
81
- def create(conversation_id:, **params)
82
- request("/v1/conversations/#{conversation_id}/members", params: params, type: Post)
83
- end
84
-
85
- # Retrieve a member
86
- #
87
- # @example
88
- # response = client.conversation.member.find(
89
- # conversation_id: 'CON-d66d47de-5bcb-4300-94f0-0c9d4b948e9a',
90
- # member_id: 'MEM-63f61863-4a51-4f6b-86e1-46edebio0391'
91
- # )
92
- #
93
- # @param [required, String] :conversation_id
94
- #
95
- # @param [required, String] :member_id
96
- #
97
- # @return [Response]
98
- #
99
- # @see https://developer.vonage.com/en/api/conversation#getMember
100
- #
101
- def find(conversation_id:, member_id:)
102
- request("/v1/conversations/#{conversation_id}/members/#{member_id}", response_class: Vonage::Response)
103
- end
104
-
105
- # Update a member
106
- #
107
- # @example
108
- # response = client.conversation.member.update(
109
- # conversation_id: 'CON-d66d47de-5bcb-4300-94f0-0c9d4b948e9a',
110
- # member_id: 'MEM-63f61863-4a51-4f6b-86e1-46edebio0391',
111
- # state: 'left'
112
- # )
113
- #
114
- # @param [required, String] :conversation_id
115
- #
116
- # @param [required, String] :member_id
117
- #
118
- # @param [String] :state Must be one of ['joined', 'left']
119
- #
120
- # @param [String] :from
121
- #
122
- # @param [Hash] :reason
123
- # - @option reason [String] :code
124
- # - @option reason [String] :text
125
- #
126
- # @return [Response]
127
- #
128
- # @see https://developer.vonage.com/en/api/conversation#updateMember
129
- #
130
- def update(conversation_id:, member_id:, **params)
131
- request("/v1/conversations/#{conversation_id}/members/#{member_id}", params: params, type: Patch)
132
- end
133
- end
134
- end
@@ -1,11 +0,0 @@
1
- # typed: true
2
-
3
- class Vonage::Conversation::User::ConversationsListResponse < Vonage::Response
4
- include Enumerable
5
-
6
- def each
7
- return enum_for(:each) unless block_given?
8
-
9
- @entity._embedded.conversations.each { |item| yield item }
10
- end
11
- end
@@ -1,11 +0,0 @@
1
- # typed: true
2
-
3
- class Vonage::Conversation::User::SessionsListResponse < Vonage::Response
4
- include Enumerable
5
-
6
- def each
7
- return enum_for(:each) unless block_given?
8
-
9
- @entity._embedded.sessions.each { |item| yield item }
10
- end
11
- end