escobar 0.4.4 → 0.4.5
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/lib/escobar/client.rb +15 -1
- data/lib/escobar/github/client.rb +1 -1
- data/lib/escobar/heroku/client.rb +23 -18
- data/lib/escobar/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9cf510419da9806b312267095c9a1780be832918
|
4
|
+
data.tar.gz: 9e8104ffa527eec4ca0628878ad91038a050e5d7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d422da6b2361bcc8a5981b6a4b5ca57b5d9502d652278772c27ebc341e427735236a9a4716e92400f779d24a37f12a82aefa99e94c1ea4da0a79de69ae2b9721
|
7
|
+
data.tar.gz: f4721c234939135286edf1703b6381e9d50dc9645c493a73c2b16ef1f4992222f090d9f2d3a02db7ead5cc59e65b5e7361f8aa9db4344e9b3155ec40b06132a4
|
data/lib/escobar/client.rb
CHANGED
@@ -17,7 +17,7 @@ module Escobar
|
|
17
17
|
# Class for returning API errors to escobar clients
|
18
18
|
class HTTPError < StandardError
|
19
19
|
attr_accessor :body, :headers, :status
|
20
|
-
def self.
|
20
|
+
def self.from_error(err)
|
21
21
|
error = new("Error from Heroku API")
|
22
22
|
|
23
23
|
error.body = err.response[:body]
|
@@ -27,6 +27,20 @@ module Escobar
|
|
27
27
|
error.set_backtrace(err.backtrace)
|
28
28
|
error
|
29
29
|
end
|
30
|
+
|
31
|
+
def self.from_response(resp)
|
32
|
+
error = new("Error from Heroku API")
|
33
|
+
|
34
|
+
error.body = resp.body
|
35
|
+
error.headers = resp.headers
|
36
|
+
error.status = resp.status
|
37
|
+
|
38
|
+
error
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
module Error
|
43
|
+
class Unauthorized < HTTPError; end
|
30
44
|
end
|
31
45
|
|
32
46
|
def self.from_environment
|
@@ -122,7 +122,7 @@ module Escobar
|
|
122
122
|
rescue Net::OpenTimeout, Faraday::TimeoutError => e
|
123
123
|
raise Escobar::Client::TimeoutError.wrap(e)
|
124
124
|
rescue Faraday::Error::ClientError => e
|
125
|
-
raise Escobar::Client::HTTPError.
|
125
|
+
raise Escobar::Client::HTTPError.from_error(e)
|
126
126
|
end
|
127
127
|
|
128
128
|
def client
|
@@ -20,31 +20,29 @@ module Escobar
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def get(path, version = 3)
|
23
|
-
with_error_handling do
|
24
|
-
|
23
|
+
response = with_error_handling do
|
24
|
+
client.get do |request|
|
25
25
|
request.url path
|
26
26
|
request_defaults(request, version)
|
27
27
|
end
|
28
|
-
|
29
|
-
JSON.parse(response.body)
|
30
28
|
end
|
29
|
+
JSON.parse(response.body)
|
31
30
|
end
|
32
31
|
|
33
32
|
def get_range(path, range, version = 3)
|
34
|
-
with_error_handling do
|
35
|
-
|
33
|
+
response = with_error_handling do
|
34
|
+
client.get do |request|
|
36
35
|
request.url path
|
37
36
|
request_defaults(request, version)
|
38
37
|
request.headers["Range"] = range
|
39
38
|
end
|
40
|
-
|
41
|
-
JSON.parse(response.body)
|
42
39
|
end
|
40
|
+
JSON.parse(response.body)
|
43
41
|
end
|
44
42
|
|
45
43
|
def post(path, body, second_factor = nil)
|
46
|
-
with_error_handling do
|
47
|
-
|
44
|
+
response = with_error_handling do
|
45
|
+
client.post do |request|
|
48
46
|
request.url path
|
49
47
|
request_defaults(request)
|
50
48
|
if second_factor
|
@@ -52,33 +50,40 @@ module Escobar
|
|
52
50
|
end
|
53
51
|
request.body = body.to_json
|
54
52
|
end
|
55
|
-
|
56
|
-
JSON.parse(response.body)
|
57
53
|
end
|
54
|
+
JSON.parse(response.body)
|
58
55
|
end
|
59
56
|
|
60
57
|
def put(path, second_factor = nil)
|
61
|
-
with_error_handling do
|
62
|
-
|
58
|
+
response = with_error_handling do
|
59
|
+
client.put do |request|
|
63
60
|
request.url path
|
64
61
|
request_defaults(request)
|
65
62
|
if second_factor
|
66
63
|
request.headers["Heroku-Two-Factor-Code"] = second_factor
|
67
64
|
end
|
68
65
|
end
|
69
|
-
|
70
|
-
JSON.parse(response.body)
|
71
66
|
end
|
67
|
+
JSON.parse(response.body)
|
72
68
|
end
|
73
69
|
|
74
70
|
private
|
75
71
|
|
76
72
|
def with_error_handling
|
77
|
-
yield
|
73
|
+
resp = yield
|
74
|
+
raise_on_status(resp)
|
75
|
+
resp
|
78
76
|
rescue Net::OpenTimeout, Faraday::TimeoutError => e
|
79
77
|
raise Escobar::Client::TimeoutError.wrap(e)
|
80
78
|
rescue Faraday::Error::ClientError => e
|
81
|
-
raise Escobar::Client::HTTPError.
|
79
|
+
raise Escobar::Client::HTTPError.from_error(e)
|
80
|
+
end
|
81
|
+
|
82
|
+
def raise_on_status(resp)
|
83
|
+
case resp.status
|
84
|
+
when 401
|
85
|
+
raise Escobar::Client::Error::Unauthorized.from_response(resp)
|
86
|
+
end
|
82
87
|
end
|
83
88
|
|
84
89
|
def client
|
data/lib/escobar/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: escobar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Corey Donohoe
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-04-
|
11
|
+
date: 2017-04-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|