twilio-ruby 4.8.0.edge → 4.8.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 +35 -0
- data/lib/twilio-ruby/rest/list_resource.rb +3 -4
- data/lib/twilio-ruby/rest/next_gen_list_resource.rb +2 -3
- data/lib/twilio-ruby/rest/pricing_client.rb +1 -1
- data/lib/twilio-ruby/rest/trunking_client.rb +2 -2
- data/lib/twilio-ruby/rest/utils.rb +1 -12
- data/lib/twilio-ruby/util/access_token.rb +12 -3
- data/lib/twilio-ruby/version.rb +1 -1
- data/lib/twilio-ruby.rb +1 -13
- data/spec/rest/pricing_client_spec.rb +15 -0
- data/spec/util/access_token_spec.rb +31 -12
- metadata +20 -43
- data/lib/twilio-ruby/rest/conversations/completed.rb +0 -13
- data/lib/twilio-ruby/rest/conversations/conversations.rb +0 -23
- data/lib/twilio-ruby/rest/conversations/in_progress.rb +0 -13
- data/lib/twilio-ruby/rest/conversations/participants.rb +0 -8
- data/lib/twilio-ruby/rest/conversations_client.rb +0 -99
- data/lib/twilio-ruby/rest/ip-messaging/channels.rb +0 -21
- data/lib/twilio-ruby/rest/ip-messaging/credentials.rb +0 -22
- data/lib/twilio-ruby/rest/ip-messaging/members.rb +0 -8
- data/lib/twilio-ruby/rest/ip-messaging/messages.rb +0 -8
- data/lib/twilio-ruby/rest/ip-messaging/roles.rb +0 -8
- data/lib/twilio-ruby/rest/ip-messaging/services.rb +0 -22
- data/lib/twilio-ruby/rest/ip-messaging/users.rb +0 -8
- data/lib/twilio-ruby/rest/ip_messaging_client.rb +0 -100
- data/spec/conversations/conversations_spec.rb +0 -61
- data/spec/rest/conversations_client_spec.rb +0 -13
- data/spec/rest/ip-messaging/channel_spec.rb +0 -21
- data/spec/rest/ip-messaging/service_spec.rb +0 -30
- data/spec/rest/ip_messaging_client_spec.rb +0 -21
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1039025067aafec54048cf0bf4ed28b884cc5242
|
|
4
|
+
data.tar.gz: 8238a181bcd6831902601e943102b468dcc08832
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e5d9e4dd3a04bdb3283c9f56bbc33fe9d0dc23cc5726a062570c197722518c97573258b39d323cdfe6ab5376ce19b7dcd4102d90b26de8f00ad1d76c91859d8d
|
|
7
|
+
data.tar.gz: 31a0c13dad6d659a8fc1577d4f1802f78042b1eb10b3f4d971680ca694d6e89b7a5c5832cbe48de3f2a9a6484a223f7bda3949cff907a00fb02967c9579a3089
|
data/CHANGES.md
CHANGED
|
@@ -1,6 +1,41 @@
|
|
|
1
1
|
twilio-ruby changelog
|
|
2
2
|
=====================
|
|
3
3
|
|
|
4
|
+
Version 4.8.0
|
|
5
|
+
-------------
|
|
6
|
+
|
|
7
|
+
Release December 8, 2015
|
|
8
|
+
|
|
9
|
+
- Make nbf optional
|
|
10
|
+
|
|
11
|
+
Version 4.7.0
|
|
12
|
+
-------------
|
|
13
|
+
|
|
14
|
+
Release December 3, 2015
|
|
15
|
+
|
|
16
|
+
- Add access tokens
|
|
17
|
+
|
|
18
|
+
Version 4.6.2
|
|
19
|
+
-------------
|
|
20
|
+
|
|
21
|
+
Release November 19, 2015
|
|
22
|
+
|
|
23
|
+
- Fix Pricing Messages
|
|
24
|
+
|
|
25
|
+
Version 4.6.1
|
|
26
|
+
-------------
|
|
27
|
+
|
|
28
|
+
Release November 10, 2015
|
|
29
|
+
|
|
30
|
+
- Fix TrunkingClient references
|
|
31
|
+
|
|
32
|
+
Version 4.6.0
|
|
33
|
+
-------------
|
|
34
|
+
|
|
35
|
+
Release October 28, 2015
|
|
36
|
+
|
|
37
|
+
- Add /Keys endpoint
|
|
38
|
+
|
|
4
39
|
Version 4.4.0
|
|
5
40
|
-------------
|
|
6
41
|
|
|
@@ -10,7 +10,7 @@ module Twilio
|
|
|
10
10
|
'Countries' => 'Country',
|
|
11
11
|
'Feedback' => 'FeedbackInstance',
|
|
12
12
|
'IpAddresses' => 'IpAddress',
|
|
13
|
-
'Media' => 'MediaInstance'
|
|
13
|
+
'Media' => 'MediaInstance',
|
|
14
14
|
}
|
|
15
15
|
@path, @client = path, client
|
|
16
16
|
resource_name = self.class.name.split('::')[-1]
|
|
@@ -46,8 +46,7 @@ module Twilio
|
|
|
46
46
|
raise "Can't get a resource list without a REST Client" unless @client
|
|
47
47
|
response = @client.get @path, params, full_path
|
|
48
48
|
resources = response[@list_key]
|
|
49
|
-
path =
|
|
50
|
-
path = full_path ? path.split('.')[0] : path
|
|
49
|
+
path = full_path ? @path.split('.')[0] : @path
|
|
51
50
|
resource_list = resources.map do |resource|
|
|
52
51
|
@instance_class.new "#{path}/#{resource[@instance_id_key]}", @client,
|
|
53
52
|
resource
|
|
@@ -81,7 +80,7 @@ module Twilio
|
|
|
81
80
|
# attribute of the returned instance resource object, such as
|
|
82
81
|
# its #date_created or #voice_url attributes.
|
|
83
82
|
def get(sid)
|
|
84
|
-
@instance_class.new "#{@
|
|
83
|
+
@instance_class.new "#{@path}/#{sid}", @client
|
|
85
84
|
end
|
|
86
85
|
alias :find :get # for the ActiveRecord lovers
|
|
87
86
|
|
|
@@ -4,12 +4,11 @@ module Twilio
|
|
|
4
4
|
def list(params={}, full_path=false)
|
|
5
5
|
raise "Can't get a resource list without a REST Client" unless @client
|
|
6
6
|
response = @client.get @path, params, full_path
|
|
7
|
-
list_key = response['meta']['key']
|
|
7
|
+
list_key = response['meta']['key']
|
|
8
8
|
raise "Couldn't find a list key in response meta" unless list_key
|
|
9
9
|
resources = response[list_key]
|
|
10
|
-
path = @frozen_path ? @frozen_path : @path
|
|
11
10
|
resource_list = resources.map do |resource|
|
|
12
|
-
@instance_class.new "#{path}/#{resource[@instance_id_key]}", @client,
|
|
11
|
+
@instance_class.new "#{@path}/#{resource[@instance_id_key]}", @client,
|
|
13
12
|
resource
|
|
14
13
|
end
|
|
15
14
|
client, list_class = @client, self.class
|
|
@@ -89,9 +89,9 @@ module Twilio
|
|
|
89
89
|
protected
|
|
90
90
|
|
|
91
91
|
##
|
|
92
|
-
# Set up +
|
|
92
|
+
# Set up +trunks+ attribute.
|
|
93
93
|
def set_up_subresources # :doc:
|
|
94
|
-
@
|
|
94
|
+
@trunks = Twilio::REST::Trunking::Trunks.new "/#{API_VERSION}/Trunks", self
|
|
95
95
|
end
|
|
96
96
|
|
|
97
97
|
##
|
|
@@ -19,13 +19,6 @@ module Twilio
|
|
|
19
19
|
|
|
20
20
|
protected
|
|
21
21
|
|
|
22
|
-
# Freeze the base list path.
|
|
23
|
-
# Used on list resources so filters (such as /Local) do not affect the
|
|
24
|
-
# instance resource path.
|
|
25
|
-
def freeze_path
|
|
26
|
-
@frozen_path = @path
|
|
27
|
-
end
|
|
28
|
-
|
|
29
22
|
def resource(*resources)
|
|
30
23
|
custom_resource_names = { sms: 'SMS', sip: 'SIP' }
|
|
31
24
|
resources.each do |r|
|
|
@@ -38,11 +31,7 @@ module Twilio
|
|
|
38
31
|
Twilio::REST.const_get(@submodule)
|
|
39
32
|
end
|
|
40
33
|
resource_class = enclosing_module.const_get resource
|
|
41
|
-
|
|
42
|
-
instance_variable_set("@#{r}", resource_object)
|
|
43
|
-
if @frozen_path
|
|
44
|
-
resource_object.instance_variable_set(:@frozen_path, @frozen_path)
|
|
45
|
-
end
|
|
34
|
+
instance_variable_set("@#{r}", resource_class.new(path, @client))
|
|
46
35
|
end
|
|
47
36
|
self.class.instance_eval { attr_reader *resources }
|
|
48
37
|
end
|
|
@@ -1,12 +1,20 @@
|
|
|
1
1
|
module Twilio
|
|
2
2
|
module Util
|
|
3
3
|
class AccessToken
|
|
4
|
-
|
|
4
|
+
attr_accessor :account_sid,
|
|
5
|
+
:signing_key_id,
|
|
6
|
+
:secret,
|
|
7
|
+
:ttl,
|
|
8
|
+
:identity,
|
|
9
|
+
:nbf
|
|
10
|
+
|
|
11
|
+
def initialize(account_sid, signing_key_id, secret, ttl=3600, identity=nil, nbf=nil)
|
|
5
12
|
@account_sid = account_sid
|
|
6
13
|
@signing_key_sid = signing_key_id
|
|
7
14
|
@secret = secret
|
|
8
15
|
@ttl = ttl
|
|
9
16
|
@identity = identity
|
|
17
|
+
@nbf = nbf
|
|
10
18
|
@grants = []
|
|
11
19
|
end
|
|
12
20
|
|
|
@@ -32,10 +40,11 @@ module Twilio
|
|
|
32
40
|
'jti' => "#{@signing_key_sid}-#{now}",
|
|
33
41
|
'iss' => @signing_key_sid,
|
|
34
42
|
'sub' => @account_sid,
|
|
35
|
-
'nbf' => now,
|
|
36
43
|
'exp' => now + @ttl,
|
|
37
44
|
'grants' => grants
|
|
38
45
|
}
|
|
46
|
+
payload['nbf'] = @nbf unless @nbf.nil?
|
|
47
|
+
|
|
39
48
|
JWT.encode payload, @secret, algorithm, headers
|
|
40
49
|
end
|
|
41
50
|
|
|
@@ -64,7 +73,7 @@ module Twilio
|
|
|
64
73
|
class IpMessagingGrant
|
|
65
74
|
attr_accessor :service_sid,
|
|
66
75
|
:endpoint_id,
|
|
67
|
-
:
|
|
76
|
+
:deployment_role_sid,
|
|
68
77
|
:push_credential_sid
|
|
69
78
|
|
|
70
79
|
def key
|
data/lib/twilio-ruby/version.rb
CHANGED
data/lib/twilio-ruby.rb
CHANGED
|
@@ -36,17 +36,6 @@ require 'twilio-ruby/rest/pricing/phone_numbers'
|
|
|
36
36
|
require 'twilio-ruby/rest/pricing/voice/numbers'
|
|
37
37
|
require 'twilio-ruby/rest/pricing/voice'
|
|
38
38
|
require 'twilio-ruby/rest/pricing/messaging'
|
|
39
|
-
require 'twilio-ruby/rest/conversations/in_progress'
|
|
40
|
-
require 'twilio-ruby/rest/conversations/completed'
|
|
41
|
-
require 'twilio-ruby/rest/conversations/conversations'
|
|
42
|
-
require 'twilio-ruby/rest/conversations/participants'
|
|
43
|
-
require 'twilio-ruby/rest/ip-messaging/services'
|
|
44
|
-
require 'twilio-ruby/rest/ip-messaging/channels'
|
|
45
|
-
require 'twilio-ruby/rest/ip-messaging/members'
|
|
46
|
-
require 'twilio-ruby/rest/ip-messaging/messages'
|
|
47
|
-
require 'twilio-ruby/rest/ip-messaging/roles'
|
|
48
|
-
require 'twilio-ruby/rest/ip-messaging/users'
|
|
49
|
-
require 'twilio-ruby/rest/ip-messaging/credentials'
|
|
50
39
|
require 'twilio-ruby/rest/sms'
|
|
51
40
|
require 'twilio-ruby/rest/sms/short_codes'
|
|
52
41
|
require 'twilio-ruby/rest/sms/messages'
|
|
@@ -108,12 +97,11 @@ require 'twilio-ruby/rest/notifications'
|
|
|
108
97
|
require 'twilio-ruby/rest/addresses'
|
|
109
98
|
require 'twilio-ruby/rest/addresses/dependent_phone_numbers'
|
|
110
99
|
require 'twilio-ruby/rest/client'
|
|
111
|
-
require 'twilio-ruby/rest/conversations_client'
|
|
112
100
|
require 'twilio-ruby/rest/task_router_client'
|
|
101
|
+
require 'twilio-ruby/rest/trunking_client'
|
|
113
102
|
require 'twilio-ruby/rest/lookups_client'
|
|
114
103
|
require 'twilio-ruby/rest/pricing_client'
|
|
115
104
|
require 'twilio-ruby/rest/monitor_client'
|
|
116
|
-
require 'twilio-ruby/rest/ip_messaging_client'
|
|
117
105
|
require 'rack/twilio_webhook_authentication'
|
|
118
106
|
|
|
119
107
|
module Twilio
|
|
@@ -42,4 +42,19 @@ describe Twilio::REST::PricingClient do
|
|
|
42
42
|
'/v1/PhoneNumbers/Countries'
|
|
43
43
|
)
|
|
44
44
|
end
|
|
45
|
+
|
|
46
|
+
it 'should set up a messaging resources object' do
|
|
47
|
+
expect(@client).to respond_to(:messaging)
|
|
48
|
+
expect(@client.messaging.instance_variable_get('@path')).to eq(
|
|
49
|
+
'/v1/Messaging'
|
|
50
|
+
)
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
it 'should set up the country list resource on messaging' do
|
|
54
|
+
messaging = @client.messaging
|
|
55
|
+
expect(messaging).to respond_to(:countries)
|
|
56
|
+
expect(messaging.countries.instance_variable_get('@path')).to eq(
|
|
57
|
+
'/v1/Messaging/Countries'
|
|
58
|
+
)
|
|
59
|
+
end
|
|
45
60
|
end
|
|
@@ -10,15 +10,37 @@ describe Twilio::Util::AccessToken do
|
|
|
10
10
|
|
|
11
11
|
expect(payload['iss']).to eq('SK123')
|
|
12
12
|
expect(payload['sub']).to eq('AC123')
|
|
13
|
-
expect(payload['nbf']).not_to be_nil
|
|
14
13
|
expect(payload['exp']).not_to be_nil
|
|
15
|
-
expect(payload['
|
|
14
|
+
expect(payload['exp']).to be >= Time.now.to_i
|
|
16
15
|
expect(payload['jti']).not_to be_nil
|
|
17
|
-
expect(
|
|
16
|
+
expect(payload['jti']).to start_with payload['iss']
|
|
18
17
|
expect(payload['grants']).not_to be_nil
|
|
19
18
|
expect(payload['grants'].count).to eq(0)
|
|
20
19
|
end
|
|
21
20
|
|
|
21
|
+
it 'should generate a nbf' do
|
|
22
|
+
now = Time.now.to_i
|
|
23
|
+
scat = Twilio::Util::AccessToken.new 'AC123', 'SK123','secret'
|
|
24
|
+
scat.identity = 'abc'
|
|
25
|
+
scat.nbf = now
|
|
26
|
+
|
|
27
|
+
token = scat.to_s
|
|
28
|
+
expect(token).not_to be_nil
|
|
29
|
+
payload, header = JWT.decode token, 'secret'
|
|
30
|
+
|
|
31
|
+
expect(payload['iss']).to eq('SK123')
|
|
32
|
+
expect(payload['sub']).to eq('AC123')
|
|
33
|
+
expect(payload['nbf']).not_to be_nil
|
|
34
|
+
expect(payload['nbf']).to eq(now)
|
|
35
|
+
expect(payload['exp']).not_to be_nil
|
|
36
|
+
expect(payload['exp']).to be >= Time.now.to_i
|
|
37
|
+
expect(payload['jti']).not_to be_nil
|
|
38
|
+
expect(payload['jti']).to start_with payload['iss']
|
|
39
|
+
expect(payload['grants']).not_to be_nil
|
|
40
|
+
expect(payload['grants'].count).to eq(1)
|
|
41
|
+
expect(payload['grants']['identity']).to eq('abc')
|
|
42
|
+
end
|
|
43
|
+
|
|
22
44
|
it 'should be able to add conversation grant' do
|
|
23
45
|
scat = Twilio::Util::AccessToken.new 'AC123', 'SK123','secret'
|
|
24
46
|
scat.add_grant(Twilio::Util::AccessToken::ConversationsGrant.new)
|
|
@@ -29,11 +51,10 @@ describe Twilio::Util::AccessToken do
|
|
|
29
51
|
|
|
30
52
|
expect(payload['iss']).to eq('SK123')
|
|
31
53
|
expect(payload['sub']).to eq('AC123')
|
|
32
|
-
expect(payload['nbf']).not_to be_nil
|
|
33
54
|
expect(payload['exp']).not_to be_nil
|
|
34
|
-
expect(payload['
|
|
55
|
+
expect(payload['exp']).to be >= Time.now.to_i
|
|
35
56
|
expect(payload['jti']).not_to be_nil
|
|
36
|
-
expect(
|
|
57
|
+
expect(payload['jti']).to start_with payload['iss']
|
|
37
58
|
expect(payload['grants']).not_to be_nil
|
|
38
59
|
expect(payload['grants'].count).to eq(1)
|
|
39
60
|
expect(payload['grants']['rtc']).not_to be_nil
|
|
@@ -49,11 +70,10 @@ describe Twilio::Util::AccessToken do
|
|
|
49
70
|
|
|
50
71
|
expect(payload['iss']).to eq('SK123')
|
|
51
72
|
expect(payload['sub']).to eq('AC123')
|
|
52
|
-
expect(payload['nbf']).not_to be_nil
|
|
53
73
|
expect(payload['exp']).not_to be_nil
|
|
54
|
-
expect(payload['
|
|
74
|
+
expect(payload['exp']).to be >= Time.now.to_i
|
|
55
75
|
expect(payload['jti']).not_to be_nil
|
|
56
|
-
expect(
|
|
76
|
+
expect(payload['jti']).to start_with payload['iss']
|
|
57
77
|
expect(payload['grants']).not_to be_nil
|
|
58
78
|
expect(payload['grants'].count).to eq(1)
|
|
59
79
|
expect(payload['grants']['ip_messaging']).not_to be_nil
|
|
@@ -70,11 +90,10 @@ describe Twilio::Util::AccessToken do
|
|
|
70
90
|
|
|
71
91
|
expect(payload['iss']).to eq('SK123')
|
|
72
92
|
expect(payload['sub']).to eq('AC123')
|
|
73
|
-
expect(payload['nbf']).not_to be_nil
|
|
74
93
|
expect(payload['exp']).not_to be_nil
|
|
75
|
-
expect(payload['
|
|
94
|
+
expect(payload['exp']).to be >= Time.now.to_i
|
|
76
95
|
expect(payload['jti']).not_to be_nil
|
|
77
|
-
expect(
|
|
96
|
+
expect(payload['jti']).to start_with payload['iss']
|
|
78
97
|
expect(payload['grants']).not_to be_nil
|
|
79
98
|
expect(payload['grants'].count).to eq(2)
|
|
80
99
|
expect(payload['grants']['rtc']).not_to be_nil
|
metadata
CHANGED
|
@@ -1,69 +1,69 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: twilio-ruby
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.8.0
|
|
4
|
+
version: 4.8.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Andrew Benton
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2015-
|
|
11
|
+
date: 2015-12-09 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: multi_json
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
|
-
- -
|
|
17
|
+
- - ">="
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
19
|
version: 1.3.0
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
|
-
- -
|
|
24
|
+
- - ">="
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
26
|
version: 1.3.0
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: builder
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
|
-
- -
|
|
31
|
+
- - ">="
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
33
|
version: 2.1.2
|
|
34
34
|
type: :runtime
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
|
-
- -
|
|
38
|
+
- - ">="
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
40
|
version: 2.1.2
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: jwt
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
|
-
- - ~>
|
|
45
|
+
- - "~>"
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
47
|
version: '1.0'
|
|
48
48
|
type: :runtime
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
|
-
- - ~>
|
|
52
|
+
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
54
|
version: '1.0'
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
56
|
name: bundler
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
58
58
|
requirements:
|
|
59
|
-
- - ~>
|
|
59
|
+
- - "~>"
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
61
|
version: '1.5'
|
|
62
62
|
type: :development
|
|
63
63
|
prerelease: false
|
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
65
|
requirements:
|
|
66
|
-
- - ~>
|
|
66
|
+
- - "~>"
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
68
|
version: '1.5'
|
|
69
69
|
description: A simple library for communicating with the Twilio REST API, building
|
|
@@ -76,8 +76,8 @@ extra_rdoc_files:
|
|
|
76
76
|
- README.md
|
|
77
77
|
- LICENSE.md
|
|
78
78
|
files:
|
|
79
|
-
- .gitignore
|
|
80
|
-
- .travis.yml
|
|
79
|
+
- ".gitignore"
|
|
80
|
+
- ".travis.yml"
|
|
81
81
|
- AUTHORS.md
|
|
82
82
|
- CHANGES.md
|
|
83
83
|
- Gemfile
|
|
@@ -150,25 +150,12 @@ files:
|
|
|
150
150
|
- lib/twilio-ruby/rest/conferences.rb
|
|
151
151
|
- lib/twilio-ruby/rest/conferences/participants.rb
|
|
152
152
|
- lib/twilio-ruby/rest/connect_apps.rb
|
|
153
|
-
- lib/twilio-ruby/rest/conversations/completed.rb
|
|
154
|
-
- lib/twilio-ruby/rest/conversations/conversations.rb
|
|
155
|
-
- lib/twilio-ruby/rest/conversations/in_progress.rb
|
|
156
|
-
- lib/twilio-ruby/rest/conversations/participants.rb
|
|
157
|
-
- lib/twilio-ruby/rest/conversations_client.rb
|
|
158
153
|
- lib/twilio-ruby/rest/errors.rb
|
|
159
154
|
- lib/twilio-ruby/rest/incoming_phone_numbers.rb
|
|
160
155
|
- lib/twilio-ruby/rest/incoming_phone_numbers/local.rb
|
|
161
156
|
- lib/twilio-ruby/rest/incoming_phone_numbers/mobile.rb
|
|
162
157
|
- lib/twilio-ruby/rest/incoming_phone_numbers/toll_free.rb
|
|
163
158
|
- lib/twilio-ruby/rest/instance_resource.rb
|
|
164
|
-
- lib/twilio-ruby/rest/ip-messaging/channels.rb
|
|
165
|
-
- lib/twilio-ruby/rest/ip-messaging/credentials.rb
|
|
166
|
-
- lib/twilio-ruby/rest/ip-messaging/members.rb
|
|
167
|
-
- lib/twilio-ruby/rest/ip-messaging/messages.rb
|
|
168
|
-
- lib/twilio-ruby/rest/ip-messaging/roles.rb
|
|
169
|
-
- lib/twilio-ruby/rest/ip-messaging/services.rb
|
|
170
|
-
- lib/twilio-ruby/rest/ip-messaging/users.rb
|
|
171
|
-
- lib/twilio-ruby/rest/ip_messaging_client.rb
|
|
172
159
|
- lib/twilio-ruby/rest/keys.rb
|
|
173
160
|
- lib/twilio-ruby/rest/list_resource.rb
|
|
174
161
|
- lib/twilio-ruby/rest/lookups/phone_numbers.rb
|
|
@@ -240,7 +227,6 @@ files:
|
|
|
240
227
|
- lib/twilio-ruby/util/configuration.rb
|
|
241
228
|
- lib/twilio-ruby/util/request_validator.rb
|
|
242
229
|
- lib/twilio-ruby/version.rb
|
|
243
|
-
- spec/conversations/conversations_spec.rb
|
|
244
230
|
- spec/rack/twilio_webhook_authentication_spec.rb
|
|
245
231
|
- spec/rest/account_spec.rb
|
|
246
232
|
- spec/rest/address_spec.rb
|
|
@@ -249,11 +235,7 @@ files:
|
|
|
249
235
|
- spec/rest/call_spec.rb
|
|
250
236
|
- spec/rest/client_spec.rb
|
|
251
237
|
- spec/rest/conference_spec.rb
|
|
252
|
-
- spec/rest/conversations_client_spec.rb
|
|
253
238
|
- spec/rest/instance_resource_spec.rb
|
|
254
|
-
- spec/rest/ip-messaging/channel_spec.rb
|
|
255
|
-
- spec/rest/ip-messaging/service_spec.rb
|
|
256
|
-
- spec/rest/ip_messaging_client_spec.rb
|
|
257
239
|
- spec/rest/key_spec.rb
|
|
258
240
|
- spec/rest/lookups/phone_number_spec.rb
|
|
259
241
|
- spec/rest/message_spec.rb
|
|
@@ -291,33 +273,32 @@ licenses:
|
|
|
291
273
|
metadata: {}
|
|
292
274
|
post_install_message:
|
|
293
275
|
rdoc_options:
|
|
294
|
-
- --line-numbers
|
|
295
|
-
- --inline-source
|
|
296
|
-
- --title
|
|
276
|
+
- "--line-numbers"
|
|
277
|
+
- "--inline-source"
|
|
278
|
+
- "--title"
|
|
297
279
|
- twilio-ruby
|
|
298
|
-
- --main
|
|
280
|
+
- "--main"
|
|
299
281
|
- README.md
|
|
300
282
|
require_paths:
|
|
301
283
|
- lib
|
|
302
284
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
303
285
|
requirements:
|
|
304
|
-
- -
|
|
286
|
+
- - ">="
|
|
305
287
|
- !ruby/object:Gem::Version
|
|
306
288
|
version: 1.9.3
|
|
307
289
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
308
290
|
requirements:
|
|
309
|
-
- -
|
|
291
|
+
- - ">="
|
|
310
292
|
- !ruby/object:Gem::Version
|
|
311
|
-
version:
|
|
293
|
+
version: '0'
|
|
312
294
|
requirements: []
|
|
313
295
|
rubyforge_project:
|
|
314
|
-
rubygems_version: 2.
|
|
296
|
+
rubygems_version: 2.4.8
|
|
315
297
|
signing_key:
|
|
316
298
|
specification_version: 4
|
|
317
299
|
summary: A simple library for communicating with the Twilio REST API, building TwiML,
|
|
318
300
|
and generating Twilio Client Capability Tokens
|
|
319
301
|
test_files:
|
|
320
|
-
- spec/conversations/conversations_spec.rb
|
|
321
302
|
- spec/rack/twilio_webhook_authentication_spec.rb
|
|
322
303
|
- spec/rest/account_spec.rb
|
|
323
304
|
- spec/rest/address_spec.rb
|
|
@@ -326,11 +307,7 @@ test_files:
|
|
|
326
307
|
- spec/rest/call_spec.rb
|
|
327
308
|
- spec/rest/client_spec.rb
|
|
328
309
|
- spec/rest/conference_spec.rb
|
|
329
|
-
- spec/rest/conversations_client_spec.rb
|
|
330
310
|
- spec/rest/instance_resource_spec.rb
|
|
331
|
-
- spec/rest/ip-messaging/channel_spec.rb
|
|
332
|
-
- spec/rest/ip-messaging/service_spec.rb
|
|
333
|
-
- spec/rest/ip_messaging_client_spec.rb
|
|
334
311
|
- spec/rest/key_spec.rb
|
|
335
312
|
- spec/rest/lookups/phone_number_spec.rb
|
|
336
313
|
- spec/rest/message_spec.rb
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
module Twilio
|
|
2
|
-
module REST
|
|
3
|
-
module Conversations
|
|
4
|
-
class Completed < NextGenListResource
|
|
5
|
-
def initialize(path, client)
|
|
6
|
-
@path, @client = path, client
|
|
7
|
-
@instance_class = Twilio::REST::Conversations::Conversation
|
|
8
|
-
@instance_id_key = 'sid'
|
|
9
|
-
end
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
end
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
module Twilio
|
|
2
|
-
module REST
|
|
3
|
-
module Conversations
|
|
4
|
-
class Conversations < NextGenListResource
|
|
5
|
-
def initialize(path, client)
|
|
6
|
-
@path, @client = path, client
|
|
7
|
-
@submodule = :Conversations
|
|
8
|
-
freeze_path
|
|
9
|
-
resource :in_progress,
|
|
10
|
-
:completed
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
class Conversation < InstanceResource
|
|
15
|
-
def initialize(path, client, params={})
|
|
16
|
-
super
|
|
17
|
-
@submodule = :Conversations
|
|
18
|
-
resource :participants
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
module Twilio
|
|
2
|
-
module REST
|
|
3
|
-
module Conversations
|
|
4
|
-
class InProgress < NextGenListResource
|
|
5
|
-
def initialize(path, client)
|
|
6
|
-
@path, @client = path, client
|
|
7
|
-
@instance_class = Twilio::REST::Conversations::Conversation
|
|
8
|
-
@instance_id_key = 'sid'
|
|
9
|
-
end
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
end
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
require 'twilio-ruby/rest/base_client'
|
|
2
|
-
module Twilio
|
|
3
|
-
module REST
|
|
4
|
-
class ConversationsClient < BaseClient
|
|
5
|
-
API_VERSION = 'v1'
|
|
6
|
-
|
|
7
|
-
attr_reader :conversations
|
|
8
|
-
|
|
9
|
-
host 'conversations.twilio.com'
|
|
10
|
-
|
|
11
|
-
##
|
|
12
|
-
# Instantiate a new HTTP Conversations client to talk to Twilio. The parameters
|
|
13
|
-
# +account_sid+, +auth_token+ are required, unless you have configured
|
|
14
|
-
# them already using the block configure syntax, and used to generate the
|
|
15
|
-
# HTTP basic auth header in each request. The +options+ parameter is a
|
|
16
|
-
# hash of connection configuration options. the following keys are
|
|
17
|
-
# supported:
|
|
18
|
-
#
|
|
19
|
-
# === <tt>host: 'conversations.twilio.com'</tt>
|
|
20
|
-
#
|
|
21
|
-
# The domain to which you'd like the client to make HTTP requests. Useful
|
|
22
|
-
# for testing. Defaults to 'conversations.twilio.com'.
|
|
23
|
-
#
|
|
24
|
-
# === <tt>port: 443</tt>
|
|
25
|
-
#
|
|
26
|
-
# The port on which to connect to the above domain. Defaults to 443 and
|
|
27
|
-
# should be left that way except in testing environments.
|
|
28
|
-
#
|
|
29
|
-
# === <tt>use_ssl: true</tt>
|
|
30
|
-
#
|
|
31
|
-
# Declare whether ssl should be used for connections to the above domain.
|
|
32
|
-
# Defaults to true and should be left alone except when testing.
|
|
33
|
-
#
|
|
34
|
-
# === <tt>ssl_verify_peer: true</tt>
|
|
35
|
-
#
|
|
36
|
-
# Declare whether to verify the host's ssl cert when setting up the
|
|
37
|
-
# connection to the above domain. Defaults to true, but can be turned off
|
|
38
|
-
# to avoid ssl certificate verification failures in environments without
|
|
39
|
-
# the necessary ca certificates.
|
|
40
|
-
#
|
|
41
|
-
# === <tt>ssl_ca_file: '/path/to/ca/file'</tt>
|
|
42
|
-
#
|
|
43
|
-
# Specify the path to the certificate authority bundle you'd like to use
|
|
44
|
-
# to verify Twilio's SSL certificate on each request. If not specified, a
|
|
45
|
-
# certificate bundle extraced from Firefox is packaged with the gem and
|
|
46
|
-
# used by default.
|
|
47
|
-
#
|
|
48
|
-
# === <tt>timeout: 30</tt>
|
|
49
|
-
#
|
|
50
|
-
# Set the time in seconds to wait before timing out the HTTP request.
|
|
51
|
-
# Defaults to 30 seconds. If you aren't fetching giant pages of call or
|
|
52
|
-
# SMS logs you can safely decrease this to something like 3 seconds or
|
|
53
|
-
# lower. In paricular if you are sending SMS you can set this to 1 second
|
|
54
|
-
# or less and swallow the exception if you don't care about the response.
|
|
55
|
-
#
|
|
56
|
-
# === <tt>proxy_addr: 'proxy.host.domain'</tt>
|
|
57
|
-
#
|
|
58
|
-
# The domain of a proxy through which you'd like the client to make HTTP
|
|
59
|
-
# requests. Defaults to nil.
|
|
60
|
-
#
|
|
61
|
-
# === <tt>proxy_port: 3128</tt>
|
|
62
|
-
#
|
|
63
|
-
# The port on which to connect to the above proxy. Defaults to nil.
|
|
64
|
-
#
|
|
65
|
-
# === <tt>proxy_user: 'username'</tt>
|
|
66
|
-
#
|
|
67
|
-
# The user name to use for authentication with the proxy. Defaults to nil.
|
|
68
|
-
#
|
|
69
|
-
# === <tt>proxy_pass: 'password'</tt>
|
|
70
|
-
#
|
|
71
|
-
# The password to use for authentication with the proxy. Defaults to nil.
|
|
72
|
-
#
|
|
73
|
-
# === <tt>retry_limit: 1</tt>
|
|
74
|
-
#
|
|
75
|
-
# The number of times to retry a request that has failed before throwing
|
|
76
|
-
# an exception. Defaults to one.
|
|
77
|
-
def inspect # :nodoc:
|
|
78
|
-
"<Twilio::REST::ConversationsClient @account_sid=#{@account_sid}>"
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
protected
|
|
82
|
-
|
|
83
|
-
##
|
|
84
|
-
# Create subresource properties
|
|
85
|
-
def set_up_subresources # :doc:
|
|
86
|
-
@conversations = Twilio::REST::Conversations::Conversations.new "/#{API_VERSION}/Conversations", self
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
##
|
|
90
|
-
# Builds up full request path
|
|
91
|
-
def build_full_path(path, params, method)
|
|
92
|
-
path = path.dup
|
|
93
|
-
path << "?#{url_encode(params)}" if method == :get && !params.empty?
|
|
94
|
-
path
|
|
95
|
-
end
|
|
96
|
-
|
|
97
|
-
end
|
|
98
|
-
end
|
|
99
|
-
end
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
module Twilio
|
|
2
|
-
module REST
|
|
3
|
-
module IpMessaging
|
|
4
|
-
class Channels < NextGenListResource
|
|
5
|
-
def initialize(path, client)
|
|
6
|
-
@path, client = path, client
|
|
7
|
-
@submodule = :IpMessaging
|
|
8
|
-
end
|
|
9
|
-
end
|
|
10
|
-
class Channel < InstanceResource
|
|
11
|
-
def initialize(path, client, params={})
|
|
12
|
-
super
|
|
13
|
-
@submodule = :IpMessaging
|
|
14
|
-
|
|
15
|
-
resource :messages,
|
|
16
|
-
:members
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
module Twilio
|
|
2
|
-
module REST
|
|
3
|
-
module IpMessaging
|
|
4
|
-
class Credentials < NextGenListResource
|
|
5
|
-
def initialize(path, client)
|
|
6
|
-
@path, @client = path, client
|
|
7
|
-
@submodule = :IpMessaging
|
|
8
|
-
end
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
class Credential < InstanceResource
|
|
12
|
-
def initialize(path, client, params={})
|
|
13
|
-
super
|
|
14
|
-
@submodule = :IpMessaging
|
|
15
|
-
resource :channels,
|
|
16
|
-
:users,
|
|
17
|
-
:roles
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
module Twilio
|
|
2
|
-
module REST
|
|
3
|
-
module IpMessaging
|
|
4
|
-
class Services < NextGenListResource
|
|
5
|
-
def initialize(path, client)
|
|
6
|
-
@path, @client = path, client
|
|
7
|
-
@submodule = :IpMessaging
|
|
8
|
-
end
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
class Service < InstanceResource
|
|
12
|
-
def initialize(path, client, params={})
|
|
13
|
-
super
|
|
14
|
-
@submodule = :IpMessaging
|
|
15
|
-
resource :channels,
|
|
16
|
-
:users,
|
|
17
|
-
:roles
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
require 'twilio-ruby/rest/base_client'
|
|
2
|
-
module Twilio
|
|
3
|
-
module REST
|
|
4
|
-
class IpMessagingClient < BaseClient
|
|
5
|
-
API_VERSION = 'v1'
|
|
6
|
-
|
|
7
|
-
attr_reader :services, :credentials
|
|
8
|
-
|
|
9
|
-
host 'ip-messaging.twilio.com'
|
|
10
|
-
|
|
11
|
-
##
|
|
12
|
-
# Instantiate a new HTTP Conversations client to talk to Twilio. The parameters
|
|
13
|
-
# +account_sid+, +auth_token+ are required, unless you have configured
|
|
14
|
-
# them already using the block configure syntax, and used to generate the
|
|
15
|
-
# HTTP basic auth header in each request. The +options+ parameter is a
|
|
16
|
-
# hash of connection configuration options. the following keys are
|
|
17
|
-
# supported:
|
|
18
|
-
#
|
|
19
|
-
# === <tt>host: 'ip-messaging.twilio.com'</tt>
|
|
20
|
-
#
|
|
21
|
-
# The domain to which you'd like the client to make HTTP requests. Useful
|
|
22
|
-
# for testing. Defaults to 'ip-messaging.twilio.com'.
|
|
23
|
-
#
|
|
24
|
-
# === <tt>port: 443</tt>
|
|
25
|
-
#
|
|
26
|
-
# The port on which to connect to the above domain. Defaults to 443 and
|
|
27
|
-
# should be left that way except in testing environments.
|
|
28
|
-
#
|
|
29
|
-
# === <tt>use_ssl: true</tt>
|
|
30
|
-
#
|
|
31
|
-
# Declare whether ssl should be used for connections to the above domain.
|
|
32
|
-
# Defaults to true and should be left alone except when testing.
|
|
33
|
-
#
|
|
34
|
-
# === <tt>ssl_verify_peer: true</tt>
|
|
35
|
-
#
|
|
36
|
-
# Declare whether to verify the host's ssl cert when setting up the
|
|
37
|
-
# connection to the above domain. Defaults to true, but can be turned off
|
|
38
|
-
# to avoid ssl certificate verification failures in environments without
|
|
39
|
-
# the necessary ca certificates.
|
|
40
|
-
#
|
|
41
|
-
# === <tt>ssl_ca_file: '/path/to/ca/file'</tt>
|
|
42
|
-
#
|
|
43
|
-
# Specify the path to the certificate authority bundle you'd like to use
|
|
44
|
-
# to verify Twilio's SSL certificate on each request. If not specified, a
|
|
45
|
-
# certificate bundle extraced from Firefox is packaged with the gem and
|
|
46
|
-
# used by default.
|
|
47
|
-
#
|
|
48
|
-
# === <tt>timeout: 30</tt>
|
|
49
|
-
#
|
|
50
|
-
# Set the time in seconds to wait before timing out the HTTP request.
|
|
51
|
-
# Defaults to 30 seconds. If you aren't fetching giant pages of call or
|
|
52
|
-
# SMS logs you can safely decrease this to something like 3 seconds or
|
|
53
|
-
# lower. In paricular if you are sending SMS you can set this to 1 second
|
|
54
|
-
# or less and swallow the exception if you don't care about the response.
|
|
55
|
-
#
|
|
56
|
-
# === <tt>proxy_addr: 'proxy.host.domain'</tt>
|
|
57
|
-
#
|
|
58
|
-
# The domain of a proxy through which you'd like the client to make HTTP
|
|
59
|
-
# requests. Defaults to nil.
|
|
60
|
-
#
|
|
61
|
-
# === <tt>proxy_port: 3128</tt>
|
|
62
|
-
#
|
|
63
|
-
# The port on which to connect to the above proxy. Defaults to nil.
|
|
64
|
-
#
|
|
65
|
-
# === <tt>proxy_user: 'username'</tt>
|
|
66
|
-
#
|
|
67
|
-
# The user name to use for authentication with the proxy. Defaults to nil.
|
|
68
|
-
#
|
|
69
|
-
# === <tt>proxy_pass: 'password'</tt>
|
|
70
|
-
#
|
|
71
|
-
# The password to use for authentication with the proxy. Defaults to nil.
|
|
72
|
-
#
|
|
73
|
-
# === <tt>retry_limit: 1</tt>
|
|
74
|
-
#
|
|
75
|
-
# The number of times to retry a request that has failed before throwing
|
|
76
|
-
# an exception. Defaults to one.
|
|
77
|
-
def inspect # :nodoc:
|
|
78
|
-
"<Twilio::REST::IpMessagingClient @account_sid=#{@account_sid}>"
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
protected
|
|
82
|
-
|
|
83
|
-
##
|
|
84
|
-
# Create subresource properties
|
|
85
|
-
def set_up_subresources # :doc:
|
|
86
|
-
@services = Twilio::REST::IpMessaging::Services.new "/#{API_VERSION}/Services", self
|
|
87
|
-
@credentials = Twilio::REST::IpMessaging::Credentials.new "/#{API_VERSION}/Credentials", self
|
|
88
|
-
end
|
|
89
|
-
|
|
90
|
-
##
|
|
91
|
-
# Builds up full request path
|
|
92
|
-
def build_full_path(path, params, method)
|
|
93
|
-
path = path.dup
|
|
94
|
-
path << "?#{url_encode(params)}" if method == :get && !params.empty?
|
|
95
|
-
path
|
|
96
|
-
end
|
|
97
|
-
|
|
98
|
-
end
|
|
99
|
-
end
|
|
100
|
-
end
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
describe Twilio::REST::Conversations::Conversations do
|
|
4
|
-
|
|
5
|
-
it 'creates an in_progress property' do
|
|
6
|
-
client = Twilio::REST::ConversationsClient.new 'otherSid', 'otherToken'
|
|
7
|
-
conversations = Twilio::REST::Conversations::Conversations.new '/v1/Conversations', client
|
|
8
|
-
expect(conversations).to respond_to(:in_progress)
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
it 'creates a completed property' do
|
|
12
|
-
client = Twilio::REST::ConversationsClient.new 'otherSid', 'otherToken'
|
|
13
|
-
conversations = Twilio::REST::Conversations::Conversations.new '/v1/Conversations', client
|
|
14
|
-
expect(conversations).to respond_to(:completed)
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
describe Twilio::REST::Conversations::InProgress do
|
|
20
|
-
it 'gets constructed by conversations' do
|
|
21
|
-
client = Twilio::REST::ConversationsClient.new 'otherSid', 'otherToken'
|
|
22
|
-
conversations = Twilio::REST::Conversations::Conversations.new '/v1/Conversations', client
|
|
23
|
-
expect(conversations.in_progress.instance_variable_get('@path')).to eq('/v1/Conversations/InProgress')
|
|
24
|
-
end
|
|
25
|
-
it 'uses Conversation as its instance class' do
|
|
26
|
-
client = Twilio::REST::ConversationsClient.new 'otherSid', 'otherToken'
|
|
27
|
-
conversations = Twilio::REST::Conversations::Conversations.new '/v1/Conversations', client
|
|
28
|
-
expect(conversations.in_progress.instance_variable_get('@instance_class')).to eq(Twilio::REST::Conversations::Conversation)
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
describe Twilio::REST::Conversations::Completed do
|
|
33
|
-
it 'gets constructed by conversations' do
|
|
34
|
-
client = Twilio::REST::ConversationsClient.new 'otherSid', 'otherToken'
|
|
35
|
-
conversations = Twilio::REST::Conversations::Conversations.new '/v1/Conversations', client
|
|
36
|
-
expect(conversations.completed.instance_variable_get('@path')).to eq('/v1/Conversations/Completed')
|
|
37
|
-
end
|
|
38
|
-
it 'uses Conversation as its instance class' do
|
|
39
|
-
client = Twilio::REST::ConversationsClient.new 'otherSid', 'otherToken'
|
|
40
|
-
conversations = Twilio::REST::Conversations::Conversations.new '/v1/Conversations', client
|
|
41
|
-
expect(conversations.completed.instance_variable_get('@instance_class')).to eq(Twilio::REST::Conversations::Conversation)
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
describe Twilio::REST::Conversations::Conversation do
|
|
46
|
-
it 'has correct path when fetched from /InProgress' do
|
|
47
|
-
client = Twilio::REST::ConversationsClient.new 'otherSid', 'otherToken'
|
|
48
|
-
conversation = client.conversations.in_progress.get('CA123')
|
|
49
|
-
expect(conversation.instance_variable_get('@path')).to eq('/v1/Conversations/CA123')
|
|
50
|
-
end
|
|
51
|
-
it 'has correct path when fetched from /Completed' do
|
|
52
|
-
client = Twilio::REST::ConversationsClient.new 'otherSid', 'otherToken'
|
|
53
|
-
conversation = client.conversations.completed.get('CA123')
|
|
54
|
-
expect(conversation.instance_variable_get('@path')).to eq('/v1/Conversations/CA123')
|
|
55
|
-
end
|
|
56
|
-
it 'sets up participants subresource' do
|
|
57
|
-
client = Twilio::REST::ConversationsClient.new 'otherSid', 'otherToken'
|
|
58
|
-
conversation = Twilio::REST::Conversations::Conversation.new '/v1/Conversations/CA123', client
|
|
59
|
-
expect(conversation).to respond_to(:participants)
|
|
60
|
-
end
|
|
61
|
-
end
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
describe Twilio::REST::ConversationsClient do
|
|
4
|
-
before do
|
|
5
|
-
@client = Twilio::REST::ConversationsClient.new('AC123', 'foobar')
|
|
6
|
-
end
|
|
7
|
-
|
|
8
|
-
it 'should set up an conversations resources object' do
|
|
9
|
-
expect(@client).to respond_to(:conversations)
|
|
10
|
-
expect(@client.conversations.instance_variable_get('@path')).to eq('/v1/Conversations')
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
end
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
describe Twilio::REST::IpMessaging::Channels do
|
|
4
|
-
it 'sets up a members resources object' do
|
|
5
|
-
client = Twilio::REST::IpMessagingClient.new 'otherSid', 'otherToken'
|
|
6
|
-
service = Twilio::REST::IpMessaging::Channel.new '/v1/Services/1/Channels/1', client
|
|
7
|
-
expect(service).to respond_to(:members)
|
|
8
|
-
expect(service.members.instance_variable_get('@path')).to eq(
|
|
9
|
-
'/v1/Services/1/Channels/1/Members'
|
|
10
|
-
)
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
it 'sets up a messages resources object' do
|
|
14
|
-
client = Twilio::REST::IpMessagingClient.new 'otherSid', 'otherToken'
|
|
15
|
-
service = Twilio::REST::IpMessaging::Channel.new '/v1/Services/1/Channels/1', client
|
|
16
|
-
expect(service).to respond_to(:messages)
|
|
17
|
-
expect(service.messages.instance_variable_get('@path')).to eq(
|
|
18
|
-
'/v1/Services/1/Channels/1/Messages'
|
|
19
|
-
)
|
|
20
|
-
end
|
|
21
|
-
end
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
describe Twilio::REST::IpMessaging::Services do
|
|
4
|
-
it 'sets up a channels resources object' do
|
|
5
|
-
client = Twilio::REST::IpMessagingClient.new 'otherSid', 'otherToken'
|
|
6
|
-
service = Twilio::REST::IpMessaging::Service.new '/v1/Services', client
|
|
7
|
-
expect(service).to respond_to(:channels)
|
|
8
|
-
expect(service.channels.instance_variable_get('@path')).to eq(
|
|
9
|
-
'/v1/Services/Channels'
|
|
10
|
-
)
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
it 'sets up a roles resources object' do
|
|
14
|
-
client = Twilio::REST::IpMessagingClient.new 'otherSid', 'otherToken'
|
|
15
|
-
service = Twilio::REST::IpMessaging::Service.new '/v1/Services', client
|
|
16
|
-
expect(service).to respond_to(:roles)
|
|
17
|
-
expect(service.roles.instance_variable_get('@path')).to eq(
|
|
18
|
-
'/v1/Services/Roles'
|
|
19
|
-
)
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
it 'sets up a users resources object' do
|
|
23
|
-
client = Twilio::REST::IpMessagingClient.new 'otherSid', 'otherToken'
|
|
24
|
-
service = Twilio::REST::IpMessaging::Service.new '/v1/Services', client
|
|
25
|
-
expect(service).to respond_to(:users)
|
|
26
|
-
expect(service.users.instance_variable_get('@path')).to eq(
|
|
27
|
-
'/v1/Services/Users'
|
|
28
|
-
)
|
|
29
|
-
end
|
|
30
|
-
end
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
describe Twilio::REST::IpMessagingClient do
|
|
4
|
-
before do
|
|
5
|
-
@client = Twilio::REST::IpMessagingClient.new('AC123', 'foobar')
|
|
6
|
-
end
|
|
7
|
-
|
|
8
|
-
it 'should set up a services resources object' do
|
|
9
|
-
expect(@client).to respond_to(:services)
|
|
10
|
-
expect(@client.services.instance_variable_get('@path')).to eq(
|
|
11
|
-
'/v1/Services'
|
|
12
|
-
)
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
it 'should set up a credentials resources object' do
|
|
16
|
-
expect(@client).to respond_to(:credentials)
|
|
17
|
-
expect(@client.credentials.instance_variable_get('@path')).to eq(
|
|
18
|
-
'/v1/Credentials'
|
|
19
|
-
)
|
|
20
|
-
end
|
|
21
|
-
end
|