vonage 7.24.0 → 8.0.0.beta

Sign up to get free protection for your applications and to get access to all the features.
Files changed (97) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +87 -387
  3. data/lib/vonage/applications.rb +4 -12
  4. data/lib/vonage/client.rb +0 -51
  5. data/lib/vonage/client_error.rb +1 -1
  6. data/lib/vonage/config.rb +1 -9
  7. data/lib/vonage/conversations/events.rb +0 -12
  8. data/lib/vonage/conversations/legs.rb +0 -6
  9. data/lib/vonage/conversations/members.rb +0 -15
  10. data/lib/vonage/conversations/users.rb +0 -15
  11. data/lib/vonage/conversations.rb +0 -30
  12. data/lib/vonage/errors.rb +20 -37
  13. data/lib/vonage/gsm7.rb +1 -1
  14. data/lib/vonage/jwt.rb +0 -17
  15. data/lib/vonage/keys.rb +1 -8
  16. data/lib/vonage/logger.rb +3 -5
  17. data/lib/vonage/messaging/channels/viber.rb +1 -8
  18. data/lib/vonage/messaging/channels/whats_app.rb +1 -3
  19. data/lib/vonage/messaging.rb +3 -19
  20. data/lib/vonage/namespace.rb +60 -132
  21. data/lib/vonage/numbers.rb +6 -29
  22. data/lib/vonage/server_error.rb +1 -1
  23. data/lib/vonage/signature.rb +5 -5
  24. data/lib/vonage/sms.rb +20 -20
  25. data/lib/vonage/version.rb +1 -1
  26. data/lib/vonage/video/archives.rb +53 -18
  27. data/lib/vonage/video/list_response.rb +11 -0
  28. data/lib/vonage/video/moderation.rb +22 -7
  29. data/lib/vonage/video/signals.rb +9 -4
  30. data/lib/vonage/video/streams.rb +12 -6
  31. data/lib/vonage/video.rb +13 -50
  32. data/lib/vonage/voice/actions/connect.rb +3 -27
  33. data/lib/vonage/voice/actions/conversation.rb +2 -2
  34. data/lib/vonage/voice/actions/pay.rb +107 -0
  35. data/lib/vonage/voice/actions/talk.rb +2 -11
  36. data/lib/vonage/voice/talk.rb +1 -11
  37. data/lib/vonage/voice.rb +0 -22
  38. data/lib/vonage.rb +0 -2
  39. data/vonage.gemspec +1 -3
  40. metadata +9 -98
  41. data/lib/vonage/api_error.rb +0 -33
  42. data/lib/vonage/conversation/event/list_response.rb +0 -11
  43. data/lib/vonage/conversation/event.rb +0 -108
  44. data/lib/vonage/conversation/list_response.rb +0 -11
  45. data/lib/vonage/conversation/member/list_response.rb +0 -11
  46. data/lib/vonage/conversation/member.rb +0 -134
  47. data/lib/vonage/conversation/user/conversations_list_response.rb +0 -11
  48. data/lib/vonage/conversation/user/sessions_list_response.rb +0 -11
  49. data/lib/vonage/conversation/user.rb +0 -67
  50. data/lib/vonage/conversation.rb +0 -164
  51. data/lib/vonage/meetings/applications.rb +0 -25
  52. data/lib/vonage/meetings/dial_in_numbers/list_response.rb +0 -11
  53. data/lib/vonage/meetings/dial_in_numbers.rb +0 -23
  54. data/lib/vonage/meetings/recordings.rb +0 -36
  55. data/lib/vonage/meetings/rooms/list_response.rb +0 -11
  56. data/lib/vonage/meetings/rooms.rb +0 -155
  57. data/lib/vonage/meetings/sessions/list_response.rb +0 -11
  58. data/lib/vonage/meetings/sessions.rb +0 -28
  59. data/lib/vonage/meetings/themes/list_response.rb +0 -11
  60. data/lib/vonage/meetings/themes.rb +0 -218
  61. data/lib/vonage/meetings.rb +0 -38
  62. data/lib/vonage/number_insight_2.rb +0 -36
  63. data/lib/vonage/proactive_connect/events/list_response.rb +0 -11
  64. data/lib/vonage/proactive_connect/events.rb +0 -68
  65. data/lib/vonage/proactive_connect/item.rb +0 -104
  66. data/lib/vonage/proactive_connect/items/file_response.rb +0 -32
  67. data/lib/vonage/proactive_connect/items/list_response.rb +0 -11
  68. data/lib/vonage/proactive_connect/items.rb +0 -107
  69. data/lib/vonage/proactive_connect/list.rb +0 -168
  70. data/lib/vonage/proactive_connect/lists/list_response.rb +0 -11
  71. data/lib/vonage/proactive_connect/lists.rb +0 -35
  72. data/lib/vonage/proactive_connect.rb +0 -33
  73. data/lib/vonage/subaccounts/balance_transfers/list_response.rb +0 -11
  74. data/lib/vonage/subaccounts/credit_transfers/list_response.rb +0 -11
  75. data/lib/vonage/subaccounts/list_response.rb +0 -15
  76. data/lib/vonage/subaccounts.rb +0 -203
  77. data/lib/vonage/users/list_response.rb +0 -11
  78. data/lib/vonage/users.rb +0 -156
  79. data/lib/vonage/verify2/channels/email.rb +0 -36
  80. data/lib/vonage/verify2/channels/silent_auth.rb +0 -45
  81. data/lib/vonage/verify2/channels/sms.rb +0 -53
  82. data/lib/vonage/verify2/channels/voice.rb +0 -32
  83. data/lib/vonage/verify2/channels/whats_app.rb +0 -38
  84. data/lib/vonage/verify2/channels/whats_app_interactive.rb +0 -32
  85. data/lib/vonage/verify2/start_verification_options.rb +0 -62
  86. data/lib/vonage/verify2/workflow.rb +0 -39
  87. data/lib/vonage/verify2/workflow_builder.rb +0 -25
  88. data/lib/vonage/verify2.rb +0 -97
  89. data/lib/vonage/video/archives/list_response.rb +0 -11
  90. data/lib/vonage/video/broadcasts/list_response.rb +0 -11
  91. data/lib/vonage/video/broadcasts.rb +0 -75
  92. data/lib/vonage/video/captions.rb +0 -67
  93. data/lib/vonage/video/renders/list_response.rb +0 -11
  94. data/lib/vonage/video/renders.rb +0 -107
  95. data/lib/vonage/video/sip.rb +0 -48
  96. data/lib/vonage/video/streams/list_response.rb +0 -11
  97. data/lib/vonage/video/web_socket.rb +0 -61
data/lib/vonage/voice.rb CHANGED
@@ -48,17 +48,6 @@ module Vonage
48
48
  # @option params [String] :machine_detection
49
49
  # Configure the behavior when Vonage detects that the call is answered by voicemail.
50
50
  #
51
- # @option params [Hash] :advanced_machine_detection
52
- # Configure the behavior of Vonage's advanced machine detection. Overrides machine_detection if both are set.
53
- # Hash with three possible properties:
54
- # - :behavior [String]: Must be one of `continue` or `hangup`. When hangup is used, the call will be terminated if a
55
- # machine is detected. When continue is used, the call will continue even if a machine is detected.
56
- # - :mode [String]: Must be one of `detect` or `detect_beep`. Detect if machine answered and sends a human or
57
- # machine status in the webhook payload. When set to `detect_beep`, the system also attempts to detect
58
- # voice mail beep and sends an additional parameter `sub_state` in the webhook with the value `beep_start`.
59
- # - :beep_timeout [Integer]: Min: 45, Max: 120. Maximum time in seconds Vonage should wait for a machine beep
60
- # to be detected. A machine event with `sub_state` set to `beep_timeout` will be sent if the timeout is exceeded.
61
- #
62
51
  # @option params [Integer] :length_timer
63
52
  # Set the number of seconds that elapse before Vonage hangs up after the call state changes to in_progress.
