twilio-ruby 5.3.1 → 5.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGES.md +17 -0
- data/README.md +2 -2
- data/lib/rack/twilio_webhook_authentication.rb +46 -0
- data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/local.rb +10 -1
- data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/mobile.rb +10 -1
- data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/toll_free.rb +10 -1
- data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number.rb +22 -3
- data/lib/twilio-ruby/rest/api/v2010/account/message.rb +3 -1
- data/lib/twilio-ruby/rest/client.rb +7 -0
- data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document.rb +417 -0
- data/lib/twilio-ruby/rest/preview/hosted_numbers/hosted_number_order.rb +8 -7
- data/lib/twilio-ruby/rest/preview/hosted_numbers.rb +16 -0
- data/lib/twilio-ruby/rest/preview.rb +9 -0
- data/lib/twilio-ruby/rest/proxy/v1/service/phone_number.rb +384 -0
- data/lib/twilio-ruby/rest/proxy/v1/service/session/interaction.rb +456 -0
- data/lib/twilio-ruby/rest/proxy/v1/service/session/participant/message_interaction.rb +465 -0
- data/lib/twilio-ruby/rest/proxy/v1/service/session/participant.rb +541 -0
- data/lib/twilio-ruby/rest/proxy/v1/service/session.rb +578 -0
- data/lib/twilio-ruby/rest/proxy/v1/service/short_code.rb +377 -0
- data/lib/twilio-ruby/rest/proxy/v1/service.rb +509 -0
- data/lib/twilio-ruby/rest/proxy/v1.rb +41 -0
- data/lib/twilio-ruby/rest/proxy.rb +44 -0
- data/lib/twilio-ruby/rest/wireless/v1/sim.rb +7 -0
- data/lib/twilio-ruby/security/request_validator.rb +1 -1
- data/lib/twilio-ruby/twiml/messaging_response.rb +5 -5
- data/lib/twilio-ruby/twiml/voice_response.rb +9 -7
- data/lib/twilio-ruby/util/configuration.rb +0 -3
- data/lib/twilio-ruby/version.rb +1 -1
- data/lib/twilio-ruby.rb +1 -0
- data/spec/integration/api/v2010/account/incoming_phone_number/local_spec.rb +2 -0
- data/spec/integration/api/v2010/account/incoming_phone_number/mobile_spec.rb +2 -0
- data/spec/integration/api/v2010/account/incoming_phone_number/toll_free_spec.rb +2 -0
- data/spec/integration/api/v2010/account/incoming_phone_number_spec.rb +4 -0
- data/spec/integration/preview/hosted_numbers/authorization_document_spec.rb +211 -0
- data/spec/integration/preview/hosted_numbers/hosted_number_order_spec.rb +35 -4
- data/spec/integration/proxy/v1/service/phone_number_spec.rb +176 -0
- data/spec/integration/proxy/v1/service/session/interaction_spec.rb +104 -0
- data/spec/integration/proxy/v1/service/session/participant/message_interaction_spec.rb +164 -0
- data/spec/integration/proxy/v1/service/session/participant_spec.rb +232 -0
- data/spec/integration/proxy/v1/service/session_spec.rb +225 -0
- data/spec/integration/proxy/v1/service/short_code_spec.rb +173 -0
- data/spec/integration/proxy/v1/service_spec.rb +200 -0
- data/spec/integration/wireless/v1/sim_spec.rb +6 -3
- data/spec/rack/twilio_webhook_authentication_spec.rb +106 -0
- data/spec/security/request_validator_spec.rb +28 -0
- data/spec/twiml/messaging_response_spec.rb +6 -6
- metadata +31 -2
@@ -0,0 +1,41 @@
|
|
1
|
+
##
|
2
|
+
# This code was generated by
|
3
|
+
# \ / _ _ _| _ _
|
4
|
+
# | (_)\/(_)(_|\/| |(/_ v1.0.0
|
5
|
+
# / /
|
6
|
+
|
7
|
+
module Twilio
|
8
|
+
module REST
|
9
|
+
class Proxy
|
10
|
+
class V1 < Version
|
11
|
+
##
|
12
|
+
# Initialize the V1 version of Proxy
|
13
|
+
def initialize(domain)
|
14
|
+
super
|
15
|
+
@version = 'v1'
|
16
|
+
@services = nil
|
17
|
+
end
|
18
|
+
|
19
|
+
##
|
20
|
+
# @param [String] sid A 34 character string that uniquely identifies this Service.
|
21
|
+
# @return [Twilio::REST::Proxy::V1::ServiceInstance] if sid was passed.
|
22
|
+
# @return [Twilio::REST::Proxy::V1::ServiceList]
|
23
|
+
def services(sid=:unset)
|
24
|
+
if sid.nil?
|
25
|
+
raise ArgumentError, 'sid cannot be nil'
|
26
|
+
elsif sid == :unset
|
27
|
+
@services ||= ServiceList.new self
|
28
|
+
else
|
29
|
+
ServiceContext.new(self, sid)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
##
|
34
|
+
# Provide a user friendly representation
|
35
|
+
def to_s
|
36
|
+
'<Twilio::REST::Proxy::V1>'
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
##
|
2
|
+
# This code was generated by
|
3
|
+
# \ / _ _ _| _ _
|
4
|
+
# | (_)\/(_)(_|\/| |(/_ v1.0.0
|
5
|
+
# / /
|
6
|
+
|
7
|
+
module Twilio
|
8
|
+
module REST
|
9
|
+
class Proxy < Domain
|
10
|
+
##
|
11
|
+
# Initialize the Proxy Domain
|
12
|
+
def initialize(twilio)
|
13
|
+
super
|
14
|
+
|
15
|
+
@base_url = 'https://proxy.twilio.com'
|
16
|
+
@host = 'proxy.twilio.com'
|
17
|
+
@port = 443
|
18
|
+
|
19
|
+
# Versions
|
20
|
+
@v1 = nil
|
21
|
+
end
|
22
|
+
|
23
|
+
##
|
24
|
+
# Version v1 of proxy
|
25
|
+
def v1
|
26
|
+
@v1 ||= V1.new self
|
27
|
+
end
|
28
|
+
|
29
|
+
##
|
30
|
+
# @param [String] sid A 34 character string that uniquely identifies this Service.
|
31
|
+
# @return [Twilio::REST::Proxy::V1::ServiceInstance] if sid was passed.
|
32
|
+
# @return [Twilio::REST::Proxy::V1::ServiceList]
|
33
|
+
def services(sid=:unset)
|
34
|
+
self.v1.services(sid)
|
35
|
+
end
|
36
|
+
|
37
|
+
##
|
38
|
+
# Provide a user friendly representation
|
39
|
+
def to_s
|
40
|
+
'#<Twilio::REST::Proxy>'
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -350,6 +350,7 @@ module Twilio
|
|
350
350
|
'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
|
351
351
|
'url' => payload['url'],
|
352
352
|
'links' => payload['links'],
|
353
|
+
'ip_address' => payload['ip_address'],
|
353
354
|
}
|
354
355
|
|
355
356
|
# Context
|
@@ -505,6 +506,12 @@ module Twilio
|
|
505
506
|
@properties['links']
|
506
507
|
end
|
507
508
|
|
509
|
+
##
|
510
|
+
# @return [String] The ip_address
|
511
|
+
def ip_address
|
512
|
+
@properties['ip_address']
|
513
|
+
end
|
514
|
+
|
508
515
|
##
|
509
516
|
# Fetch a SimInstance
|
510
517
|
# @return [SimInstance] Fetched SimInstance
|
@@ -18,14 +18,14 @@ module Twilio
|
|
18
18
|
|
19
19
|
##
|
20
20
|
# Create a new <Message> element
|
21
|
-
#
|
21
|
+
# body:: Message Body
|
22
22
|
# to:: Phone Number to send Message to
|
23
23
|
# from:: Phone Number to send Message from
|
24
24
|
# action:: Action URL
|
25
25
|
# method:: Action URL Method
|
26
26
|
# keyword_args:: additional attributes
|
27
|
-
def message(
|
28
|
-
message = Message.new(
|
27
|
+
def message(body: nil, to: nil, from: nil, action: nil, method: nil, **keyword_args)
|
28
|
+
message = Message.new(body: body, to: to, from: from, action: action, method: method, **keyword_args)
|
29
29
|
|
30
30
|
yield(message) if block_given?
|
31
31
|
append(message)
|
@@ -55,10 +55,10 @@ module Twilio
|
|
55
55
|
##
|
56
56
|
# <Message> TwiML Verb
|
57
57
|
class Message < TwiML
|
58
|
-
def initialize(
|
58
|
+
def initialize(body: nil, **keyword_args)
|
59
59
|
super(**keyword_args)
|
60
60
|
@name = 'Message'
|
61
|
-
@value =
|
61
|
+
@value = body unless body.nil?
|
62
62
|
yield(self) if block_given?
|
63
63
|
end
|
64
64
|
|
@@ -29,9 +29,11 @@ module Twilio
|
|
29
29
|
# trim:: Trim the recording
|
30
30
|
# recording_status_callback:: Recording status callback URL
|
31
31
|
# recording_status_callback_method:: Recording status callback URL method
|
32
|
+
# answer_on_bridge:: Preserve the ringing behavior of the inbound call until the Dialed call picks up
|
33
|
+
# ring_tone:: Ringtone allows you to override the ringback tone that Twilio will play back to the caller while executing the Dial
|
32
34
|
# keyword_args:: additional attributes
|
33
|
-
def dial(number: nil, action: nil, method: nil, timeout: nil, hangup_on_star: nil, time_limit: nil, caller_id: nil, record: nil, trim: nil, recording_status_callback: nil, recording_status_callback_method: nil, **keyword_args)
|
34
|
-
dial = Dial.new(number: number, action: action, method: method, timeout: timeout, hangup_on_star: hangup_on_star, time_limit: time_limit, caller_id: caller_id, record: record, trim: trim, recording_status_callback: recording_status_callback, recording_status_callback_method: recording_status_callback_method, **keyword_args)
|
35
|
+
def dial(number: nil, action: nil, method: nil, timeout: nil, hangup_on_star: nil, time_limit: nil, caller_id: nil, record: nil, trim: nil, recording_status_callback: nil, recording_status_callback_method: nil, answer_on_bridge: nil, ring_tone: nil, **keyword_args)
|
36
|
+
dial = Dial.new(number: number, action: action, method: method, timeout: timeout, hangup_on_star: hangup_on_star, time_limit: time_limit, caller_id: caller_id, record: record, trim: trim, recording_status_callback: recording_status_callback, recording_status_callback_method: recording_status_callback_method, answer_on_bridge: answer_on_bridge, ring_tone: ring_tone, **keyword_args)
|
35
37
|
|
36
38
|
yield(dial) if block_given?
|
37
39
|
append(dial)
|
@@ -429,7 +431,7 @@ module Twilio
|
|
429
431
|
|
430
432
|
##
|
431
433
|
# Create a new <Number> element
|
432
|
-
#
|
434
|
+
# phone_number:: Phone Number to dial
|
433
435
|
# send_digits:: DTMF tones to play when the call is answered
|
434
436
|
# url:: TwiML URL
|
435
437
|
# method:: TwiML URL method
|
@@ -437,8 +439,8 @@ module Twilio
|
|
437
439
|
# status_callback:: Status callback URL
|
438
440
|
# status_callback_method:: Status callback URL method
|
439
441
|
# keyword_args:: additional attributes
|
440
|
-
def number(
|
441
|
-
append(Number.new(
|
442
|
+
def number(phone_number, send_digits: nil, url: nil, method: nil, status_callback_event: nil, status_callback: nil, status_callback_method: nil, **keyword_args)
|
443
|
+
append(Number.new(phone_number, send_digits: send_digits, url: url, method: method, status_callback_event: status_callback_event, status_callback: status_callback, status_callback_method: status_callback_method, **keyword_args))
|
442
444
|
end
|
443
445
|
|
444
446
|
##
|
@@ -502,10 +504,10 @@ module Twilio
|
|
502
504
|
##
|
503
505
|
# <Number> TwiML Noun
|
504
506
|
class Number < TwiML
|
505
|
-
def initialize(
|
507
|
+
def initialize(phone_number, **keyword_args)
|
506
508
|
super(**keyword_args)
|
507
509
|
@name = 'Number'
|
508
|
-
@value =
|
510
|
+
@value = phone_number
|
509
511
|
yield(self) if block_given?
|
510
512
|
end
|
511
513
|
end
|
@@ -2,14 +2,11 @@ module Twilio
|
|
2
2
|
module Util
|
3
3
|
class Configuration
|
4
4
|
attr_accessor :account_sid, :auth_token
|
5
|
-
|
6
5
|
def account_sid=value
|
7
|
-
warn "'Twilio::Util::Configuration.account_sid' has been deprecated. Please do not use the configure block."
|
8
6
|
@account_sid=value
|
9
7
|
end
|
10
8
|
|
11
9
|
def auth_token=value
|
12
|
-
warn "'Twilio::Util::Configuration.auth_token' has been deprecated. Please do not use the configure block."
|
13
10
|
@auth_token=value
|
14
11
|
end
|
15
12
|
end
|
data/lib/twilio-ruby/version.rb
CHANGED
data/lib/twilio-ruby.rb
CHANGED
@@ -45,6 +45,7 @@ describe 'Local' do
|
|
45
45
|
"date_created": "Thu, 30 Jul 2015 23:19:04 +0000",
|
46
46
|
"date_updated": "Thu, 30 Jul 2015 23:19:04 +0000",
|
47
47
|
"friendly_name": "(808) 925-5327",
|
48
|
+
"identity_sid": "RIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
48
49
|
"phone_number": "+18089255327",
|
49
50
|
"origin": "origin",
|
50
51
|
"sid": "PNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
@@ -150,6 +151,7 @@ describe 'Local' do
|
|
150
151
|
"date_created": "Thu, 30 Jul 2015 23:19:04 +0000",
|
151
152
|
"date_updated": "Thu, 30 Jul 2015 23:19:04 +0000",
|
152
153
|
"friendly_name": "(808) 925-5327",
|
154
|
+
"identity_sid": "RIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
153
155
|
"phone_number": "+18089255327",
|
154
156
|
"origin": "origin",
|
155
157
|
"sid": "PNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
@@ -45,6 +45,7 @@ describe 'Mobile' do
|
|
45
45
|
"date_created": "Tue, 08 Sep 2015 16:21:16 +0000",
|
46
46
|
"date_updated": "Tue, 08 Sep 2015 16:21:16 +0000",
|
47
47
|
"friendly_name": "61429099450",
|
48
|
+
"identity_sid": "RIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
48
49
|
"phone_number": "+61429099450",
|
49
50
|
"origin": "origin",
|
50
51
|
"sid": "PNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
@@ -149,6 +150,7 @@ describe 'Mobile' do
|
|
149
150
|
},
|
150
151
|
"date_created": "Thu, 30 Jul 2015 23:19:04 +0000",
|
151
152
|
"date_updated": "Thu, 30 Jul 2015 23:19:04 +0000",
|
153
|
+
"identity_sid": "RIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
152
154
|
"friendly_name": "(808) 925-5327",
|
153
155
|
"phone_number": "+18089255327",
|
154
156
|
"origin": "origin",
|
@@ -45,6 +45,7 @@ describe 'TollFree' do
|
|
45
45
|
"date_created": "Thu, 30 Jul 2015 23:19:04 +0000",
|
46
46
|
"date_updated": "Thu, 30 Jul 2015 23:19:04 +0000",
|
47
47
|
"friendly_name": "(808) 925-5327",
|
48
|
+
"identity_sid": "RIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
48
49
|
"phone_number": "+18089255327",
|
49
50
|
"origin": "origin",
|
50
51
|
"sid": "PNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
@@ -150,6 +151,7 @@ describe 'TollFree' do
|
|
150
151
|
"date_created": "Thu, 30 Jul 2015 23:19:04 +0000",
|
151
152
|
"date_updated": "Thu, 30 Jul 2015 23:19:04 +0000",
|
152
153
|
"friendly_name": "(808) 925-5327",
|
154
|
+
"identity_sid": "RIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
153
155
|
"phone_number": "+18089255327",
|
154
156
|
"origin": "origin",
|
155
157
|
"sid": "PNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
@@ -42,6 +42,7 @@ describe 'IncomingPhoneNumber' do
|
|
42
42
|
"emergency_status": "Inactive",
|
43
43
|
"emergency_address_sid": "ADaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
44
44
|
"friendly_name": "(808) 925-5327",
|
45
|
+
"identity_sid": "RIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
45
46
|
"origin": "origin",
|
46
47
|
"phone_number": "+18089255327",
|
47
48
|
"sid": "PNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
@@ -105,6 +106,7 @@ describe 'IncomingPhoneNumber' do
|
|
105
106
|
"emergency_status": "Active",
|
106
107
|
"emergency_address_sid": "ADaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
107
108
|
"friendly_name": "(808) 925-5327",
|
109
|
+
"identity_sid": "RIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
108
110
|
"origin": "origin",
|
109
111
|
"phone_number": "+18089255327",
|
110
112
|
"sid": "PNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
@@ -200,6 +202,7 @@ describe 'IncomingPhoneNumber' do
|
|
200
202
|
"emergency_status": "Active",
|
201
203
|
"emergency_address_sid": "ADaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
202
204
|
"friendly_name": "(808) 925-5327",
|
205
|
+
"identity_sid": "RIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
203
206
|
"origin": "origin",
|
204
207
|
"phone_number": "+18089255327",
|
205
208
|
"sid": "PNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
@@ -301,6 +304,7 @@ describe 'IncomingPhoneNumber' do
|
|
301
304
|
"emergency_status": "Active",
|
302
305
|
"emergency_address_sid": "ADaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
303
306
|
"friendly_name": "(808) 925-5327",
|
307
|
+
"identity_sid": "RIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
304
308
|
"origin": "origin",
|
305
309
|
"phone_number": "+18089255327",
|
306
310
|
"sid": "PNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
@@ -0,0 +1,211 @@
|
|
1
|
+
##
|
2
|
+
# This code was generated by
|
3
|
+
# \ / _ _ _| _ _
|
4
|
+
# | (_)\/(_)(_|\/| |(/_ v1.0.0
|
5
|
+
# / /
|
6
|
+
|
7
|
+
require 'spec_helper.rb'
|
8
|
+
|
9
|
+
describe 'AuthorizationDocument' do
|
10
|
+
it "can fetch" do
|
11
|
+
@holodeck.mock(Twilio::Response.new(500, ''))
|
12
|
+
|
13
|
+
expect {
|
14
|
+
@client.preview.hosted_numbers.authorization_documents("PXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa").fetch()
|
15
|
+
}.to raise_exception(Twilio::REST::TwilioError)
|
16
|
+
|
17
|
+
values = {}
|
18
|
+
expect(
|
19
|
+
@holodeck.has_request?(Holodeck::Request.new(
|
20
|
+
method: 'get',
|
21
|
+
url: 'https://preview.twilio.com/HostedNumbers/AuthorizationDocuments/PXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
|
22
|
+
))).to eq(true)
|
23
|
+
end
|
24
|
+
|
25
|
+
it "receives fetch responses" do
|
26
|
+
@holodeck.mock(Twilio::Response.new(
|
27
|
+
200,
|
28
|
+
%q[
|
29
|
+
{
|
30
|
+
"address_sid": "AD11111111111111111111111111111111",
|
31
|
+
"cc_emails": [
|
32
|
+
"aaa@twilio.com",
|
33
|
+
"bbb@twilio.com"
|
34
|
+
],
|
35
|
+
"date_created": "2017-03-28T20:06:39Z",
|
36
|
+
"date_updated": "2017-03-28T20:06:39Z",
|
37
|
+
"email": "test@twilio.com",
|
38
|
+
"sid": "PXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
39
|
+
"status": "signing",
|
40
|
+
"url": "https://preview.twilio.com/HostedNumbers/AuthorizationDocuments/PXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
41
|
+
}
|
42
|
+
]
|
43
|
+
))
|
44
|
+
|
45
|
+
actual = @client.preview.hosted_numbers.authorization_documents("PXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa").fetch()
|
46
|
+
|
47
|
+
expect(actual).to_not eq(nil)
|
48
|
+
end
|
49
|
+
|
50
|
+
it "can update" do
|
51
|
+
@holodeck.mock(Twilio::Response.new(500, ''))
|
52
|
+
|
53
|
+
expect {
|
54
|
+
@client.preview.hosted_numbers.authorization_documents("PXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa").update()
|
55
|
+
}.to raise_exception(Twilio::REST::TwilioError)
|
56
|
+
|
57
|
+
values = {}
|
58
|
+
expect(
|
59
|
+
@holodeck.has_request?(Holodeck::Request.new(
|
60
|
+
method: 'post',
|
61
|
+
url: 'https://preview.twilio.com/HostedNumbers/AuthorizationDocuments/PXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
|
62
|
+
))).to eq(true)
|
63
|
+
end
|
64
|
+
|
65
|
+
it "receives update responses" do
|
66
|
+
@holodeck.mock(Twilio::Response.new(
|
67
|
+
200,
|
68
|
+
%q[
|
69
|
+
{
|
70
|
+
"address_sid": "ADaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
71
|
+
"cc_emails": [
|
72
|
+
"test1@twilio.com",
|
73
|
+
"test2@twilio.com"
|
74
|
+
],
|
75
|
+
"date_created": "2017-03-28T20:06:39Z",
|
76
|
+
"date_updated": "2017-03-28T20:06:39Z",
|
77
|
+
"email": "test+hosted@twilio.com",
|
78
|
+
"sid": "PXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
79
|
+
"status": "signing",
|
80
|
+
"url": "https://preview.twilio.com/HostedNumbers/AuthorizationDocuments/PXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
81
|
+
}
|
82
|
+
]
|
83
|
+
))
|
84
|
+
|
85
|
+
actual = @client.preview.hosted_numbers.authorization_documents("PXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa").update()
|
86
|
+
|
87
|
+
expect(actual).to_not eq(nil)
|
88
|
+
end
|
89
|
+
|
90
|
+
it "can read" do
|
91
|
+
@holodeck.mock(Twilio::Response.new(500, ''))
|
92
|
+
|
93
|
+
expect {
|
94
|
+
@client.preview.hosted_numbers.authorization_documents.list()
|
95
|
+
}.to raise_exception(Twilio::REST::TwilioError)
|
96
|
+
|
97
|
+
values = {}
|
98
|
+
expect(
|
99
|
+
@holodeck.has_request?(Holodeck::Request.new(
|
100
|
+
method: 'get',
|
101
|
+
url: 'https://preview.twilio.com/HostedNumbers/AuthorizationDocuments',
|
102
|
+
))).to eq(true)
|
103
|
+
end
|
104
|
+
|
105
|
+
it "receives read_empty responses" do
|
106
|
+
@holodeck.mock(Twilio::Response.new(
|
107
|
+
200,
|
108
|
+
%q[
|
109
|
+
{
|
110
|
+
"meta": {
|
111
|
+
"first_page_url": "https://preview.twilio.com/HostedNumbers/AuthorizationDocuments?PageSize=50&Page=0",
|
112
|
+
"key": "items",
|
113
|
+
"next_page_url": null,
|
114
|
+
"page": 0,
|
115
|
+
"page_size": 50,
|
116
|
+
"previous_page_url": null,
|
117
|
+
"url": "https://preview.twilio.com/HostedNumbers/AuthorizationDocuments?PageSize=50&Page=0"
|
118
|
+
},
|
119
|
+
"items": []
|
120
|
+
}
|
121
|
+
]
|
122
|
+
))
|
123
|
+
|
124
|
+
actual = @client.preview.hosted_numbers.authorization_documents.list()
|
125
|
+
|
126
|
+
expect(actual).to_not eq(nil)
|
127
|
+
end
|
128
|
+
|
129
|
+
it "receives read_full responses" do
|
130
|
+
@holodeck.mock(Twilio::Response.new(
|
131
|
+
200,
|
132
|
+
%q[
|
133
|
+
{
|
134
|
+
"meta": {
|
135
|
+
"first_page_url": "https://preview.twilio.com/HostedNumbers/AuthorizationDocuments?PageSize=50&Page=0",
|
136
|
+
"key": "items",
|
137
|
+
"next_page_url": null,
|
138
|
+
"page": 0,
|
139
|
+
"page_size": 50,
|
140
|
+
"previous_page_url": null,
|
141
|
+
"url": "https://preview.twilio.com/HostedNumbers/AuthorizationDocuments?PageSize=50&Page=0"
|
142
|
+
},
|
143
|
+
"items": [
|
144
|
+
{
|
145
|
+
"address_sid": "ADaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
146
|
+
"cc_emails": [
|
147
|
+
"test1@twilio.com",
|
148
|
+
"test2@twilio.com"
|
149
|
+
],
|
150
|
+
"date_created": "2017-03-28T20:06:39Z",
|
151
|
+
"date_updated": "2017-03-28T20:06:39Z",
|
152
|
+
"email": "test+hosted@twilio.com",
|
153
|
+
"sid": "PXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
154
|
+
"status": "signing",
|
155
|
+
"url": "https://preview.twilio.com/HostedNumbers/AuthorizationDocuments/PXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
156
|
+
}
|
157
|
+
]
|
158
|
+
}
|
159
|
+
]
|
160
|
+
))
|
161
|
+
|
162
|
+
actual = @client.preview.hosted_numbers.authorization_documents.list()
|
163
|
+
|
164
|
+
expect(actual).to_not eq(nil)
|
165
|
+
end
|
166
|
+
|
167
|
+
it "can create" do
|
168
|
+
@holodeck.mock(Twilio::Response.new(500, ''))
|
169
|
+
|
170
|
+
expect {
|
171
|
+
@client.preview.hosted_numbers.authorization_documents.create(hosted_number_order_sids: ['hosted_number_order_sids'], address_sid: "ADaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", email: "email")
|
172
|
+
}.to raise_exception(Twilio::REST::TwilioError)
|
173
|
+
|
174
|
+
values = {
|
175
|
+
'HostedNumberOrderSids' => ['hosted_number_order_sids'],
|
176
|
+
'AddressSid' => "ADaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
177
|
+
'Email' => "email",
|
178
|
+
}
|
179
|
+
expect(
|
180
|
+
@holodeck.has_request?(Holodeck::Request.new(
|
181
|
+
method: 'post',
|
182
|
+
url: 'https://preview.twilio.com/HostedNumbers/AuthorizationDocuments',
|
183
|
+
data: values,
|
184
|
+
))).to eq(true)
|
185
|
+
end
|
186
|
+
|
187
|
+
it "receives create responses" do
|
188
|
+
@holodeck.mock(Twilio::Response.new(
|
189
|
+
201,
|
190
|
+
%q[
|
191
|
+
{
|
192
|
+
"address_sid": "ADaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
193
|
+
"cc_emails": [
|
194
|
+
"test1@twilio.com",
|
195
|
+
"test2@twilio.com"
|
196
|
+
],
|
197
|
+
"date_created": "2017-03-28T20:06:39Z",
|
198
|
+
"date_updated": "2017-03-28T20:06:39Z",
|
199
|
+
"email": "test+hosted@twilio.com",
|
200
|
+
"sid": "PXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
201
|
+
"status": "signing",
|
202
|
+
"url": "https://preview.twilio.com/HostedNumbers/AuthorizationDocuments/PXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
203
|
+
}
|
204
|
+
]
|
205
|
+
))
|
206
|
+
|
207
|
+
actual = @client.preview.hosted_numbers.authorization_documents.create(hosted_number_order_sids: ['hosted_number_order_sids'], address_sid: "ADaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", email: "email")
|
208
|
+
|
209
|
+
expect(actual).to_not eq(nil)
|
210
|
+
end
|
211
|
+
end
|