escobar 0.4.4 → 0.4.5

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: 3de4d9b9090a4cedcb4c3822efe163925809f276
4
- data.tar.gz: 883a89ab8a4ea26d63a4e60f213908886edeb79d
3
+ metadata.gz: 9cf510419da9806b312267095c9a1780be832918
4
+ data.tar.gz: 9e8104ffa527eec4ca0628878ad91038a050e5d7
5
5
  SHA512:
6
- metadata.gz: 3ffbd8af7c8c6e193193edf32a1d64e49f26c97713c10decfd95d8d64da78cc653f536d72961bd5a3201fcc699c972e8113687d5bcbd9e930a1def1edd0a028a
7
- data.tar.gz: ce7e27095ae21f8eb53f20528025d64f45550e4bfe1e9742fd4125377c89b2cfce0eccd69037b5eacbd08e8d51a8273296043e956210c3a71b235821209cbad9
6
+ metadata.gz: d422da6b2361bcc8a5981b6a4b5ca57b5d9502d652278772c27ebc341e427735236a9a4716e92400f779d24a37f12a82aefa99e94c1ea4da0a79de69ae2b9721
7
+ data.tar.gz: f4721c234939135286edf1703b6381e9d50dc9645c493a73c2b16ef1f4992222f090d9f2d3a02db7ead5cc59e65b5e7361f8aa9db4344e9b3155ec40b06132a4
@@ -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.from_response(err)
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.from_response(e)
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
- response = client.get do |request|
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
- response = client.get do |request|
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
- response = client.post do |request|
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
- response = client.put do |request|
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.from_response(e)
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
@@ -1,3 +1,3 @@
1
1
  module Escobar
2
- VERSION = "0.4.4".freeze
2
+ VERSION = "0.4.5".freeze
3
3
  end
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
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-12 00:00:00.000000000 Z
11
+ date: 2017-04-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday