vonage 7.21.0 → 7.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +1 -0
- data/lib/vonage/client.rb +9 -0
- data/lib/vonage/conversation/event/list_response.rb +11 -0
- data/lib/vonage/conversation/event.rb +108 -0
- data/lib/vonage/conversation/list_response.rb +11 -0
- data/lib/vonage/conversation/member/list_response.rb +11 -0
- data/lib/vonage/conversation/member.rb +134 -0
- data/lib/vonage/conversation/user/conversations_list_response.rb +11 -0
- data/lib/vonage/conversation/user/sessions_list_response.rb +11 -0
- data/lib/vonage/conversation/user.rb +67 -0
- data/lib/vonage/conversation.rb +164 -0
- data/lib/vonage/conversations/events.rb +12 -0
- data/lib/vonage/conversations/legs.rb +6 -0
- data/lib/vonage/conversations/members.rb +15 -0
- data/lib/vonage/conversations/users.rb +15 -0
- data/lib/vonage/conversations.rb +30 -0
- data/lib/vonage/keys.rb +6 -1
- data/lib/vonage/messaging.rb +8 -3
- data/lib/vonage/verify2/channels/sms.rb +10 -0
- data/lib/vonage/verify2/channels/whats_app.rb +3 -2
- data/lib/vonage/verify2.rb +7 -0
- data/lib/vonage/version.rb +1 -1
- data/lib/vonage/video/captions.rb +67 -0
- data/lib/vonage/video/renders/list_response.rb +11 -0
- data/lib/vonage/video/renders.rb +107 -0
- data/lib/vonage/video/web_socket.rb +61 -0
- data/lib/vonage/video.rb +19 -0
- metadata +16 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 508c457f8278aae1d8cc3951a8b4c38423ab63307917c4bbc09960f45cbafa9f
|
|
4
|
+
data.tar.gz: '00329df94f3ab44d6ab8d2552931438358f92ad59c121db87e1668bd1c336814'
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 80d9743779edc4dca5c4c9babb6a8591d616e4ac2f393ca4932a5a8640574561b28c61c803dc7c397c99221f0a086bd4604f62e8b36b97c7fd2b7da85ddc88d0
|
|
7
|
+
data.tar.gz: 40756daa0add532dead58f6d7d057e5bfc8f5d39a9bd84515bcdc08f9a6686eb983b6859f45b71fde9e11b8f474dbecb8a2973ff7270fe8256d813e281783341
|
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,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,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,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
|