vonage 7.21.0 → 7.22.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8839127b442d9de3ee98bfc35f38bf76c967389bcf02136a28c8232f497f94bb
4
- data.tar.gz: c52b8d863d3326153f6678a9234457eb945b155f6fdfa2b782e45abbc4c5d16b
3
+ metadata.gz: 56d2728bfe79b6d7361f68189aae31b7509fae3e97260fa413f2e99ccc72d14c
4
+ data.tar.gz: ccca6115ec963b7e687e2c227ae31b026ec88c92ccc205fc39df46fe43827adf
5
5
  SHA512:
6
- metadata.gz: bf2d3ae171d5278f8c8d9c68129e3ba70b1edce0d16fb414bf0ecae7995c27620fbaca284f40c121dc128e6388f1485fa4bfa069f52e38b029d2f76397a73b0e
7
- data.tar.gz: 49897746fc8dc49fd67b01e3366215cc6298a59f771c1544b0004d2dcdac07c5d4b2263f383ac6c17e9d9bf7ca483bb4922bcc4ebdcdb0167a4823ac4387f627
6
+ metadata.gz: 0fdeaffdc2859873b73370cd32db48c540e38e88a637ed096f830694be07c221cbd663185631266d52b41c281051946f932aaf1afda7589a5a76b634f26ad37e
7
+ data.tar.gz: 0a75edbe4f910371aa672a554e2933f3514cd1b93c6557f7fd2f47c4c4f9465170d6c5c309ad99f676448dfe141261e4b0ce0879517f47ee1c99a49cce6d1cfd
data/README.md CHANGED
@@ -525,6 +525,7 @@ The following is a list of Vonage APIs for which the Ruby SDK currently provides
525
525
 
526
526
  * [Account API](https://developer.vonage.com/en/account/overview)
527
527
  * [Application API](https://developer.vonage.com/en/application/overview)
528
+ * [Conversation API](https://developer.vonage.com/en/conversation/overview)
528
529
  * [Meetings API](https://developer.vonage.com/en/meetings/overview)
529
530
  * [Messages API](https://developer.vonage.com/en/messages/overview)
530
531
  * [Number Insight API](https://developer.vonage.com/en/number-insight/overview)
data/lib/vonage/client.rb CHANGED
@@ -40,8 +40,17 @@ module Vonage
40
40
  @applications ||= T.let(Applications.new(config), T.nilable(Vonage::Applications))
41
41
  end
42
42
 
43
+ # @return [Conversation]
44
+ #
45
+ sig { returns(T.nilable(Vonage::Conversation)) }
46
+ def conversation
47
+ @conversation ||= T.let(Conversation.new(config), T.nilable(Vonage::Conversation))
48
+ end
49
+
43
50
  # @return [Conversations]
44
51
  #
52
+ # @deprecated Please use {#conversation} instead
53
+ #
45
54
  sig { returns(T.nilable(Vonage::Conversations)) }
46
55
  def conversations
47
56
  @conversations ||= T.let(Conversations.new(config), T.nilable(Vonage::Conversations))
@@ -0,0 +1,11 @@
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
@@ -0,0 +1,108 @@
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
@@ -0,0 +1,11 @@
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
@@ -0,0 +1,11 @@
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
@@ -0,0 +1,134 @@
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
@@ -0,0 +1,11 @@
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
@@ -0,0 +1,11 @@
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
@@ -0,0 +1,67 @@
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
@@ -0,0 +1,164 @@
1
+ # typed: strict
2
+ # frozen_string_literal: true
3
+
4
+ module Vonage
5
+ class Conversation < Namespace
6
+ extend T::Sig
7
+
8
+ self.authentication = BearerToken
9
+
10
+ self.request_body = JSON
11
+
12
+ # List conversations associated with a Vonage application.
13
+ #
14
+ # @example
15
+ # response = client.conversation.list
16
+ #
17
+ # @param [String] :date_start
18
+ # Return the records that occurred after this point in time.
19
+ #
20
+ # @param [String] :date_end
21
+ # Return the records that occurred before this point in time.
22
+ #
23
+ # @param [Integer] :page_size
24
+ # Return this amount of records in the response.
25
+ #
26
+ # @param ['asc', 'desc'] :order
27
+ # Return the records in ascending or descending order.
28
+ #
29
+ # @param [String] :cursor
30
+ # The cursor to start returning results from.
31
+ #
32
+ # @return [Conversation::ListResponse]
33
+ #
34
+ # @see https://developer.vonage.com/en/api/conversation#listConversations
35
+ #
36
+ def list(**params)
37
+ request('/v1/conversations', params: params, response_class: ListResponse)
38
+ end
39
+
40
+ # Create a conversation.
41
+ #
42
+ # @example
43
+ # response = client.conversation.create(name: 'Example Conversation', display_name: 'Example Display Name')
44
+ #
45
+ # @param [String] :name
46
+ # Your internal conversation name. Must be unique.
47
+ #
48
+ # @param [String] :display_name
49
+ # The public facing name of the conversation.
50
+ #
51
+ # @param [String] :image_url
52
+ # An image URL that you associate with the conversation
53
+ #
54
+ # @param [Hash] :properties
55
+ # - :ttl (Integer) After how many seconds an empty conversation is deleted
56
+ # - :type (String)
57
+ # - :custom_sort_key (String)
58
+ # - :custom_data (Hash) Custom key/value pairs to be included with conversation data
59
+ #
60
+ # @option params [Array] :numbers An array of Hashes containing number information for different channels.
61
+ #
62
+ # @option params [Hash] :callback
63
+ # - @option callback :url (String)
64
+ # - @option callback :event_mask (String)
65
+ # - @option callback :params (Hash)
66
+ # - @option params :applicationId (String)
67
+ # - @option params :ncco_url (String)
68
+ # - @option callback :method (String) Must be one of ['POST', 'GET']
69
+ #
70
+ # @return [Response]
71
+ #
72
+ # @see https://developer.vonage.com/en/api/conversation#createConversation
73
+ #
74
+ def create(**params)
75
+ request('/v1/conversations', params: params, type: Post)
76
+ end
77
+
78
+ # Retrieve a conversation.
79
+ #
80
+ # @example
81
+ # response = client.conversation.find(conversation_id: 'CON-d66d47de-5bcb-4300-94f0-0c9d4b948e9a')
82
+ #
83
+ # @param [String] :conversation_id
84
+ #
85
+ # @return [Response]
86
+ #
87
+ # @see https://developer.vonage.com/en/api/conversation#retrieveConversation
88
+ #
89
+ def find(conversation_id:)
90
+ request("/v1/conversations/#{conversation_id}")
91
+ end
92
+
93
+ # Update a conversation.
94
+ #
95
+ # @example
96
+ # response = client.conversation.update(conversation_id: 'CON-d66d47de-5bcb-4300-94f0-0c9d4b948e9a', display_name: 'Updated conversation')
97
+ #
98
+ # @param [String] :name
99
+ # Your internal conversation name. Must be unique.
100
+ #
101
+ # @param [String] :display_name
102
+ # The public facing name of the conversation.
103
+ #
104
+ # @param [String] :image_url
105
+ # An image URL that you associate with the conversation
106
+ #
107
+ # @param [Hash] :properties
108
+ # - @option properties :ttl (Integer) After how many seconds an empty conversation is deleted
109
+ # - @option properties :type (String)
110
+ # - @option properties :custom_sort_key (String)
111
+ # - @option properties :custom_data (Hash) Custom key/value pairs to be included with conversation data
112
+ #
113
+ # @param [Array] :numbers An array of Hashes containing number information for different channels.
114
+ #
115
+ # @option params [Hash] :callback
116
+ # - @option callback :url (String)
117
+ # - @option callback :event_mask (String)
118
+ # - @option callback :params (Hash)
119
+ # - @option params :applicationId (String)
120
+ # - @option params :ncco_url (String)
121
+ # - @option callback :method (String) Must be one of ['POST', 'GET']
122
+ #
123
+ # @return [Response]
124
+ #
125
+ # @see https://developer.vonage.com/en/api/conversation#replaceConversation
126
+ #
127
+ def update(conversation_id:, **params)
128
+ request("/v1/conversations/#{conversation_id}", params: params, type: Put)
129
+ end
130
+
131
+ # Delete a conversation.
132
+ #
133
+ # @example
134
+ # response = client.conversation.delete(conversation_id: 'CON-d66d47de-5bcb-4300-94f0-0c9d4b948e9a')
135
+ #
136
+ # @param [String] :conversation_id
137
+ #
138
+ # @return [Response]
139
+ #
140
+ # @see https://developer.vonage.com/en/api/conversation#deleteConversation
141
+ #
142
+ def delete(conversation_id:)
143
+ request("/v1/conversations/#{conversation_id}", type: Delete)
144
+ end
145
+
146
+ # @return [Conversation::User]
147
+ sig { returns(T.nilable(Vonage::Conversation::User)) }
148
+ def user
149
+ @user ||= User.new(@config)
150
+ end
151
+
152
+ # @return [Conversation::Member]
153
+ sig { returns(T.nilable(Vonage::Conversation::Member)) }
154
+ def member
155
+ @member ||= Member.new(@config)
156
+ end
157
+
158
+ # @return [Conversation::Event]
159
+ sig { returns(T.nilable(Vonage::Conversation::Event)) }
160
+ def event
161
+ @event ||= Event.new(@config)
162
+ end
163
+ end
164
+ end
@@ -9,6 +9,8 @@ module Vonage
9
9
 
10
10
  # Create an event.
11
11
  #
12
+ # @deprecated Please use {Vonage::Conversation::Event#create} instead
13
+ #
12
14
  # @option params [required, String] :type
13
15
  # Event type.
14
16
  #
@@ -29,11 +31,14 @@ module Vonage
29
31
  # @see https://developer.nexmo.com/api/conversation#createEvent
30
32
  #
31
33
  def create(conversation_id, params)
34
+ logger.info('This method is deprecated and will be removed in a future release. Please use `Vonage::Conversation::Event#create` instead.')
32
35
  request('/beta/conversations/' + conversation_id + '/events', params: params, type: Post)
33
36
  end
34
37
 
35
38
  # List events.
36
39
  #
40
+ # @deprecated Please use {Vonage::Conversation::Event#list} instead
41
+ #
37
42
  # @param [String] conversation_id
38
43
  #
39
44
  # @option params [Boolean] :auto_advance
@@ -45,11 +50,14 @@ module Vonage
45
50
  # @see https://developer.nexmo.com/api/conversation#getEvents
46
51
  #
47
52
  def list(conversation_id, params = nil, auto_advance = true)
53
+ logger.info('This method is deprecated and will be removed in a future release. Please use `Vonage::Conversation::Event#list` instead.')
48
54
  request('/beta/conversations/' + conversation_id + '/events', params: params)
49
55
  end
50
56
 
51
57
  # Retrieve an event.
52
58
  #
59
+ # @deprecated Please use {Vonage::Conversation::Event#find} instead
60
+ #
53
61
  # @param [String] conversation_id
54
62
  # @param [String] event_id
55
63
  #
@@ -58,11 +66,14 @@ module Vonage
58
66
  # @see https://developer.nexmo.com/api/conversation#getEvent
59
67
  #
60
68
  def get(conversation_id, event_id)
69
+ logger.info('This method is deprecated and will be removed in a future release. Please use `Vonage::Conversation::Event#find` instead.')
61
70
  request('/beta/conversations/' + conversation_id + '/events/' + event_id.to_s)
62
71
  end
63
72
 
64
73
  # Delete an event.
65
74
  #
75
+ # @deprecated Please use {Vonage::Conversation::Event#delete} instead
76
+ #
66
77
  # @param [String] conversation_id
67
78
  # @param [String] event_id
68
79
  #
@@ -71,6 +82,7 @@ module Vonage
71
82
  # @see https://developer.nexmo.com/api/conversation#deleteEvent
72
83
  #
73
84
  def delete(conversation_id, event_id)
85
+ logger.info('This method is deprecated and will be removed in a future release. Please use `Vonage::Conversation::Event#delete` instead.')
74
86
  request('/beta/conversations/' + conversation_id + '/events/' + event_id.to_s, type: Delete)
75
87
  end
76
88
  end
@@ -7,6 +7,8 @@ module Vonage
7
7
 
8
8
  # List legs.
9
9
  #
10
+ # @deprecated
11
+ #
10
12
  # @option params [Boolean] :auto_advance
11
13
  # Set this to `false` to not auto-advance through all the pages in the record
12
14
  # and collect all the data. The default is `true`.
@@ -16,11 +18,14 @@ module Vonage
16
18
  # @see https://developer.nexmo.com/api/conversation#listLegs
17
19
  #
18
20
  def list(params = nil, auto_advance = true)
21
+ logger.info('This method is deprecated and will be removed in a future release.')
19
22
  request('/beta/legs', params: params)
20
23
  end
21
24
 
22
25
  # Delete a leg.
23
26
  #
27
+ # @deprecated
28
+ #
24
29
  # @param [String] leg_id
25
30
  #
26
31
  # @return [Response]
@@ -28,6 +33,7 @@ module Vonage
28
33
  # @see https://developer.nexmo.com/api/conversation#deleteLeg
29
34
  #
30
35
  def delete(leg_id)
36
+ logger.info('This method is deprecated and will be removed in a future release.')
31
37
  request('/beta/legs/' + leg_id, type: Delete)
32
38
  end
33
39
  end
@@ -9,6 +9,8 @@ module Vonage
9
9
 
10
10
  # Create a member.
11
11
  #
12
+ # @deprecated Please use {Vonage::Conversation::Member#create} instead
13
+ #
12
14
  # @option params [String] :action
13
15
  # Invite or join a member to a conversation.
14
16
  # Must be one of: `invite` or `join`.
@@ -40,11 +42,14 @@ module Vonage
40
42
  # @see https://developer.nexmo.com/api/conversation#createMember
41
43
  #
42
44
  def create(conversation_id, params)
45
+ logger.info('This method is deprecated and will be removed in a future release. Please use `Vonage::Conversation::Member#create` instead.')
43
46
  request('/beta/conversations/' + conversation_id + '/members', params: params, type: Post)
44
47
  end
45
48
 
46
49
  # List members.
47
50
  #
51
+ # @deprecated Please use {Vonage::Conversation::Member#list} instead
52
+ #
48
53
  # @param [String] conversation_id
49
54
  #
50
55
  # @option params [Boolean] :auto_advance
@@ -56,11 +61,14 @@ module Vonage
56
61
  # @see https://developer.nexmo.com/api/conversation#getMembers
57
62
  #
58
63
  def list(conversation_id, params = nil, auto_advance = true)
64
+ logger.info('This method is deprecated and will be removed in a future release. Please use `Vonage::Conversation::Member#list` instead.')
59
65
  request('/beta/conversations/' + conversation_id + '/members', params: params)
60
66
  end
61
67
 
62
68
  # Retrieve a member.
63
69
  #
70
+ # @deprecated Please use {Vonage::Conversation::Member#find} instead
71
+ #
64
72
  # @param [String] conversation_id
65
73
  # @param [String] member_id
66
74
  #
@@ -69,11 +77,14 @@ module Vonage
69
77
  # @see https://developer.nexmo.com/api/conversation#getMember
70
78
  #
71
79
  def get(conversation_id, member_id)
80
+ logger.info('This method is deprecated and will be removed in a future release. Please use `Vonage::Conversation::Member#find` instead.')
72
81
  request('/beta/conversations/' + conversation_id + '/members/' + member_id)
73
82
  end
74
83
 
75
84
  # Update a member.
76
85
  #
86
+ # @deprecated Please use {Vonage::Conversation::Member#update} instead
87
+ #
77
88
  # @option params [String] :action
78
89
  # Invite or join a member to a conversation.
79
90
  #
@@ -89,11 +100,14 @@ module Vonage
89
100
  # @see https://developer.nexmo.com/api/conversation#updateMember
90
101
  #
91
102
  def update(conversation_id, member_id, params)
103
+ logger.info('This method is deprecated and will be removed in a future release. Please use `Vonage::Conversation::Member#update` instead.')
92
104
  request('/beta/conversations/' + conversation_id + '/members/' + member_id, params: params, type: Put)
93
105
  end
94
106
 
95
107
  # Delete a member.
96
108
  #
109
+ # @deprecated
110
+ #
97
111
  # @param [String] conversation_id
98
112
  # @param [String] member_id
99
113
  #
@@ -102,6 +116,7 @@ module Vonage
102
116
  # @see https://developer.nexmo.com/api/conversation#deleteMember
103
117
  #
104
118
  def delete(conversation_id, member_id)
119
+ logger.info('This method is deprecated and will be removed in a future release.')
105
120
  request('/beta/conversations/' + conversation_id + '/members/' + member_id, type: Delete)
106
121
  end
107
122
  end
@@ -9,6 +9,8 @@ module Vonage
9
9
 
10
10
  # Create a user.
11
11
  #
12
+ # @deprecated Please use {Vonage::Users#create} instead
13
+ #
12
14
  # @option params [String] :name
13
15
  # Unique name for a user.
14
16
  #
@@ -26,11 +28,14 @@ module Vonage
26
28
  # @see https://developer.nexmo.com/api/conversation#createUser
27
29
  #
28
30
  def create(params)
31
+ logger.info('This method is deprecated and will be removed in a future release. Please use `Vonage::Users#create` instead.')
29
32
  request('/beta/users', params: params, type: Post)
30
33
  end
31
34
 
32
35
  # List users.
33
36
  #
37
+ # @deprecated Please use {Vonage::Users#list} instead
38
+ #
34
39
  # @option params [Boolean] :auto_advance
35
40
  # Set this to `false` to not auto-advance through all the pages in the record
36
41
  # and collect all the data. The default is `true`.
@@ -40,11 +45,14 @@ module Vonage
40
45
  # @see https://developer.nexmo.com/api/conversation#getUsers
41
46
  #
42
47
  def list(params = nil, auto_advance = true)
48
+ logger.info('This method is deprecated and will be removed in a future release. Please use `Vonage::Users#list` instead.')
43
49
  request('/beta/users', params: params)
44
50
  end
45
51
 
46
52
  # Retrieve a user.
47
53
  #
54
+ # @deprecated Please use {Vonage::Users#find} instead
55
+ #
48
56
  # @param [String] id
49
57
  #
50
58
  # @return [Response]
@@ -52,11 +60,14 @@ module Vonage
52
60
  # @see https://developer.nexmo.com/api/conversation#getUser
53
61
  #
54
62
  def get(id)
63
+ logger.info('This method is deprecated and will be removed in a future release. Please use `Vonage::Users#find` instead.')
55
64
  request('/beta/users/' + id)
56
65
  end
57
66
 
58
67
  # Update a user.
59
68
  #
69
+ # @deprecated Please use {Vonage::Users#update} instead
70
+ #
60
71
  # @option params [String] :name
61
72
  # Unique name for a user.
62
73
  #
@@ -79,11 +90,14 @@ module Vonage
79
90
  # @see https://developer.nexmo.com/api/conversation#updateUser
80
91
  #
81
92
  def update(id, params)
93
+ logger.info('This method is deprecated and will be removed in a future release. Please use `Vonage::Users#update` instead.')
82
94
  request('/beta/users/' + id, params: params, type: Put)
83
95
  end
84
96
 
85
97
  # Delete a user.
86
98
  #
99
+ # @deprecated Please use {Vonage::Users#delete} instead
100
+ #
87
101
  # @param [String] id
88
102
  #
89
103
  # @return [Response]
@@ -91,6 +105,7 @@ module Vonage
91
105
  # @see https://developer.nexmo.com/api/conversation#deleteUser
92
106
  #
93
107
  def delete(id)
108
+ logger.info('This method is deprecated and will be removed in a future release. Please use `Vonage::Users#delete` instead.')
94
109
  request('/beta/users/' + id, type: Delete)
95
110
  end
96
111
  end
@@ -11,6 +11,8 @@ module Vonage
11
11
 
12
12
  # Create a conversation.
13
13
  #
14
+ # @deprecated Please use {Vonage::Conversation#create} instead
15
+ #
14
16
  # @example
15
17
  # response = client.conversations.create(name: 'Example Conversation', display_name: 'Example Display Name')
16
18
  #
@@ -37,11 +39,14 @@ module Vonage
37
39
  #
38
40
  sig { params(params: T::Hash[Symbol, T.untyped]).returns(Vonage::Response) }
39
41
  def create(params)
42
+ logger.info('This method is deprecated and will be removed in a future release. Please use `Vonage::Conversation#create` instead.')
40
43
  request('/beta/conversations', params: params, type: Post)
41
44
  end
42
45
 
43
46
  # List all conversations associated with your application.
44
47
  #
48
+ # @deprecated Please use {Vonage::Conversation#list} instead
49
+ #
45
50
  # @example
46
51
  # response = client.conversations.list
47
52
  #
@@ -71,6 +76,7 @@ module Vonage
71
76
  #
72
77
  sig { params(params: T.nilable(T::Hash[Symbol, T.untyped]), auto_advance: T::Boolean).returns(Vonage::Response) }
73
78
  def list(params = nil, auto_advance = true)
79
+ logger.info('This method is deprecated and will be removed in a future release. Please use `Vonage::Conversation#list` instead.')
74
80
  if params && !params.key?(:auto_advance)
75
81
  params.merge!(auto_advance: true)
76
82
  end
@@ -80,6 +86,8 @@ module Vonage
80
86
 
81
87
  # Retrieve a conversation.
82
88
  #
89
+ # @deprecated Please use {Vonage::Conversation#find} instead
90
+ #
83
91
  # @example
84
92
  # response = client.conversations.get(id)
85
93
  #
@@ -91,11 +99,14 @@ module Vonage
91
99
  #
92
100
  sig { params(id: String).returns(Vonage::Response) }
93
101
  def get(id)
102
+ logger.info('This method is deprecated and will be removed in a future release. Please use `Vonage::Conversation#find` instead.')
94
103
  request('/beta/conversations/' + id)
95
104
  end
96
105
 
97
106
  # Update a conversation.
98
107
  #
108
+ # @deprecated Please use {Vonage::Conversation#update} instead
109
+ #
99
110
  # @example
100
111
  # response = client.conversations.update(id, display_name: 'Updated conversation')
101
112
  #
@@ -127,11 +138,14 @@ module Vonage
127
138
  params: T::Hash[Symbol, T.untyped]
128
139
  ).returns(Vonage::Response) }
129
140
  def update(id, params)
141
+ logger.info('This method is deprecated and will be removed in a future release. Please use `Vonage::Conversation#update` instead.')
130
142
  request('/beta/conversations/' + id, params: params, type: Put)
131
143
  end
132
144
 
133
145
  # Delete a conversation.
134
146
  #
147
+ # @deprecated Please use {Vonage::Conversation#delete} instead
148
+ #
135
149
  # @example
136
150
  # response = client.conversations.delete(id)
137
151
  #
@@ -143,11 +157,14 @@ module Vonage
143
157
  #
144
158
  sig { params(id: String).returns(Vonage::Response) }
145
159
  def delete(id)
160
+ logger.info('This method is deprecated and will be removed in a future release. Please use `Vonage::Conversation#delete` instead.')
146
161
  request('/beta/conversations/' + id, type: Delete)
147
162
  end
148
163
 
149
164
  # Record a conversation.
150
165
  #
166
+ # @deprecated
167
+ #
151
168
  # @example
152
169
  # response = client.conversations.record(id, action: 'start')
153
170
  #
@@ -178,13 +195,17 @@ module Vonage
178
195
  params: T::Hash[Symbol, T.untyped]
179
196
  ).returns(Vonage::Response) }
180
197
  def record(id, params)
198
+ logger.info('This method is deprecated and will be removed in a future release.')
181
199
  request('/v1/conversations/' + id + '/record', params: params, type: Put)
182
200
  end
183
201
 
184
202
  # @return [Events]
185
203
  #
204
+ # @deprecated Please use {Vonage::Conversation#event} instead
205
+ #
186
206
  sig { returns(T.nilable(Vonage::Conversations::Events)) }
187
207
  def events
208
+ logger.info('This method is deprecated and will be removed in a future release. Please use `Vonage::Conversation#event` instead.')
188
209
  @events = T.let(@events, T.nilable(Vonage::Conversations::Events))
189
210
  @config = T.let(@config, T.nilable(Vonage::Config))
190
211
  @events ||= Events.new(@config)
@@ -192,24 +213,33 @@ module Vonage
192
213
 
193
214
  # @return [Legs]
194
215
  #
216
+ # @deprecated
217
+ #
195
218
  sig { returns(T.nilable(Vonage::Conversations::Legs)) }
196
219
  def legs
220
+ logger.info('This method is deprecated and will be removed in a future release.')
197
221
  @legs = T.let(@legs, T.nilable(Vonage::Conversations::Legs))
198
222
  @legs ||= Legs.new(@config)
199
223
  end
200
224
 
201
225
  # @return [Members]
202
226
  #
227
+ # @deprecated Please use {Vonage::Conversation#member} instead
228
+ #
203
229
  sig { returns(T.nilable(Vonage::Conversations::Members)) }
204
230
  def members
231
+ logger.info('This method is deprecated and will be removed in a future release. Please use `Vonage::Conversation#member` instead.')
205
232
  @members = T.let(@members, T.nilable(Vonage::Conversations::Members))
206
233
  @members ||= Members.new(@config)
207
234
  end
208
235
 
209
236
  # @return [Users]
210
237
  #
238
+ # @deprecated Please use {Vonage::Conversation#user} instead
239
+ #
211
240
  sig { returns(T.nilable(Vonage::Conversations::Users)) }
212
241
  def users
242
+ logger.info('This method is deprecated and will be removed in a future release. Please use `Vonage::Conversation#user` instead.')
213
243
  @users = T.let(@users, T.nilable(Vonage::Conversations::Users))
214
244
  @users ||= Users.new(@config)
215
245
  end
@@ -1,5 +1,5 @@
1
1
  # typed: strong
2
2
 
3
3
  module Vonage
4
- VERSION = '7.21.0'
4
+ VERSION = '7.22.0'
5
5
  end
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.21.0
4
+ version: 7.22.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vonage
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-02-21 00:00:00.000000000 Z
11
+ date: 2024-03-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: vonage-jwt
@@ -142,6 +142,15 @@ files:
142
142
  - lib/vonage/client.rb
143
143
  - lib/vonage/client_error.rb
144
144
  - 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
145
154
  - lib/vonage/conversations.rb
146
155
  - lib/vonage/conversations/events.rb
147
156
  - lib/vonage/conversations/legs.rb