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 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