jerakia-client 0.4.1 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
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