twilio-ruby 5.0.0.rc22 → 5.0.0.rc23

Sign up to get free protection for your applications and to get access to all the features.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +10 -0
  3. data/lib/twilio-ruby/jwt/client_capability.rb +17 -8
  4. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/local.rb +15 -3
  5. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/mobile.rb +15 -3
  6. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/toll_free.rb +15 -3
  7. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +10 -2
  8. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number.rb +15 -3
  9. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/local.rb +15 -3
  10. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/mobile.rb +15 -3
  11. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/toll_free.rb +15 -3
  12. data/lib/twilio-ruby/rest/fax/v1/fax.rb +61 -28
  13. data/lib/twilio-ruby/rest/fax/v1/fax/fax_media.rb +11 -6
  14. data/lib/twilio-ruby/rest/notify/v1/service.rb +28 -3
  15. data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +8 -1
  16. data/lib/twilio-ruby/rest/preview/hosted_numbers/hosted_number_order.rb +1 -4
  17. data/lib/twilio-ruby/twiml/voice_response.rb +5 -20
  18. data/lib/twilio-ruby/version.rb +1 -1
  19. data/spec/integration/api/v2010/account/available_phone_number/local_spec.rb +1 -0
  20. data/spec/integration/api/v2010/account/available_phone_number/mobile_spec.rb +1 -0
  21. data/spec/integration/api/v2010/account/available_phone_number/toll_free_spec.rb +1 -0
  22. data/spec/integration/api/v2010/account/incoming_phone_number/local_spec.rb +2 -0
  23. data/spec/integration/api/v2010/account/incoming_phone_number/mobile_spec.rb +2 -0
  24. data/spec/integration/api/v2010/account/incoming_phone_number/toll_free_spec.rb +2 -0
  25. data/spec/integration/api/v2010/account/incoming_phone_number_spec.rb +4 -0
  26. data/spec/integration/notify/v1/service/notification_spec.rb +2 -1
  27. data/spec/integration/notify/v1/service/user/user_binding_spec.rb +34 -0
  28. data/spec/integration/notify/v1/service_spec.rb +8 -0
  29. data/spec/integration/preview/hosted_numbers/hosted_number_order_spec.rb +2 -3
  30. data/spec/integration/taskrouter/v1/workspace/worker_spec.rb +57 -41
  31. data/spec/integration/taskrouter/v1/workspace_spec.rb +38 -30
  32. data/spec/jwt/client_capability_spec.rb +9 -9
  33. data/spec/twiml/voice_response_spec.rb +5 -5
  34. metadata +2 -2
@@ -28,22 +28,24 @@ describe 'Workspace' do
28
28
  %q[
29
29
  {
30
30
  "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
31
- "date_created": "2015-08-03T17:31:38Z",
32
- "date_updated": "2015-08-03T17:31:38Z",
31
+ "date_created": "2016-08-01T22:10:40Z",
32
+ "date_updated": "2016-08-01T22:10:40Z",
33
33
  "default_activity_name": "Offline",
34
34
  "default_activity_sid": "WAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
35
35
  "event_callback_url": "",
36
- "events_filter": "",
37
- "friendly_name": "8064de33-3a05-11e5-8bae-98e0d9a1eb73",
36
+ "events_filter": null,
37
+ "friendly_name": "new",
38
38
  "links": {
39
39
  "activities": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Activities",
40
40
  "statistics": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Statistics",
41
41
  "task_queues": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/TaskQueues",
42
42
  "tasks": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Tasks",
43
43
  "workers": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workers",
44
- "workflows": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workflows"
44
+ "workflows": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workflows",
45
+ "task_channels": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/TaskChannels",
46
+ "events": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Events"
45
47
  },
46
- "multi_task_enabled": "false",
48
+ "multi_task_enabled": false,
47
49
  "prioritize_queue_order": "FIFO",
48
50
  "sid": "WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
49
51
  "timeout_activity_name": "Offline",
@@ -79,22 +81,24 @@ describe 'Workspace' do
79
81
  %q[
80
82
  {
81
83
  "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
82
- "date_created": "2015-08-03T17:31:38Z",
83
- "date_updated": "2015-08-03T17:31:38Z",
84
+ "date_created": "2016-08-01T22:10:40Z",
85
+ "date_updated": "2016-08-01T22:10:40Z",
84
86
  "default_activity_name": "Offline",
85
87
  "default_activity_sid": "WAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
86
88
  "event_callback_url": "",
87
- "events_filter": "",
88
- "friendly_name": "8064de33-3a05-11e5-8bae-98e0d9a1eb73",
89
+ "events_filter": null,
90
+ "friendly_name": "new",
89
91
  "links": {
90
92
  "activities": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Activities",
91
93
  "statistics": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Statistics",
92
94
  "task_queues": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/TaskQueues",
93
95
  "tasks": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Tasks",
94
96
  "workers": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workers",
95
- "workflows": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workflows"
97
+ "workflows": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workflows",
98
+ "task_channels": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/TaskChannels",
99
+ "events": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Events"
96
100
  },
97
- "multi_task_enabled": "false",
101
+ "multi_task_enabled": false,
98
102
  "prioritize_queue_order": "FIFO",
99
103
  "sid": "WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
100
104
  "timeout_activity_name": "Offline",
@@ -130,33 +134,35 @@ describe 'Workspace' do
130
134
  %q[
131
135
  {
132
136
  "meta": {
133
- "first_page_url": "https://taskrouter.twilio.com/v1/Workspaces?PageSize=1&Page=0",
137
+ "first_page_url": "https://taskrouter.twilio.com/v1/Workspaces?PageSize=50&Page=0",
134
138
  "key": "workspaces",
135
139
  "next_page_url": null,
136
140
  "page": 0,
137
- "page_size": 1,
141
+ "page_size": 50,
138
142
  "previous_page_url": null,
139
- "url": "https://taskrouter.twilio.com/v1/Workspaces?PageSize=1&Page=0"
143
+ "url": "https://taskrouter.twilio.com/v1/Workspaces?PageSize=50&Page=0"
140
144
  },
141
145
  "workspaces": [
142
146
  {
143
147
  "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
144
- "date_created": "2015-05-27T00:48:50Z",
145
- "date_updated": "2015-05-27T00:48:50Z",
148
+ "date_created": "2016-08-01T22:10:40Z",
149
+ "date_updated": "2016-08-01T22:10:40Z",
146
150
  "default_activity_name": "Offline",
147
151
  "default_activity_sid": "WAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
148
152
  "event_callback_url": "",
149
- "events_filter": "",
150
- "friendly_name": "cce151db-4644-4d48-95a1-d962829b69f0",
153
+ "events_filter": null,
154
+ "friendly_name": "new",
151
155
  "links": {
152
156
  "activities": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Activities",
153
157
  "statistics": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Statistics",
154
158
  "task_queues": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/TaskQueues",
155
159
  "tasks": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Tasks",
156
160
  "workers": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workers",
157
- "workflows": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workflows"
161
+ "workflows": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workflows",
162
+ "task_channels": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/TaskChannels",
163
+ "events": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Events"
158
164
  },
159
- "multi_task_enabled": "false",
165
+ "multi_task_enabled": false,
160
166
  "prioritize_queue_order": "FIFO",
161
167
  "sid": "WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
162
168
  "timeout_activity_name": "Offline",
@@ -179,13 +185,13 @@ describe 'Workspace' do
179
185
  %q[
180
186
  {
181
187
  "meta": {
182
- "first_page_url": "https://taskrouter.twilio.com/v1/Workspaces?PageSize=1&Page=0",
188
+ "first_page_url": "https://taskrouter.twilio.com/v1/Workspaces?PageSize=50&Page=0",
183
189
  "key": "workspaces",
184
190
  "next_page_url": null,
185
191
  "page": 0,
186
- "page_size": 1,
192
+ "page_size": 50,
187
193
  "previous_page_url": null,
188
- "url": "https://taskrouter.twilio.com/v1/Workspaces?PageSize=1&Page=0"
194
+ "url": "https://taskrouter.twilio.com/v1/Workspaces?PageSize=50&Page=0"
189
195
  },
190
196
  "workspaces": []
191
197
  }
@@ -221,22 +227,24 @@ describe 'Workspace' do
221
227
  %q[
222
228
  {
223
229
  "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
224
- "date_created": "2015-08-03T17:31:38Z",
225
- "date_updated": "2015-08-03T17:31:38Z",
230
+ "date_created": "2016-08-01T22:10:40Z",
231
+ "date_updated": "2016-08-01T22:10:40Z",
226
232
  "default_activity_name": "Offline",
227
233
  "default_activity_sid": "WAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
228
234
  "event_callback_url": "",
229
- "events_filter": "",
230
- "friendly_name": "8064de33-3a05-11e5-8bae-98e0d9a1eb73",
235
+ "events_filter": null,
236
+ "friendly_name": "new",
231
237
  "links": {
232
238
  "activities": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Activities",
233
239
  "statistics": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Statistics",
234
240
  "task_queues": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/TaskQueues",
235
241
  "tasks": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Tasks",
236
242
  "workers": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workers",
237
- "workflows": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workflows"
243
+ "workflows": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workflows",
244
+ "task_channels": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/TaskChannels",
245
+ "events": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Events"
238
246
  },
239
- "multi_task_enabled": "false",
247
+ "multi_task_enabled": false,
240
248
  "prioritize_queue_order": "FIFO",
241
249
  "sid": "WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
242
250
  "timeout_activity_name": "Offline",
@@ -23,42 +23,42 @@ describe Twilio::JWT::ClientCapability do
23
23
  it 'OutgoingClientScope sans params, client name' do
24
24
  @outgoingScope = Twilio::JWT::OutgoingClientScope.new('test-application-sid')
25
25
  @clientCapability.add_scope(@outgoingScope)
26
- escope = 'scope:client:outgoing?appSid%3Dtest-application-sid'
26
+ escope = 'scope:client:outgoing?appSid=test-application-sid'
27
27
  expect(@clientCapability.__send__(:_generate_payload)[:scope]).to eq(escope)
28
28
  end
29
29
 
30
30
  it 'OutgoingClientScope with client-name' do
31
31
  @outgoingScope = Twilio::JWT::OutgoingClientScope.new('test-application-sid', 'test-client-name')
32
32
  @clientCapability.add_scope(@outgoingScope)
33
- escope = 'scope:client:outgoing?appSid%3Dtest-application-sid%26clientName%3Dtest-client-name'
33
+ escope = 'scope:client:outgoing?appSid=test-application-sid&clientName=test-client-name'
34
34
  expect(@clientCapability.__send__(:_generate_payload)[:scope]).to eq(escope)
35
35
  end
36
36
 
37
37
  it 'OutgoingClientScope with params' do
38
38
  @outgoingScope = Twilio::JWT::OutgoingClientScope.new('test-application-sid', nil, {'params_key'=>'param_value'})
39
39
  @clientCapability.add_scope(@outgoingScope)
40
- escope = 'scope:client:outgoing?appSid%3Dtest-application-sid%26appParams%3Dparams_key%3Dparam_value'
40
+ escope = 'scope:client:outgoing?appSid=test-application-sid&appParams=params_key%3Dparam_value'
41
41
  expect(@clientCapability.__send__(:_generate_payload)[:scope]).to eq(escope)
42
42
  end
43
43
 
44
44
  it 'IncomingClientScope' do
45
45
  @incomingScope = Twilio::JWT::IncomingClientScope.new('test-client-name')
46
46
  @clientCapability.add_scope(@incomingScope)
47
- escope = 'scope:client:incoming?clientName%3Dtest-client-name'
47
+ escope = 'scope:client:incoming?clientName=test-client-name'
48
48
  expect(@clientCapability.__send__(:_generate_payload)[:scope]).to eq(escope)
49
49
  end
50
50
 
51
51
  it 'EventStreamScope sans filters' do
52
52
  @eventStreamScope = Twilio::JWT::EventStreamScope.new
53
53
  @clientCapability.add_scope(@eventStreamScope)
54
- escope = 'scope:stream:subscribe?path%3D%2F2010-04-01%2FEvents'
54
+ escope = 'scope:stream:subscribe?path=%2F2010-04-01%2FEvents'
55
55
  expect(@clientCapability.__send__(:_generate_payload)[:scope]).to eq(escope)
56
56
  end
57
57
 
58
58
  it 'EventStreamScope with filters' do
59
59
  @eventStreamScope = Twilio::JWT::EventStreamScope.new({'param_key'=>'param_value'})
60
60
  @clientCapability.add_scope(@eventStreamScope)
61
- escope = 'scope:stream:subscribe?param_key%3Dparam_value%26path%3D%2F2010-04-01%2FEvents'
61
+ escope = 'scope:stream:subscribe?path=%2F2010-04-01%2FEvents&params=param_key%3Dparam_value'
62
62
  expect(@clientCapability.__send__(:_generate_payload)[:scope]).to eq(escope)
63
63
  end
64
64
 
@@ -67,7 +67,7 @@ describe Twilio::JWT::ClientCapability do
67
67
  @clientCapability.add_scope(@outgoingScope)
68
68
  @incomingScope = Twilio::JWT::IncomingClientScope.new('test-client-name')
69
69
  @clientCapability.add_scope(@incomingScope)
70
- escope = 'scope:client:outgoing?appSid%3Dtest-application-sid scope:client:incoming?clientName%3Dtest-client-name'
70
+ escope = 'scope:client:outgoing?appSid=test-application-sid scope:client:incoming?clientName=test-client-name'
71
71
  expect(@clientCapability.__send__(:_generate_payload)[:scope]).to eq(escope)
72
72
  end
73
73
 
@@ -75,7 +75,7 @@ describe Twilio::JWT::ClientCapability do
75
75
  @incomingScope = Twilio::JWT::IncomingClientScope.new('test-client-name')
76
76
  @clientCapability.add_scope(@incomingScope)
77
77
  payload, _ = ::JWT.decode @clientCapability.to_s, 'authToken', true, {:algorithm=>'HS256'}
78
- escope = 'scope:client:incoming?clientName%3Dtest-client-name'
78
+ escope = 'scope:client:incoming?clientName=test-client-name'
79
79
  expect(payload['iss']).to eq('accountSid')
80
80
  expect(payload['scope']).to eq(escope)
81
81
  expect(payload['exp']).to be > Time.now.to_i
@@ -87,7 +87,7 @@ describe Twilio::JWT::ClientCapability do
87
87
  it 'Valid scopes in constructor' do
88
88
  @incomingScope = Twilio::JWT::IncomingClientScope.new('test-client-name')
89
89
  @clientCapability = Twilio::JWT::ClientCapability.new 'accountSid', 'authToken', scopes: [@incomingScope]
90
- escope = 'scope:client:incoming?clientName%3Dtest-client-name'
90
+ escope = 'scope:client:incoming?clientName=test-client-name'
91
91
  expect(@clientCapability.__send__(:_generate_payload)[:scope]).to eq(escope)
92
92
  end
93
93
  end
@@ -77,7 +77,7 @@ describe Twilio::TwiML::VoiceResponse do
77
77
  context 'Testing Play' do
78
78
  it 'should allow empty play' do
79
79
  r = Twilio::TwiML::VoiceResponse.new
80
- r.play ''
80
+ r.play
81
81
 
82
82
  # For Ruby 2.0, 2.1, 2.2 both opening and closing tags are generated
83
83
  # Ruby 2.4 generates an empty tag
@@ -87,21 +87,21 @@ describe Twilio::TwiML::VoiceResponse do
87
87
 
88
88
  it 'should play hello' do
89
89
  r = Twilio::TwiML::VoiceResponse.new
90
- r.play 'http://hellomonkey.mp3'
90
+ r.play(url: 'http://hellomonkey.mp3')
91
91
 
92
92
  expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Play>http://hellomonkey.mp3</Play></Response>')
93
93
  end
94
94
 
95
95
  it 'should play hello on loop' do
96
96
  r = Twilio::TwiML::VoiceResponse.new
97
- r.play 'http://hellomonkey.mp3', loop: 3
97
+ r.play(url: 'http://hellomonkey.mp3', loop: 3)
98
98
 
99
99
  expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Play loop="3">http://hellomonkey.mp3</Play></Response>')
100
100
  end
101
101
 
102
102
  it 'should play digits' do
103
103
  r = Twilio::TwiML::VoiceResponse.new
104
- r.play '', digits: 'w123'
104
+ r.play(digits: 'w123')
105
105
 
106
106
  # For Ruby 2.0, 2.1, 2.2 both opening and closing tags are generated
107
107
  # Ruby 2.4 generates an empty tag
@@ -440,7 +440,7 @@ describe Twilio::TwiML::VoiceResponse do
440
440
  it 'should allow nested play and pause' do
441
441
  g = Twilio::TwiML::Gather.new
442
442
  g.say 'Hey'
443
- g.play 'hey.mp3'
443
+ g.play(url: 'hey.mp3')
444
444
  g.pause
445
445
 
446
446
  r = Twilio::TwiML::VoiceResponse.new
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: twilio-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.0.rc22
4
+ version: 5.0.0.rc23
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Benton
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-06-15 00:00:00.000000000 Z
11
+ date: 2017-06-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: libxml-ruby