kazoo-ruby-sdk 0.1.1 → 1.0.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/.rspec +1 -0
- data/Gemfile +5 -1
- data/README.md +22 -12
- data/kazoo-ruby-sdk.gemspec +5 -0
- data/lib/kazoo-ruby-sdk.rb +22 -3
- data/lib/kazoo-ruby-sdk/base.rb +28 -10
- data/lib/kazoo-ruby-sdk/configuration.rb +5 -0
- data/lib/kazoo-ruby-sdk/devices.rb +49 -0
- data/lib/kazoo-ruby-sdk/session.rb +56 -0
- data/lib/kazoo-ruby-sdk/users.rb +42 -0
- data/lib/kazoo-ruby-sdk/version.rb +1 -1
- metadata +77 -4
- data/lib/kazoo-ruby-sdk/api_session.rb +0 -35
- data/lib/kazoo-ruby-sdk/auth_session.rb +0 -57
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 18dd15e7663fd59b3e8b94c0ad156e1d0ba180a5
|
|
4
|
+
data.tar.gz: fb0b1cdbe45f825110df53d86781d34b44d27978
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4afe2bec7fc29eabeea036dc3ba0a471acdc60fc6b907da3bb27b015b626045c84331d86d510761ba1ffc9d77db863fcd28a64fcd779e994b11c556072e114dc
|
|
7
|
+
data.tar.gz: 125715ff7f377cc991107d46d35b62cd6ac46c7def93d0fcc927d3b21e1c9cb6aa74abe7d1b1cb31c9856a516e1b8d899d64472586d67440b49f8e21de7f4f59
|
data/.rspec
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
--require spec_helper
|
data/Gemfile
CHANGED
data/README.md
CHANGED
|
@@ -22,27 +22,37 @@ Or install it yourself as:
|
|
|
22
22
|
|
|
23
23
|
Create config/initializers/kazoo_ruby_sdk.rb
|
|
24
24
|
```ruby
|
|
25
|
-
KazooRubySdk.
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
KazooRubySdk.configure do |config|
|
|
26
|
+
config.auth_url = 'http://yourserver.com:8000/v1'
|
|
27
|
+
config.realm = 'your-realm'
|
|
28
|
+
config.username = 'your-username'
|
|
29
|
+
config.password = 'your-password'
|
|
30
|
+
end
|
|
29
31
|
```
|
|
30
32
|
|
|
31
33
|
## Usage
|
|
32
34
|
```ruby
|
|
33
|
-
|
|
34
|
-
session = api.new_session
|
|
35
|
-
devices = session.list_devices.data
|
|
35
|
+
devices = KazooRubySdk::Devices.list.data
|
|
36
36
|
device_id = devices[0].id
|
|
37
|
-
device =
|
|
37
|
+
device = KazooRubySdk::Devices.get(device_id)
|
|
38
38
|
```
|
|
39
39
|
|
|
40
40
|
## List of methods
|
|
41
41
|
|
|
42
|
-
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
42
|
+
#### Devices
|
|
43
|
+
* list()
|
|
44
|
+
* get(device_id)
|
|
45
|
+
* get_statuses
|
|
46
|
+
* create(attributes)
|
|
47
|
+
* update(id, attributes)
|
|
48
|
+
* destroy(id)
|
|
49
|
+
|
|
50
|
+
#### Users
|
|
51
|
+
* list()
|
|
52
|
+
* get(id)
|
|
53
|
+
* create(attributes)
|
|
54
|
+
* update(id, attributes)
|
|
55
|
+
* destroy(id)
|
|
46
56
|
|
|
47
57
|
## Contributing
|
|
48
58
|
|
data/kazoo-ruby-sdk.gemspec
CHANGED
|
@@ -32,4 +32,9 @@ Gem::Specification.new do |spec|
|
|
|
32
32
|
|
|
33
33
|
spec.add_development_dependency "bundler", "~> 1.14"
|
|
34
34
|
spec.add_development_dependency "rake", "~> 10.0"
|
|
35
|
+
spec.add_dependency 'faraday', '~> 0.12'
|
|
36
|
+
spec.add_dependency 'faraday_middleware', '~> 0.11'
|
|
37
|
+
spec.add_dependency 'multi_json', '~> 1.12'
|
|
38
|
+
spec.add_dependency 'hashie', '~> 3.5'
|
|
39
|
+
spec.add_dependency 'yajl-ruby', '~> 1.3'
|
|
35
40
|
end
|
data/lib/kazoo-ruby-sdk.rb
CHANGED
|
@@ -3,12 +3,31 @@ require 'faraday'
|
|
|
3
3
|
require 'faraday_middleware'
|
|
4
4
|
require 'digest/md5'
|
|
5
5
|
|
|
6
|
+
require 'kazoo-ruby-sdk/configuration'
|
|
7
|
+
require 'kazoo-ruby-sdk/session'
|
|
6
8
|
require 'kazoo-ruby-sdk/base'
|
|
7
|
-
require 'kazoo-ruby-sdk/
|
|
8
|
-
require 'kazoo-ruby-sdk/
|
|
9
|
+
require 'kazoo-ruby-sdk/devices'
|
|
10
|
+
require 'kazoo-ruby-sdk/users'
|
|
9
11
|
|
|
10
12
|
module KazooRubySdk
|
|
11
13
|
class << self
|
|
12
|
-
attr_accessor :
|
|
14
|
+
attr_accessor :configuration, :cache
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def self.configuration
|
|
18
|
+
@configuration ||= Configuration.new
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def self.cache
|
|
22
|
+
@cache
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def self.reset
|
|
26
|
+
@configuration = Configuration.new
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def self.configure
|
|
30
|
+
self.cache = ActiveSupport::Cache::MemoryStore.new
|
|
31
|
+
yield(configuration)
|
|
13
32
|
end
|
|
14
33
|
end
|
data/lib/kazoo-ruby-sdk/base.rb
CHANGED
|
@@ -1,15 +1,33 @@
|
|
|
1
1
|
module KazooRubySdk
|
|
2
2
|
class Base
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
3
|
+
class << self
|
|
4
|
+
attr_accessor :auth_token, :api_url, :realm, :account_id, :owner_id, :pipe
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
private
|
|
8
|
+
|
|
9
|
+
def self.auth_token
|
|
10
|
+
KazooRubySdk::Session.auth_token
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def self.api_url
|
|
14
|
+
KazooRubySdk::Session.api_url
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def self.realm
|
|
18
|
+
KazooRubySdk::Session.realm
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def self.account_id
|
|
22
|
+
KazooRubySdk::Session.account_id
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def self.owner_id
|
|
26
|
+
KazooRubySdk::Session.owner_id
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def self.pipe
|
|
30
|
+
KazooRubySdk::Session.pipe
|
|
13
31
|
end
|
|
14
32
|
end
|
|
15
33
|
end
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
module KazooRubySdk
|
|
2
|
+
class Devices < Base
|
|
3
|
+
class << self
|
|
4
|
+
def list
|
|
5
|
+
pipe.get do |request|
|
|
6
|
+
request.url "accounts/#{account_id}/devices"
|
|
7
|
+
request.headers['X-Auth-Token'] = auth_token
|
|
8
|
+
end.body
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def get(device_id)
|
|
12
|
+
pipe.get do |request|
|
|
13
|
+
request.url "accounts/#{account_id}/devices/#{device_id}"
|
|
14
|
+
request.headers['X-Auth-Token'] = auth_token
|
|
15
|
+
end.body
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def get_statuses
|
|
19
|
+
pipe.get do |request|
|
|
20
|
+
request.url "accounts/#{account_id}/devices/status"
|
|
21
|
+
request.headers['X-Auth-Token'] = auth_token
|
|
22
|
+
end.body
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def create(attributes)
|
|
26
|
+
pipe.put do |request|
|
|
27
|
+
request.url "accounts/#{account_id}/devices"
|
|
28
|
+
request.headers['X-Auth-Token'] = auth_token
|
|
29
|
+
request.body = { data: attributes }
|
|
30
|
+
end.body
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def update(device_id, attributes)
|
|
34
|
+
pipe.patch do |request|
|
|
35
|
+
request.url "accounts/#{account_id}/devices/#{device_id}"
|
|
36
|
+
request.headers['X-Auth-Token'] = auth_token
|
|
37
|
+
request.body = { data: attributes }
|
|
38
|
+
end.body
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def destroy(device_id)
|
|
42
|
+
pipe.delete do |request|
|
|
43
|
+
request.url "accounts/#{account_id}/devices/#{device_id}"
|
|
44
|
+
request.headers['X-Auth-Token'] = auth_token
|
|
45
|
+
end.body
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
module KazooRubySdk
|
|
2
|
+
class Session
|
|
3
|
+
class << self
|
|
4
|
+
attr_writer :api_url, :realm, :account_id, :owner_id, :auth_token, :pipe
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
class << self
|
|
8
|
+
def api_url
|
|
9
|
+
KazooRubySdk.configuration.api_url
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def realm
|
|
13
|
+
KazooRubySdk.configuration.realm
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def account_id
|
|
17
|
+
auth_response.data.account_id
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def owner_id
|
|
21
|
+
auth_response.data.owner_id
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def auth_token
|
|
25
|
+
auth_response.auth_token
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def pipe
|
|
29
|
+
create_conn_object(api_url)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def create_conn_object(url)
|
|
33
|
+
Faraday.new(:url => url, ssl: { verify: false }) do |builder|
|
|
34
|
+
builder.use Faraday::Response::Mashify
|
|
35
|
+
builder.use Faraday::Response::ParseJson
|
|
36
|
+
builder.use Faraday::Response::RaiseError
|
|
37
|
+
builder.use FaradayMiddleware::EncodeJson
|
|
38
|
+
builder.use Faraday::Request::UrlEncoded
|
|
39
|
+
builder.adapter Faraday.default_adapter
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def auth_response
|
|
44
|
+
KazooRubySdk.cache.fetch('auth_response') do
|
|
45
|
+
req = {:data => {:credentials => get_credentials_hash, :realm => self.realm}, :verb => 'PUT'}
|
|
46
|
+
response = pipe.put 'user_auth', req
|
|
47
|
+
response.body
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def get_credentials_hash
|
|
52
|
+
Digest::MD5.hexdigest("#{KazooRubySdk.configuration.username}:#{KazooRubySdk.configuration.password}")
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
module KazooRubySdk
|
|
2
|
+
class Users < Base
|
|
3
|
+
class << self
|
|
4
|
+
def create(attributes)
|
|
5
|
+
pipe.put do |request|
|
|
6
|
+
request.url "accounts/#{account_id}/users"
|
|
7
|
+
request.headers['X-Auth-Token'] = auth_token
|
|
8
|
+
request.body = { data: attributes }
|
|
9
|
+
end.body
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def update(user_id, attributes)
|
|
13
|
+
pipe.patch do |request|
|
|
14
|
+
request.url "accounts/#{account_id}/users/#{user_id}"
|
|
15
|
+
request.headers['X-Auth-Token'] = auth_token
|
|
16
|
+
request.body = { data: attributes }
|
|
17
|
+
end.body
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def list
|
|
21
|
+
pipe.get do |request|
|
|
22
|
+
request.url "accounts/#{account_id}/users"
|
|
23
|
+
request.headers['X-Auth-Token'] = auth_token
|
|
24
|
+
end.body
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def get(user_id)
|
|
28
|
+
pipe.get do |request|
|
|
29
|
+
request.url "accounts/#{account_id}/users/#{user_id}"
|
|
30
|
+
request.headers['X-Auth-Token'] = auth_token
|
|
31
|
+
end.body
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def destroy(user_id)
|
|
35
|
+
pipe.delete do |request|
|
|
36
|
+
request.url "accounts/#{account_id}/users/#{user_id}"
|
|
37
|
+
request.headers['X-Auth-Token'] = auth_token
|
|
38
|
+
end.body
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: kazoo-ruby-sdk
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 1.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Aleksey Pohodnya
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2017-05-
|
|
11
|
+
date: 2017-05-17 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -38,6 +38,76 @@ dependencies:
|
|
|
38
38
|
- - "~>"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
40
|
version: '10.0'
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: faraday
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
45
|
+
- - "~>"
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: '0.12'
|
|
48
|
+
type: :runtime
|
|
49
|
+
prerelease: false
|
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - "~>"
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: '0.12'
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
name: faraday_middleware
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
58
|
+
requirements:
|
|
59
|
+
- - "~>"
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: '0.11'
|
|
62
|
+
type: :runtime
|
|
63
|
+
prerelease: false
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - "~>"
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: '0.11'
|
|
69
|
+
- !ruby/object:Gem::Dependency
|
|
70
|
+
name: multi_json
|
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
|
72
|
+
requirements:
|
|
73
|
+
- - "~>"
|
|
74
|
+
- !ruby/object:Gem::Version
|
|
75
|
+
version: '1.12'
|
|
76
|
+
type: :runtime
|
|
77
|
+
prerelease: false
|
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
+
requirements:
|
|
80
|
+
- - "~>"
|
|
81
|
+
- !ruby/object:Gem::Version
|
|
82
|
+
version: '1.12'
|
|
83
|
+
- !ruby/object:Gem::Dependency
|
|
84
|
+
name: hashie
|
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
|
86
|
+
requirements:
|
|
87
|
+
- - "~>"
|
|
88
|
+
- !ruby/object:Gem::Version
|
|
89
|
+
version: '3.5'
|
|
90
|
+
type: :runtime
|
|
91
|
+
prerelease: false
|
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
+
requirements:
|
|
94
|
+
- - "~>"
|
|
95
|
+
- !ruby/object:Gem::Version
|
|
96
|
+
version: '3.5'
|
|
97
|
+
- !ruby/object:Gem::Dependency
|
|
98
|
+
name: yajl-ruby
|
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
|
100
|
+
requirements:
|
|
101
|
+
- - "~>"
|
|
102
|
+
- !ruby/object:Gem::Version
|
|
103
|
+
version: '1.3'
|
|
104
|
+
type: :runtime
|
|
105
|
+
prerelease: false
|
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
+
requirements:
|
|
108
|
+
- - "~>"
|
|
109
|
+
- !ruby/object:Gem::Version
|
|
110
|
+
version: '1.3'
|
|
41
111
|
description: You can specify the data to access your Kazoo server and use the Kazoo
|
|
42
112
|
API using the methods of this sdk.
|
|
43
113
|
email:
|
|
@@ -47,15 +117,18 @@ extensions: []
|
|
|
47
117
|
extra_rdoc_files: []
|
|
48
118
|
files:
|
|
49
119
|
- ".gitignore"
|
|
120
|
+
- ".rspec"
|
|
50
121
|
- Gemfile
|
|
51
122
|
- LICENSE.txt
|
|
52
123
|
- README.md
|
|
53
124
|
- Rakefile
|
|
54
125
|
- kazoo-ruby-sdk.gemspec
|
|
55
126
|
- lib/kazoo-ruby-sdk.rb
|
|
56
|
-
- lib/kazoo-ruby-sdk/api_session.rb
|
|
57
|
-
- lib/kazoo-ruby-sdk/auth_session.rb
|
|
58
127
|
- lib/kazoo-ruby-sdk/base.rb
|
|
128
|
+
- lib/kazoo-ruby-sdk/configuration.rb
|
|
129
|
+
- lib/kazoo-ruby-sdk/devices.rb
|
|
130
|
+
- lib/kazoo-ruby-sdk/session.rb
|
|
131
|
+
- lib/kazoo-ruby-sdk/users.rb
|
|
59
132
|
- lib/kazoo-ruby-sdk/version.rb
|
|
60
133
|
homepage: https://github.com/pohodnya/kazoo-ruby-sdk
|
|
61
134
|
licenses:
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
module KazooRubySdk
|
|
2
|
-
class ApiSession < Base
|
|
3
|
-
attr_reader :auth_token, :api_url, :realm, :account_id, :owner_id, :pipe
|
|
4
|
-
|
|
5
|
-
def initialize(options)
|
|
6
|
-
@auth_token = options[:auth_token]
|
|
7
|
-
@api_url = options[:api_url]
|
|
8
|
-
@realm = options[:realm]
|
|
9
|
-
@account_id = options[:account_id]
|
|
10
|
-
@owner_id = options[:owner_id]
|
|
11
|
-
@pipe = create_conn_object(api_url)
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def list_devices()
|
|
15
|
-
return pipe.get("accounts/#{account_id}/devices",
|
|
16
|
-
'X-Auth-Token' => auth_token).body
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def get_device(device_id)
|
|
20
|
-
return pipe.get("accounts/#{account_id}/devices/#{device_id}",
|
|
21
|
-
'X-Auth-Token' => auth_token).body
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
def get_device_statuses
|
|
25
|
-
return pipe.get("accounts/#{account_id}/devices/status",
|
|
26
|
-
'X-Auth-Token' => auth_token).body
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
def create_device(name)
|
|
30
|
-
return pipe.put("accounts/#{account_id}/devices",
|
|
31
|
-
{:data => {:name => name}},
|
|
32
|
-
'X-Auth-Token' => auth_token).body
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
module KazooRubySdk
|
|
2
|
-
class AuthSession < Base
|
|
3
|
-
attr_accessor :auth_url, :realm, :username, :password
|
|
4
|
-
attr_reader :auth_pipe, :auth_token, :account_id, :owner_id, :api_url, :api_pipe, :api_token
|
|
5
|
-
|
|
6
|
-
def initialize
|
|
7
|
-
@auth_url = KazooRubySdk.auth_url
|
|
8
|
-
@realm = KazooRubySdk.realm
|
|
9
|
-
@username = KazooRubySdk.username
|
|
10
|
-
@password = KazooRubySdk.password
|
|
11
|
-
|
|
12
|
-
@auth_pipe = create_conn_object(auth_url)
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def is_authenticated?
|
|
16
|
-
return !auth_token.nil?
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def new_session
|
|
20
|
-
authenticate! unless is_authenticated?
|
|
21
|
-
return ApiSession.new(:auth_token => api_token, :api_url => api_url, :realm => realm, :account_id => account_id, :owner_id => owner_id)
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
def get_credentials_hash
|
|
25
|
-
return Digest::MD5.hexdigest("#{username}:#{password}")
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def authenticate!
|
|
29
|
-
req = {:data => {:credentials => get_credentials_hash, :realm => realm}, :verb => 'PUT'}
|
|
30
|
-
response = auth_pipe.put 'user_auth', req
|
|
31
|
-
@auth_token = response.body.auth_token
|
|
32
|
-
@account_id = response.body.data.account_id
|
|
33
|
-
@owner_id = response.body.data.owner_id
|
|
34
|
-
|
|
35
|
-
@api_url = select_session_endpoint_app('voip')
|
|
36
|
-
@api_pipe = create_conn_object(api_url)
|
|
37
|
-
shared_auth
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
def shared_auth
|
|
41
|
-
req = {:data => {:realm => realm, :account_id => account_id, :shared_token => auth_token}, :verb => 'PUT'}
|
|
42
|
-
resp = @api_pipe.put 'shared_auth', req
|
|
43
|
-
@api_token = resp.body.auth_token
|
|
44
|
-
return api_token
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
def get_endpoint_apps
|
|
48
|
-
auth_pipe.get "accounts/#{account_id}/users/#{owner_id}", 'X-Auth-Token' => auth_token
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
def select_session_endpoint_app(name)
|
|
52
|
-
apps = get_endpoint_apps
|
|
53
|
-
@api_url = apps.body.data.apps[name].api_url
|
|
54
|
-
return api_url
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
end
|