64
53
  #
@@ -279,16 +268,5 @@ module Vonage
279
268
  def dtmf
280
269
  @dtmf ||= DTMF.new(@config)
281
270
  end
282
-
283
- # Validate a JSON Web Token from a Voice API Webhook.
284
- #
285
- # @param [String, required] :token The JWT from the Webhook's Authorization header
286
- # @param [String, optional] :signature_secret The account signature secret. Required, unless `signature_secret`
287
- # is set in `Config`
288
- #
289
- # @return [Boolean] true, if the JWT is verified, false otherwise
290
- def verify_webhook_token(token:, signature_secret: @config.signature_secret)
291
- JWT.verify_hs256_signature(token: token, signature_secret: signature_secret)
292
- end
293
271
  end
294
272
  end
data/lib/vonage.rb CHANGED
@@ -7,13 +7,11 @@ 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
- 'sip' => 'SIP',
17
15
  'sms' => 'SMS',
18
16
  'mms' => 'MMS',
19
17
  'tfa' => 'TFA',
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,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vonage
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.24.0
4
+ version: 8.0.0.beta
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vonage
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-23 00:00:00.000000000 Z
11
+ date: 2022-12-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: vonage-jwt
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.2.0
19
+ version: 0.1.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.2.0
26
+ version: 0.1.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: zeitwerk
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -58,40 +58,6 @@ dependencies:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
60
  version: '0.5'
61
- - !ruby/object:Gem::Dependency
62
- name: multipart-post
63
- requirement: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - "~>"
66
- - !ruby/object:Gem::Version
67
- version: '2.0'
68
- type: :runtime
69
- prerelease: false
70
- version_requirements: !ruby/object:Gem::Requirement
71
- requirements:
72
- - - "~>"
73
- - !ruby/object:Gem::Version
74
- version: '2.0'
75
- - !ruby/object:Gem::Dependency
76
- name: net-http-persistent
77
- requirement: !ruby/object:Gem::Requirement
78
- requirements:
79
- - - "~>"
80
- - !ruby/object:Gem::Version
81
- version: '4.0'
82
- - - ">="
83
- - !ruby/object:Gem::Version
84
- version: 4.0.2
85
- type: :runtime
86
- prerelease: false
87
- version_requirements: !ruby/object:Gem::Requirement
88
- requirements:
89
- - - "~>"
90
- - !ruby/object:Gem::Version
91
- version: '4.0'
92
- - - ">="
93
- - !ruby/object:Gem::Version
94
- version: 4.0.2
95
61
  - !ruby/object:Gem::Dependency
96
62
  name: rexml
97
63
  requirement: !ruby/object:Gem::Requirement
@@ -133,7 +99,6 @@ files:
133
99
  - lib/vonage/abstract_authentication.rb
134
100
  - lib/vonage/account.rb
135
101
  - lib/vonage/alerts.rb
136
- - lib/vonage/api_error.rb
137
102
  - lib/vonage/applications.rb
138
103
  - lib/vonage/applications/list_response.rb
139
104
  - lib/vonage/authentication_error.rb
@@ -142,15 +107,6 @@ files:
142
107
  - lib/vonage/client.rb
143
108
  - lib/vonage/client_error.rb
144
109
  - lib/vonage/config.rb
145
- - lib/vonage/conversation.rb
146
- - lib/vonage/conversation/event.rb
147
- - lib/vonage/conversation/event/list_response.rb
148
- - lib/vonage/conversation/list_response.rb
149
- - lib/vonage/conversation/member.rb
150
- - lib/vonage/conversation/member/list_response.rb
151
- - lib/vonage/conversation/user.rb
152
- - lib/vonage/conversation/user/conversations_list_response.rb
153
- - lib/vonage/conversation/user/sessions_list_response.rb
154
110
  - lib/vonage/conversations.rb
155
111
  - lib/vonage/conversations/events.rb
156
112
  - lib/vonage/conversations/legs.rb
@@ -169,17 +125,6 @@ files:
169
125
  - lib/vonage/key_secret_params.rb
170
126
  - lib/vonage/keys.rb
171
127
  - lib/vonage/logger.rb
172
- - lib/vonage/meetings.rb
173
- - lib/vonage/meetings/applications.rb
174
- - lib/vonage/meetings/dial_in_numbers.rb
175
- - lib/vonage/meetings/dial_in_numbers/list_response.rb
176
- - lib/vonage/meetings/recordings.rb
177
- - lib/vonage/meetings/rooms.rb
178
- - lib/vonage/meetings/rooms/list_response.rb
179
- - lib/vonage/meetings/sessions.rb
180
- - lib/vonage/meetings/sessions/list_response.rb
181
- - lib/vonage/meetings/themes.rb
182
- - lib/vonage/meetings/themes/list_response.rb
183
128
  - lib/vonage/messages.rb
184
129
  - lib/vonage/messaging.rb
185
130
  - lib/vonage/messaging/channels/messenger.rb
@@ -190,23 +135,12 @@ files:
190
135
  - lib/vonage/messaging/message.rb
191
136
  - lib/vonage/namespace.rb
192
137
  - lib/vonage/number_insight.rb
193
- - lib/vonage/number_insight_2.rb
194
138
  - lib/vonage/numbers.rb
195
139
  - lib/vonage/numbers/list_response.rb
196
140
  - lib/vonage/numbers/response.rb
197
141
  - lib/vonage/params.rb
198
142
  - lib/vonage/pricing.rb
199
143
  - lib/vonage/pricing_types.rb
200
- - lib/vonage/proactive_connect.rb
201
- - lib/vonage/proactive_connect/events.rb
202
- - lib/vonage/proactive_connect/events/list_response.rb
203
- - lib/vonage/proactive_connect/item.rb
204
- - lib/vonage/proactive_connect/items.rb
205
- - lib/vonage/proactive_connect/items/file_response.rb
206
- - lib/vonage/proactive_connect/items/list_response.rb
207
- - lib/vonage/proactive_connect/list.rb
208
- - lib/vonage/proactive_connect/lists.rb
209
- - lib/vonage/proactive_connect/lists/list_response.rb
210
144
  - lib/vonage/redact.rb
211
145
  - lib/vonage/response.rb
212
146
  - lib/vonage/secrets.rb
@@ -215,45 +149,22 @@ files:
215
149
  - lib/vonage/service_error.rb
216
150
  - lib/vonage/signature.rb
217
151
  - lib/vonage/sms.rb
218
- - lib/vonage/subaccounts.rb
219
- - lib/vonage/subaccounts/balance_transfers/list_response.rb
220
- - lib/vonage/subaccounts/credit_transfers/list_response.rb
221
- - lib/vonage/subaccounts/list_response.rb
222
152
  - lib/vonage/tfa.rb
223
153
  - lib/vonage/user_agent.rb
224
- - lib/vonage/users.rb
225
- - lib/vonage/users/list_response.rb
226
154
  - lib/vonage/verify.rb
227
- - lib/vonage/verify2.rb
228
- - lib/vonage/verify2/channels/email.rb
229
- - lib/vonage/verify2/channels/silent_auth.rb
230
- - lib/vonage/verify2/channels/sms.rb
231
- - lib/vonage/verify2/channels/voice.rb
232
- - lib/vonage/verify2/channels/whats_app.rb
233
- - lib/vonage/verify2/channels/whats_app_interactive.rb
234
- - lib/vonage/verify2/start_verification_options.rb
235
- - lib/vonage/verify2/workflow.rb
236
- - lib/vonage/verify2/workflow_builder.rb
237
155
  - lib/vonage/version.rb
238
156
  - lib/vonage/video.rb
239
157
  - lib/vonage/video/archives.rb
