jerakia-client 0.4.1 → 0.5.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 41235c0866e57a0198525ca97e027ff65066d3a0
4
- data.tar.gz: 3bd66f87579d4bb94f63a17c6856a736e13f3903
3
+ metadata.gz: d78261a665e3aab11432e9f299884d8da2f559b3
4
+ data.tar.gz: 1191309b5880c56711d3026f37251af7fd31ceea
5
5
  SHA512:
6
- metadata.gz: 1fdc4de8499ea158e70298308454b1226881d14c18c8bded713b6c75ddd7159545da1eb67597143a85c662a25ad7a21e0e2d2b013e974611c06c4c73bec489ed
7
- data.tar.gz: 0aa925c1bc7c941d031aa2a2ff47b16dc695b094c5baa8dac0ee629c4416592963553d79c7ceb97e27240d1f68ecce23d1d7fd766d6750639655f55cfe3944e4
6
+ metadata.gz: e5ab8fee8ab8fbf8de0db70c8a047f3d62890f9397e40c62c7547107e414e25e0404bd79b7b3d66cf300996a17dc51c29565b04f57748a64cb6fae08d2ee28e7
7
+ data.tar.gz: b60fa98db98cae175e13b7dbf82ac827d477dec51fa3199ed96981890d7f84163779c896c03accec93ae32501a23e0a156c787c23497d590d244cce71d97ca0d
@@ -11,5 +11,8 @@ class Jerakia
11
11
 
12
12
  class HTTPError < RuntimeError
13
13
  end
14
+
15
+ class ScopeNotFoundError < RuntimeError
16
+ end
14
17
  end
15
18
  end
@@ -1,6 +1,6 @@
1
1
  class Jerakia
2
2
  class Client
3
- VERSION = '0.4.1'.freeze
3
+ VERSION = '0.5.0'.freeze
4
4
  end
5
5
  end
6
6
 
@@ -1,4 +1,3 @@
1
- require 'rest-client'
2
1
  require 'jerakia/client/error'
3
2
  require 'jerakia/client/version'
4
3
  require 'jerakia/client/lookup'
@@ -6,6 +5,7 @@ require 'jerakia/client/scope'
6
5
  require 'jerakia/client/token'
7
6
  require 'uri'
8
7
  require 'json'
8
+ require 'net/http'
9
9
 
10
10
  class Jerakia
11
11
  class Client
@@ -74,36 +74,39 @@ class Jerakia
74
74
  "#{@config[:proto]}://#{@config[:host]}:#{@config[:port]}"
75
75
  end
76
76
 
77
+ def http_send(request)
78
+ request.add_field("X-Authentication", token)
79
+ response = Net::HTTP.new(@config[:host], @config[:port]).start do |http|
80
+ http.request(request)
81
+ end
77
82
 
78
- def get(url_path, params={})
79
- headers = { 'X-Authentication' => token }
80
- uri_params = '?' + URI.encode_www_form(params)
81
- url = url_address + url_path + uri_params
82
- begin
83
- response = RestClient.get(url, headers)
84
-
85
- rescue RestClient::Unauthorized => e
83
+ case response.code
84
+ when "200"
85
+ return JSON.parse(response.body)
86
+ when "401"
86
87
  raise Jerakia::Client::AuthorizationError, "Request not authorized"
87
- rescue RestClient::ResourceNotFound => e
88
- return nil
89
- rescue RestClient::Exception => e
90
- raise Jerakia::Client::Error, e.response.body
88
+ when "501"
89
+ raise Jerakia::Client::ScopeNotFoundError, "Scope data not found" if response.body =~ /No scope data found/
90
+ raise Jerakia::Client::Error, response.body
91
+ else
92
+ raise Jerakia::Client::Error, response.body
91
93
  end
92
- return JSON.parse(response.body)
94
+ end
95
+
96
+
97
+ def get(url_path, params={})
98
+ uri = URI.parse(url_address + url_path)
99
+ uri.query = URI.encode_www_form(params)
100
+ request = Net::HTTP::Get.new(uri.to_s)
101
+ return http_send(request)
93
102
  end
94
103
 
95
104
  def put(url_path, params)
96
- headers = {
97
- 'X-Authentication' => token,
98
- :content_type => :json
99
- }
100
- url = url_address + url_path
101
- begin
102
- response = RestClient.put(url, params.to_json, headers)
103
- rescue RestClient::Unauthorized => e
104
- raise Jerakia::Client::AuthorizationError, "Request not authorized"
105
- end
106
- return JSON.parse(response.body)
105
+ uri = URI.parse(url_address + url_path)
106
+ request = Net::HTTP::Put.new(uri.path)
107
+ request.add_field('Content-Type', 'application/json')
108
+ request.body = params.to_json
109
+ return http_send(request)
107
110
  end
108
111
  end
109
112
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jerakia-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Craig Dunn
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-17 00:00:00.000000000 Z
11
+ date: 2017-02-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor