fountain 0.0.20 → 0.0.21

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
  SHA256:
3
- metadata.gz: 4afc1087ee4684b2b55340e60b65a73b3ea23060411d604a278918418d434ee4
4
- data.tar.gz: f8f4f231d255a442e6dcf35fe36ee94272047365490467d866db28611b04e64b
3
+ metadata.gz: e2caecf747b171c9f0aa3452a4a90605bc996d5c6796b82401d88c6143f59b4c
4
+ data.tar.gz: 4cec155ecc58f2c9afafb246ddbb1178897402331fa0f9a293f7fe3b2986c671
5
5
  SHA512:
6
- metadata.gz: c7ff7506d65ef67acde85b2b08ef5a4fc5fe4c3db1b281119cf7ccef551bff0413cdf760fb8d9d83dfe626ae520c5383a6de9bce6e2b152748654b3d059d1a37
7
- data.tar.gz: d5f1f8e7fd32259c32be43738dc42a836ee0660e1ecd77a7a560bd53f2720160ba6409e449a823f10787db42f683e521d012309558377eccf3576de0daaa2b1a
6
+ metadata.gz: df42f04e5f94ac3cb071a5433e32c360b7322f847dcf770267a11f335ba8c385429c9a1cbe96d912ca265cb096cdc6ef128a2869d6d8f63b8cc0f1fe7748cb1f
7
+ data.tar.gz: d7ba85809490b746b4913b2a92e287b76a2c817613bb9dbe601acebe982545ae8d2600df4c7216d1aae298a5b61691f5e1ce6fa0fd45e92fb41b4767c68df03e
data/.rubocop.yml CHANGED
@@ -23,3 +23,6 @@ RSpec/ExampleLength:
23
23
 
24
24
  RSpec/MultipleExpectations:
25
25
  Max: 5
26
+
27
+ RSpec/NestedGroups:
28
+ Max: 4
data/CHANGELOG.md CHANGED
@@ -3,6 +3,10 @@
3
3
  ## Unreleased
4
4
  - None
5
5
 
6
+ ## [0.0.21](releases/tag/v0.0.21) - 2024-08-02
7
+ ### Added
8
+ - [#12] Add Fountain::UnexpectedHTTPError to provide more error context ([@abrom][])
9
+
6
10
  ## [0.0.20](releases/tag/v0.0.20) - 2024-04-30
7
11
  ### Added
8
12
  - [#11] Fix query parameter bug in Applicants#advance_applicants ([@abrom][])
@@ -43,7 +43,7 @@ module Fountain
43
43
  when *[expected_response].flatten then nil
44
44
  when Net::HTTPUnauthorized then raise Fountain::AuthenticationError
45
45
  when Net::HTTPNotFound then raise Fountain::NotFoundError
46
- else raise HTTPError, "Invalid http response code: #{response.code}"
46
+ else raise Fountain::UnexpectedHTTPError, response
47
47
  end
48
48
  end
49
49
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Fountain
4
- VERSION = '0.0.20'
4
+ VERSION = '0.0.21'
5
5
  end
data/lib/fountain.rb CHANGED
@@ -19,6 +19,31 @@ module Fountain
19
19
 
20
20
  class InvalidMethodError < HTTPError; end
21
21
 
22
+ #
23
+ # Unexpected HTTP Error
24
+ #
25
+ class UnexpectedHTTPError < HTTPError
26
+ def initialize(response)
27
+ @response = response
28
+ super("Unexpected http response code: #{response.code}")
29
+ end
30
+
31
+ def response_code
32
+ @response.code
33
+ end
34
+
35
+ def parsed_body
36
+ JSON.parse(@response.body)
37
+ rescue JSON::ParserError
38
+ @response.body
39
+ end
40
+
41
+ def response_message
42
+ body = parsed_body
43
+ body['message'] if body.is_a? Hash
44
+ end
45
+ end
46
+
22
47
  class JsonParseError < Error; end
23
48
 
24
49
  class MissingApiKeyError < Error; end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fountain
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.20
4
+ version: 0.0.21
5
5
  platform: ruby
6
6
  authors:
7
7
  - abrom
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-30 00:00:00.000000000 Z
11
+ date: 2024-08-02 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Fountain REST API v2 wrapper for Ruby
14
14
  email:
@@ -78,7 +78,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
78
78
  - !ruby/object:Gem::Version
79
79
  version: '0'
80
80
  requirements: []
81
- rubygems_version: 3.3.7
81
+ rubygems_version: 3.4.19
82
82
  signing_key:
83
83
  specification_version: 4
84
84
  summary: Fountain REST API v2 wrapper for Ruby