240
- - lib/vonage/video/archives/list_response.rb
241
- - lib/vonage/video/broadcasts.rb
242
- - lib/vonage/video/broadcasts/list_response.rb
243
- - lib/vonage/video/captions.rb
158
+ - lib/vonage/video/list_response.rb
244
159
  - lib/vonage/video/moderation.rb
245
- - lib/vonage/video/renders.rb
246
- - lib/vonage/video/renders/list_response.rb
247
160
  - lib/vonage/video/signals.rb
248
- - lib/vonage/video/sip.rb
249
161
  - lib/vonage/video/streams.rb
250
- - lib/vonage/video/streams/list_response.rb
251
- - lib/vonage/video/web_socket.rb
252
162
  - lib/vonage/voice.rb
253
163
  - lib/vonage/voice/actions/connect.rb
254
164
  - lib/vonage/voice/actions/conversation.rb
255
165
  - lib/vonage/voice/actions/input.rb
256
166
  - lib/vonage/voice/actions/notify.rb
167
+ - lib/vonage/voice/actions/pay.rb
257
168
  - lib/vonage/voice/actions/record.rb
258
169
  - lib/vonage/voice/actions/stream.rb
259
170
  - lib/vonage/voice/actions/talk.rb
@@ -283,11 +194,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
283
194
  version: 2.5.0
284
195
  required_rubygems_version: !ruby/object:Gem::Requirement
285
196
  requirements:
286
- - - ">="
197
+ - - ">"
287
198
  - !ruby/object:Gem::Version
288
- version: '0'
199
+ version: 1.3.1
289
200
  requirements: []
290
- rubygems_version: 3.5.3
201
+ rubygems_version: 3.3.26
291
202
  signing_key:
292
203
  specification_version: 4
293
204
  summary: This is the Ruby Server SDK for Vonage APIs. To use it you'll need a Vonage
@@ -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
@@ -1,67 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
-
4
- module Vonage
5
- class Conversation::User < Namespace
6
- self.authentication = BearerToken
7
-
8
- # List conversations associated with a user.
9
- #
10
- # @example
11
- # response = client.conversation.user.list_conversations(user_id: 'USR-82e028d9-5201-4f1e-8188-604b2d3471ec')
12
- #
13
- # @param [required, String] :user_id The user_id of the user to list conversations for
14
- #
15
- # @param [String] :state Must be one of ['INVITED', 'JOINED', 'LEFT']
16
- #
17
- # @param [String] :order_by Must be one of ['created', 'custom_sort_key']
18
- #
19
- # @param [Boolean] :include_custom_data
20
- # @param [String] :date_start
21
- # Return the records that occurred after this point in time.
22
- #
23
- # @param [String] :date_start
24
- # Return the records that occurred after this point in time.
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::User::ConversationsListResponse]
36
- #
37
- # @see https://developer.vonage.com/en/api/conversation#getuserConversations
38
- #
39
- def list_conversations(user_id:, **params)
40
- request("/v1/users/#{user_id}/conversations", params: params, response_class: ConversationsListResponse)
41
- end
42
-
43
- # List conversations associated with a user.
44
- #
45
- # @example
46
- # response = client.conversation.user.list_sessions(user_id: 'USR-82e028d9-5201-4f1e-8188-604b2d3471ec')
47
- #
48
- # @param [required, String] :user_id The user_id of the user to list sessions for
49
- #
50
- # @param [Integer] :page_size
51
- # Return this amount of records in the response.
52
- #
53
- # @param ['asc', 'desc'] :order
54
- # Return the records in ascending or descending order.
55
- #
56
- # @param [String] :cursor
57
- # The cursor to start returning results from.
58
- #
59
- # @return [Conversation::User::SessionsListResponse]
60
- #
61
- # @see https://developer.vonage.com/en/api/conversation#getuserSessions
62
- #
63
- def list_sessions(user_id:, **params)
64
- request("/v1/users/#{user_id}/sessions", params: params, response_class: SessionsListResponse)
65
- end
66
- end
67
- end