twilio-ruby 5.2.3 → 5.3.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/CHANGES.md +26 -0
- data/README.md +3 -3
- data/UPGRADE.md +30 -0
- data/lib/twilio-ruby.rb +0 -18
- data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number.rb +2 -2
- data/lib/twilio-ruby/rest/chat/v2/service.rb +24 -2
- data/lib/twilio-ruby/rest/chat/v2/service/channel/message.rb +5 -3
- data/lib/twilio-ruby/rest/client.rb +3 -3
- data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +24 -2
- data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +5 -3
- data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +12 -12
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +38 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +40 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics.rb +350 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics.rb +264 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_statistics.rb +10 -2
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queues_statistics.rb +15 -3
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker.rb +38 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_statistics.rb +6 -2
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_cumulative_statistics.rb +274 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_real_time_statistics.rb +213 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_statistics.rb +14 -10
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow.rb +40 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics.rb +357 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_real_time_statistics.rb +243 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_statistics.rb +10 -2
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_cumulative_statistics.rb +339 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_real_time_statistics.rb +239 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_statistics.rb +10 -2
- data/lib/twilio-ruby/rest/video/v1/room.rb +7 -0
- data/lib/twilio-ruby/security/request_validator.rb +1 -1
- data/lib/twilio-ruby/version.rb +1 -1
- data/spec/integration/chat/v2/service/channel/message_spec.rb +41 -7
- data/spec/integration/chat/v2/service_spec.rb +8 -0
- data/spec/integration/ip_messaging/v2/service/channel/message_spec.rb +41 -7
- data/spec/integration/ip_messaging/v2/service_spec.rb +8 -0
- data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics_spec.rb +94 -0
- data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics_spec.rb +79 -0
- data/spec/integration/taskrouter/v1/workspace/task_queue_spec.rb +8 -0
- data/spec/integration/taskrouter/v1/workspace/worker/worker_statistics_spec.rb +21 -38
- data/spec/integration/taskrouter/v1/workspace/worker/workers_cumulative_statistics_spec.rb +87 -0
- data/spec/integration/taskrouter/v1/workspace/worker/workers_real_time_statistics_spec.rb +68 -0
- data/spec/integration/taskrouter/v1/workspace/worker/workers_statistics_spec.rb +34 -61
- data/spec/integration/taskrouter/v1/workspace/worker_spec.rb +8 -0
- data/spec/integration/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics_spec.rb +95 -0
- data/spec/integration/taskrouter/v1/workspace/workflow/workflow_real_time_statistics_spec.rb +55 -0
- data/spec/integration/taskrouter/v1/workspace/workflow_spec.rb +12 -4
- data/spec/integration/taskrouter/v1/workspace/workspace_cumulative_statistics_spec.rb +92 -0
- data/spec/integration/taskrouter/v1/workspace/workspace_real_time_statistics_spec.rb +70 -0
- data/spec/integration/taskrouter/v1/workspace_spec.rb +8 -0
- data/spec/integration/video/v1/room_spec.rb +12 -0
- data/spec/security/request_validator_spec.rb +0 -28
- data/spec/twilio_spec.rb +0 -15
- metadata +28 -9
- data/lib/rack/twilio_webhook_authentication.rb +0 -46
- data/lib/twilio-ruby/util/configuration.rb +0 -7
- data/spec/rack/twilio_webhook_authentication_spec.rb +0 -106
- data/spec/util/configuration_spec.rb +0 -15
@@ -0,0 +1,239 @@
|
|
1
|
+
##
|
2
|
+
# This code was generated by
|
3
|
+
# \ / _ _ _| _ _
|
4
|
+
# | (_)\/(_)(_|\/| |(/_ v1.0.0
|
5
|
+
# / /
|
6
|
+
|
7
|
+
module Twilio
|
8
|
+
module REST
|
9
|
+
class Taskrouter < Domain
|
10
|
+
class V1 < Version
|
11
|
+
class WorkspaceContext < InstanceContext
|
12
|
+
class WorkspaceRealTimeStatisticsList < ListResource
|
13
|
+
##
|
14
|
+
# Initialize the WorkspaceRealTimeStatisticsList
|
15
|
+
# @param [Version] version Version that contains the resource
|
16
|
+
# @param [String] workspace_sid The workspace_sid
|
17
|
+
# @return [WorkspaceRealTimeStatisticsList] WorkspaceRealTimeStatisticsList
|
18
|
+
def initialize(version, workspace_sid: nil)
|
19
|
+
super(version)
|
20
|
+
|
21
|
+
# Path Solution
|
22
|
+
@solution = {
|
23
|
+
workspace_sid: workspace_sid
|
24
|
+
}
|
25
|
+
end
|
26
|
+
|
27
|
+
##
|
28
|
+
# Provide a user friendly representation
|
29
|
+
def to_s
|
30
|
+
'#<Twilio.Taskrouter.V1.WorkspaceRealTimeStatisticsList>'
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
class WorkspaceRealTimeStatisticsPage < Page
|
35
|
+
##
|
36
|
+
# Initialize the WorkspaceRealTimeStatisticsPage
|
37
|
+
# @param [Version] version Version that contains the resource
|
38
|
+
# @param [Response] response Response from the API
|
39
|
+
# @param [Hash] solution Path solution for the resource
|
40
|
+
# @return [WorkspaceRealTimeStatisticsPage] WorkspaceRealTimeStatisticsPage
|
41
|
+
def initialize(version, response, solution)
|
42
|
+
super(version, response)
|
43
|
+
|
44
|
+
# Path Solution
|
45
|
+
@solution = solution
|
46
|
+
end
|
47
|
+
|
48
|
+
##
|
49
|
+
# Build an instance of WorkspaceRealTimeStatisticsInstance
|
50
|
+
# @param [Hash] payload Payload response from the API
|
51
|
+
# @return [WorkspaceRealTimeStatisticsInstance] WorkspaceRealTimeStatisticsInstance
|
52
|
+
def get_instance(payload)
|
53
|
+
WorkspaceRealTimeStatisticsInstance.new(
|
54
|
+
@version,
|
55
|
+
payload,
|
56
|
+
workspace_sid: @solution[:workspace_sid],
|
57
|
+
)
|
58
|
+
end
|
59
|
+
|
60
|
+
##
|
61
|
+
# Provide a user friendly representation
|
62
|
+
def to_s
|
63
|
+
'<Twilio.Taskrouter.V1.WorkspaceRealTimeStatisticsPage>'
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
class WorkspaceRealTimeStatisticsContext < InstanceContext
|
68
|
+
##
|
69
|
+
# Initialize the WorkspaceRealTimeStatisticsContext
|
70
|
+
# @param [Version] version Version that contains the resource
|
71
|
+
# @param [String] workspace_sid The workspace_sid
|
72
|
+
# @return [WorkspaceRealTimeStatisticsContext] WorkspaceRealTimeStatisticsContext
|
73
|
+
def initialize(version, workspace_sid)
|
74
|
+
super(version)
|
75
|
+
|
76
|
+
# Path Solution
|
77
|
+
@solution = {
|
78
|
+
workspace_sid: workspace_sid,
|
79
|
+
}
|
80
|
+
@uri = "/Workspaces/#{@solution[:workspace_sid]}/RealTimeStatistics"
|
81
|
+
end
|
82
|
+
|
83
|
+
##
|
84
|
+
# Fetch a WorkspaceRealTimeStatisticsInstance
|
85
|
+
# @param [String] task_channel The task_channel
|
86
|
+
# @return [WorkspaceRealTimeStatisticsInstance] Fetched WorkspaceRealTimeStatisticsInstance
|
87
|
+
def fetch(task_channel: :unset)
|
88
|
+
params = Twilio::Values.of({
|
89
|
+
'TaskChannel' => task_channel,
|
90
|
+
})
|
91
|
+
|
92
|
+
payload = @version.fetch(
|
93
|
+
'GET',
|
94
|
+
@uri,
|
95
|
+
params,
|
96
|
+
)
|
97
|
+
|
98
|
+
WorkspaceRealTimeStatisticsInstance.new(
|
99
|
+
@version,
|
100
|
+
payload,
|
101
|
+
workspace_sid: @solution[:workspace_sid],
|
102
|
+
)
|
103
|
+
end
|
104
|
+
|
105
|
+
##
|
106
|
+
# Provide a user friendly representation
|
107
|
+
def to_s
|
108
|
+
context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
|
109
|
+
"#<Twilio.Taskrouter.V1.WorkspaceRealTimeStatisticsContext #{context}>"
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
class WorkspaceRealTimeStatisticsInstance < InstanceResource
|
114
|
+
##
|
115
|
+
# Initialize the WorkspaceRealTimeStatisticsInstance
|
116
|
+
# @param [Version] version Version that contains the resource
|
117
|
+
# @param [Hash] payload payload that contains response from Twilio
|
118
|
+
# @param [String] workspace_sid The workspace_sid
|
119
|
+
# @return [WorkspaceRealTimeStatisticsInstance] WorkspaceRealTimeStatisticsInstance
|
120
|
+
def initialize(version, payload, workspace_sid: nil)
|
121
|
+
super(version)
|
122
|
+
|
123
|
+
# Marshaled Properties
|
124
|
+
@properties = {
|
125
|
+
'account_sid' => payload['account_sid'],
|
126
|
+
'activity_statistics' => payload['activity_statistics'],
|
127
|
+
'longest_task_waiting_age' => payload['longest_task_waiting_age'].to_i,
|
128
|
+
'tasks_by_priority' => payload['tasks_by_priority'],
|
129
|
+
'tasks_by_status' => payload['tasks_by_status'],
|
130
|
+
'total_tasks' => payload['total_tasks'].to_i,
|
131
|
+
'total_workers' => payload['total_workers'].to_i,
|
132
|
+
'workspace_sid' => payload['workspace_sid'],
|
133
|
+
'url' => payload['url'],
|
134
|
+
}
|
135
|
+
|
136
|
+
# Context
|
137
|
+
@instance_context = nil
|
138
|
+
@params = {
|
139
|
+
'workspace_sid' => workspace_sid,
|
140
|
+
}
|
141
|
+
end
|
142
|
+
|
143
|
+
##
|
144
|
+
# Generate an instance context for the instance, the context is capable of
|
145
|
+
# performing various actions. All instance actions are proxied to the context
|
146
|
+
# @return [WorkspaceRealTimeStatisticsContext] WorkspaceRealTimeStatisticsContext for this WorkspaceRealTimeStatisticsInstance
|
147
|
+
def context
|
148
|
+
unless @instance_context
|
149
|
+
@instance_context = WorkspaceRealTimeStatisticsContext.new(
|
150
|
+
@version,
|
151
|
+
@params['workspace_sid'],
|
152
|
+
)
|
153
|
+
end
|
154
|
+
@instance_context
|
155
|
+
end
|
156
|
+
|
157
|
+
##
|
158
|
+
# @return [String] The account_sid
|
159
|
+
def account_sid
|
160
|
+
@properties['account_sid']
|
161
|
+
end
|
162
|
+
|
163
|
+
##
|
164
|
+
# @return [Hash] The activity_statistics
|
165
|
+
def activity_statistics
|
166
|
+
@properties['activity_statistics']
|
167
|
+
end
|
168
|
+
|
169
|
+
##
|
170
|
+
# @return [String] The longest_task_waiting_age
|
171
|
+
def longest_task_waiting_age
|
172
|
+
@properties['longest_task_waiting_age']
|
173
|
+
end
|
174
|
+
|
175
|
+
##
|
176
|
+
# @return [Hash] The tasks_by_priority
|
177
|
+
def tasks_by_priority
|
178
|
+
@properties['tasks_by_priority']
|
179
|
+
end
|
180
|
+
|
181
|
+
##
|
182
|
+
# @return [Hash] The tasks_by_status
|
183
|
+
def tasks_by_status
|
184
|
+
@properties['tasks_by_status']
|
185
|
+
end
|
186
|
+
|
187
|
+
##
|
188
|
+
# @return [String] The total_tasks
|
189
|
+
def total_tasks
|
190
|
+
@properties['total_tasks']
|
191
|
+
end
|
192
|
+
|
193
|
+
##
|
194
|
+
# @return [String] The total_workers
|
195
|
+
def total_workers
|
196
|
+
@properties['total_workers']
|
197
|
+
end
|
198
|
+
|
199
|
+
##
|
200
|
+
# @return [String] The workspace_sid
|
201
|
+
def workspace_sid
|
202
|
+
@properties['workspace_sid']
|
203
|
+
end
|
204
|
+
|
205
|
+
##
|
206
|
+
# @return [String] The url
|
207
|
+
def url
|
208
|
+
@properties['url']
|
209
|
+
end
|
210
|
+
|
211
|
+
##
|
212
|
+
# Fetch a WorkspaceRealTimeStatisticsInstance
|
213
|
+
# @param [String] task_channel The task_channel
|
214
|
+
# @return [WorkspaceRealTimeStatisticsInstance] Fetched WorkspaceRealTimeStatisticsInstance
|
215
|
+
def fetch(task_channel: :unset)
|
216
|
+
context.fetch(
|
217
|
+
task_channel: task_channel,
|
218
|
+
)
|
219
|
+
end
|
220
|
+
|
221
|
+
##
|
222
|
+
# Provide a user friendly representation
|
223
|
+
def to_s
|
224
|
+
values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
|
225
|
+
"<Twilio.Taskrouter.V1.WorkspaceRealTimeStatisticsInstance #{values}>"
|
226
|
+
end
|
227
|
+
|
228
|
+
##
|
229
|
+
# Provide a detailed, user friendly representation
|
230
|
+
def inspect
|
231
|
+
values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
|
232
|
+
"<Twilio.Taskrouter.V1.WorkspaceRealTimeStatisticsInstance #{values}>"
|
233
|
+
end
|
234
|
+
end
|
235
|
+
end
|
236
|
+
end
|
237
|
+
end
|
238
|
+
end
|
239
|
+
end
|
@@ -85,12 +85,16 @@ module Twilio
|
|
85
85
|
# @param [String] minutes The minutes
|
86
86
|
# @param [Time] start_date The start_date
|
87
87
|
# @param [Time] end_date The end_date
|
88
|
+
# @param [String] task_channel The task_channel
|
89
|
+
# @param [String] split_by_wait_time The split_by_wait_time
|
88
90
|
# @return [WorkspaceStatisticsInstance] Fetched WorkspaceStatisticsInstance
|
89
|
-
def fetch(minutes: :unset, start_date: :unset, end_date: :unset)
|
91
|
+
def fetch(minutes: :unset, start_date: :unset, end_date: :unset, task_channel: :unset, split_by_wait_time: :unset)
|
90
92
|
params = Twilio::Values.of({
|
91
93
|
'Minutes' => minutes,
|
92
94
|
'StartDate' => Twilio.serialize_iso8601_datetime(start_date),
|
93
95
|
'EndDate' => Twilio.serialize_iso8601_datetime(end_date),
|
96
|
+
'TaskChannel' => task_channel,
|
97
|
+
'SplitByWaitTime' => split_by_wait_time,
|
94
98
|
})
|
95
99
|
|
96
100
|
payload = @version.fetch(
|
@@ -189,12 +193,16 @@ module Twilio
|
|
189
193
|
# @param [String] minutes The minutes
|
190
194
|
# @param [Time] start_date The start_date
|
191
195
|
# @param [Time] end_date The end_date
|
196
|
+
# @param [String] task_channel The task_channel
|
197
|
+
# @param [String] split_by_wait_time The split_by_wait_time
|
192
198
|
# @return [WorkspaceStatisticsInstance] Fetched WorkspaceStatisticsInstance
|
193
|
-
def fetch(minutes: :unset, start_date: :unset, end_date: :unset)
|
199
|
+
def fetch(minutes: :unset, start_date: :unset, end_date: :unset, task_channel: :unset, split_by_wait_time: :unset)
|
194
200
|
context.fetch(
|
195
201
|
minutes: minutes,
|
196
202
|
start_date: start_date,
|
197
203
|
end_date: end_date,
|
204
|
+
task_channel: task_channel,
|
205
|
+
split_by_wait_time: split_by_wait_time,
|
198
206
|
)
|
199
207
|
end
|
200
208
|
|
@@ -331,6 +331,7 @@ module Twilio
|
|
331
331
|
'type' => payload['type'],
|
332
332
|
'max_participants' => payload['max_participants'].to_i,
|
333
333
|
'record_participants_on_connect' => payload['record_participants_on_connect'],
|
334
|
+
'video_codecs' => payload['video_codecs'],
|
334
335
|
'url' => payload['url'],
|
335
336
|
'links' => payload['links'],
|
336
337
|
}
|
@@ -440,6 +441,12 @@ module Twilio
|
|
440
441
|
@properties['record_participants_on_connect']
|
441
442
|
end
|
442
443
|
|
444
|
+
##
|
445
|
+
# @return [room.VideoCodec] The video_codecs
|
446
|
+
def video_codecs
|
447
|
+
@properties['video_codecs']
|
448
|
+
end
|
449
|
+
|
443
450
|
##
|
444
451
|
# @return [String] The url
|
445
452
|
def url
|
data/lib/twilio-ruby/version.rb
CHANGED
@@ -99,17 +99,14 @@ describe 'Message' do
|
|
99
99
|
expect {
|
100
100
|
@client.chat.v2.services("ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") \
|
101
101
|
.channels("CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") \
|
102
|
-
.messages.create(
|
102
|
+
.messages.create()
|
103
103
|
}.to raise_exception(Twilio::REST::TwilioError)
|
104
104
|
|
105
|
-
values = {
|
106
|
-
'Body' => "body",
|
107
|
-
}
|
105
|
+
values = {}
|
108
106
|
expect(
|
109
107
|
@holodeck.has_request?(Holodeck::Request.new(
|
110
108
|
method: 'post',
|
111
109
|
url: 'https://chat.twilio.com/v2/Services/ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Channels/CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Messages',
|
112
|
-
data: values,
|
113
110
|
))).to eq(true)
|
114
111
|
end
|
115
112
|
|
@@ -140,7 +137,7 @@ describe 'Message' do
|
|
140
137
|
|
141
138
|
actual = @client.chat.v2.services("ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") \
|
142
139
|
.channels("CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") \
|
143
|
-
.messages.create(
|
140
|
+
.messages.create()
|
144
141
|
|
145
142
|
expect(actual).to_not eq(nil)
|
146
143
|
end
|
@@ -172,7 +169,44 @@ describe 'Message' do
|
|
172
169
|
|
173
170
|
actual = @client.chat.v2.services("ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") \
|
174
171
|
.channels("CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") \
|
175
|
-
.messages.create(
|
172
|
+
.messages.create()
|
173
|
+
|
174
|
+
expect(actual).to_not eq(nil)
|
175
|
+
end
|
176
|
+
|
177
|
+
it "receives create_media responses" do
|
178
|
+
@holodeck.mock(Twilio::Response.new(
|
179
|
+
201,
|
180
|
+
%q[
|
181
|
+
{
|
182
|
+
"sid": "IMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
183
|
+
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
184
|
+
"service_sid": "ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
185
|
+
"to": "CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
186
|
+
"channel_sid": "CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
187
|
+
"attributes": null,
|
188
|
+
"date_created": "2016-03-24T20:37:57Z",
|
189
|
+
"date_updated": "2016-03-24T20:37:57Z",
|
190
|
+
"last_updated_by": "system",
|
191
|
+
"was_edited": false,
|
192
|
+
"from": "system",
|
193
|
+
"body": "Hello",
|
194
|
+
"index": 0,
|
195
|
+
"type": "text",
|
196
|
+
"media": {
|
197
|
+
"sid": "MEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
198
|
+
"size": 99999999999999,
|
199
|
+
"content_type": "application/pdf",
|
200
|
+
"filename": "hello.pdf"
|
201
|
+
},
|
202
|
+
"url": "https://chat.twilio.com/v2/Services/ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Channels/CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Messages/IMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
203
|
+
}
|
204
|
+
]
|
205
|
+
))
|
206
|
+
|
207
|
+
actual = @client.chat.v2.services("ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") \
|
208
|
+
.channels("CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") \
|
209
|
+
.messages.create()
|
176
210
|
|
177
211
|
expect(actual).to_not eq(nil)
|
178
212
|
end
|
@@ -47,6 +47,8 @@ describe 'Service' do
|
|
47
47
|
"notifications": {},
|
48
48
|
"post_webhook_url": "post_webhook_url",
|
49
49
|
"pre_webhook_url": "pre_webhook_url",
|
50
|
+
"pre_webhook_retry_count": 2,
|
51
|
+
"post_webhook_retry_count": 3,
|
50
52
|
"reachability_enabled": false,
|
51
53
|
"read_status_enabled": false,
|
52
54
|
"sid": "ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
@@ -138,6 +140,8 @@ describe 'Service' do
|
|
138
140
|
"notifications": {},
|
139
141
|
"post_webhook_url": "post_webhook_url",
|
140
142
|
"pre_webhook_url": "pre_webhook_url",
|
143
|
+
"pre_webhook_retry_count": 2,
|
144
|
+
"post_webhook_retry_count": 3,
|
141
145
|
"reachability_enabled": false,
|
142
146
|
"read_status_enabled": false,
|
143
147
|
"sid": "ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
@@ -235,6 +239,8 @@ describe 'Service' do
|
|
235
239
|
"notifications": {},
|
236
240
|
"post_webhook_url": "post_webhook_url",
|
237
241
|
"pre_webhook_url": "pre_webhook_url",
|
242
|
+
"pre_webhook_retry_count": 2,
|
243
|
+
"post_webhook_retry_count": 3,
|
238
244
|
"reachability_enabled": false,
|
239
245
|
"read_status_enabled": false,
|
240
246
|
"sid": "ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
@@ -317,6 +323,8 @@ describe 'Service' do
|
|
317
323
|
},
|
318
324
|
"post_webhook_url": "post_webhook_url",
|
319
325
|
"pre_webhook_url": "pre_webhook_url",
|
326
|
+
"pre_webhook_retry_count": 2,
|
327
|
+
"post_webhook_retry_count": 3,
|
320
328
|
"reachability_enabled": false,
|
321
329
|
"read_status_enabled": false,
|
322
330
|
"sid": "ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
@@ -99,17 +99,14 @@ describe 'Message' do
|
|
99
99
|
expect {
|
100
100
|
@client.ip_messaging.v2.services("ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") \
|
101
101
|
.channels("CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") \
|
102
|
-
.messages.create(
|
102
|
+
.messages.create()
|
103
103
|
}.to raise_exception(Twilio::REST::TwilioError)
|
104
104
|
|
105
|
-
values = {
|
106
|
-
'Body' => "body",
|
107
|
-
}
|
105
|
+
values = {}
|
108
106
|
expect(
|
109
107
|
@holodeck.has_request?(Holodeck::Request.new(
|
110
108
|
method: 'post',
|
111
109
|
url: 'https://ip-messaging.twilio.com/v2/Services/ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Channels/CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Messages',
|
112
|
-
data: values,
|
113
110
|
))).to eq(true)
|
114
111
|
end
|
115
112
|
|
@@ -140,7 +137,7 @@ describe 'Message' do
|
|
140
137
|
|
141
138
|
actual = @client.ip_messaging.v2.services("ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") \
|
142
139
|
.channels("CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") \
|
143
|
-
.messages.create(
|
140
|
+
.messages.create()
|
144
141
|
|
145
142
|
expect(actual).to_not eq(nil)
|
146
143
|
end
|
@@ -172,7 +169,44 @@ describe 'Message' do
|
|
172
169
|
|
173
170
|
actual = @client.ip_messaging.v2.services("ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") \
|
174
171
|
.channels("CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") \
|
175
|
-
.messages.create(
|
172
|
+
.messages.create()
|
173
|
+
|
174
|
+
expect(actual).to_not eq(nil)
|
175
|
+
end
|
176
|
+
|
177
|
+
it "receives create_media responses" do
|
178
|
+
@holodeck.mock(Twilio::Response.new(
|
179
|
+
201,
|
180
|
+
%q[
|
181
|
+
{
|
182
|
+
"sid": "IMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
183
|
+
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
184
|
+
"service_sid": "ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
185
|
+
"to": "CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
186
|
+
"channel_sid": "CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
187
|
+
"attributes": null,
|
188
|
+
"date_created": "2016-03-24T20:37:57Z",
|
189
|
+
"date_updated": "2016-03-24T20:37:57Z",
|
190
|
+
"last_updated_by": "system",
|
191
|
+
"was_edited": false,
|
192
|
+
"from": "system",
|
193
|
+
"body": "Hello",
|
194
|
+
"index": 0,
|
195
|
+
"type": "text",
|
196
|
+
"media": {
|
197
|
+
"sid": "MEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
198
|
+
"size": 99999999999999,
|
199
|
+
"content_type": "application/pdf",
|
200
|
+
"filename": "hello.pdf"
|
201
|
+
},
|
202
|
+
"url": "https://chat.twilio.com/v2/Services/ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Channels/CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Messages/IMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
203
|
+
}
|
204
|
+
]
|
205
|
+
))
|
206
|
+
|
207
|
+
actual = @client.ip_messaging.v2.services("ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") \
|
208
|
+
.channels("CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") \
|
209
|
+
.messages.create()
|
176
210
|
|
177
211
|
expect(actual).to_not eq(nil)
|
178
212
|
end
|