fountain 0.0.20 → 0.0.21

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