vonage 7.20.0 → 7.22.0
Sign up to get free protection for your applications and to get access to all the features.
- 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/namespace.rb +5 -4
- data/lib/vonage/signature.rb +1 -1
- data/lib/vonage/version.rb +1 -1
- data/vonage.gemspec +1 -0
- metadata +31 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 56d2728bfe79b6d7361f68189aae31b7509fae3e97260fa413f2e99ccc72d14c
|
4
|
+
data.tar.gz: ccca6115ec963b7e687e2c227ae31b026ec88c92ccc205fc39df46fe43827adf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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,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
|
@@ -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
|
data/lib/vonage/conversations.rb
CHANGED
@@ -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
|
data/lib/vonage/namespace.rb
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
4
|
require 'net/http'
|
5
|
+
require 'net/http/persistent'
|
5
6
|
require 'net/http/post/multipart'
|
6
7
|
require 'json'
|
7
8
|
|
@@ -12,8 +13,7 @@ module Vonage
|
|
12
13
|
|
13
14
|
@host = set_host
|
14
15
|
|
15
|
-
@http = Net::HTTP.new
|
16
|
-
@http.use_ssl = true
|
16
|
+
@http = Net::HTTP::Persistent.new
|
17
17
|
|
18
18
|
@config.http.set(@http) unless @config.http.nil?
|
19
19
|
end
|
@@ -94,7 +94,8 @@ module Vonage
|
|
94
94
|
def make_request!(request, &block)
|
95
95
|
logger.log_request_info(request)
|
96
96
|
|
97
|
-
|
97
|
+
uri = URI("https://" + @host + request.path)
|
98
|
+
response = @http.request(uri, request, &block)
|
98
99
|
|
99
100
|
logger.log_response_info(response, @host)
|
100
101
|
|
@@ -143,7 +144,7 @@ module Vonage
|
|
143
144
|
|
144
145
|
uri = override_uri ? URI(override_uri) : URI('https://' + @host + path)
|
145
146
|
|
146
|
-
http =
|
147
|
+
http = Net::HTTP.new(uri.host, Net::HTTP.https_default_port, p_addr = nil)
|
147
148
|
http.use_ssl = true
|
148
149
|
http.set_debug_output($stdout)
|
149
150
|
|
data/lib/vonage/signature.rb
CHANGED
@@ -32,7 +32,7 @@ module Vonage
|
|
32
32
|
|
33
33
|
signature = params.delete('sig')
|
34
34
|
|
35
|
-
::JWT::
|
35
|
+
::JWT::JWA::Hmac::SecurityUtils.secure_compare(signature, digest(params, signature_secret, signature_method))
|
36
36
|
end
|
37
37
|
|
38
38
|
private
|
data/lib/vonage/version.rb
CHANGED
data/vonage.gemspec
CHANGED
@@ -16,6 +16,7 @@ Gem::Specification.new do |s|
|
|
16
16
|
s.add_dependency('zeitwerk', '~> 2', '>= 2.2')
|
17
17
|
s.add_dependency('sorbet-runtime', '~> 0.5')
|
18
18
|
s.add_dependency('multipart-post', '~> 2.0')
|
19
|
+
s.add_dependency('net-http-persistent', '~> 4.0', '>= 4.0.2')
|
19
20
|
s.add_runtime_dependency('rexml')
|
20
21
|
s.add_runtime_dependency('phonelib')
|
21
22
|
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.
|
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-
|
11
|
+
date: 2024-03-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: vonage-jwt
|
@@ -72,6 +72,26 @@ dependencies:
|
|
72
72
|
- - "~>"
|
73
73
|
- !ruby/object:Gem::Version
|
74
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
|
75
95
|
- !ruby/object:Gem::Dependency
|
76
96
|
name: rexml
|
77
97
|
requirement: !ruby/object:Gem::Requirement
|
@@ -122,6 +142,15 @@ files:
|
|
122
142
|
- lib/vonage/client.rb
|
123
143
|
- lib/vonage/client_error.rb
|
124
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
|
125
154
|
- lib/vonage/conversations.rb
|
126
155
|
- lib/vonage/conversations/events.rb
|
127
156
|
- lib/vonage/conversations/legs.rb
|