freeagentrb 0.1.1 → 0.1.3

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: f8595ccfc827174d460c8aa3fe331018a409fc931f03cbc52d030a272af2b784
4
- data.tar.gz: b5b2faca0fcad6bdd9975f5087ecae66fb5e5317b396b7920267ddbc0b6280d1
3
+ metadata.gz: d8a8b31d0b8c2a0f5b46f19049e670abe288ff8b2a568287c75f55fc9aa28d86
4
+ data.tar.gz: 95e371ebdef475b9d761db505aa2ddcc9038ac0fb7d5920d14f9d0e5f87a594c
5
5
  SHA512:
6
- metadata.gz: 43b7f6005955e663027d132d64e372a5757f90b66130f07c89766b55a47faea4d6932e2d2ce63d558049974aecefd221a11adf3763a46dd4e50769b93d848b10
7
- data.tar.gz: cb5c620d30116b17f889ceeef7bafb84c09a0689a0b837711f88859245ddd49f9174fe3182ec6f8b2e2a8e1593df0caf4955217a5777bbbfcfc6aaa1f1327de3
6
+ metadata.gz: 5cd2986ae4a3aceb37b147116c677011dac6969c55cd5206235a9308a970fc1be70b71adb5e50a3cfda655a0be3002440d3166764ba29cceafa6b06afe93822e
7
+ data.tar.gz: f3d8988a5acbc9786a21909eccce58a89c0c13ce67f1c489ced8b74ecad2eb57b302ee9459f043e18364ae838c7a6cba2e06bea30d08abe5a82db11cd81513c8
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- freeagentrb (0.1.1)
4
+ freeagentrb (0.1.3)
5
5
  faraday (~> 2.11)
6
6
  faraday-multipart (~> 1.0)
7
7
 
@@ -13,9 +13,15 @@ module FreeAgent
13
13
 
14
14
  private
15
15
 
16
+ # Parse the FreeAgent error code and message from the response body
16
17
  def set_freeagent_error_values
17
- @freeagent_error_code = @response_body.dig("error")
18
- @freeagent_error_message = @response_body.dig("message")
18
+ if @response_body.dig("errors") && @response_body.dig("errors").is_a?(Array)
19
+ @freeagent_error_message = @response_body.dig("errors").map { |error| error["message"] }.join(", ")
20
+ elsif @response_body.dig("errors", "error", "message")
21
+ @freeagent_error_message = @response_body.dig("errors", "error", "message")
22
+ else
23
+ @freeagent_error_message = @response_body.dig("message")
24
+ end
19
25
  end
20
26
 
21
27
  def error_message
@@ -37,7 +43,7 @@ module FreeAgent
37
43
  private
38
44
 
39
45
  def error_message
40
- "Your request was malformed."
46
+ "Your request was malformed. '#{freeagent_error_message}'"
41
47
  end
42
48
  end
43
49
 
@@ -73,6 +79,14 @@ module FreeAgent
73
79
  end
74
80
  end
75
81
 
82
+ class UnprocessableContent < ErrorGenerator
83
+ private
84
+
85
+ def error_message
86
+ "Your request was unprocessable. '#{freeagent_error_message}'"
87
+ end
88
+ end
89
+
76
90
  class TooManyRequestsError < ErrorGenerator
77
91
  private
78
92
 
@@ -113,6 +127,7 @@ module FreeAgent
113
127
  403 => Errors::ForbiddenError,
114
128
  404 => Errors::EntityNotFoundError,
115
129
  409 => Errors::ConflictError,
130
+ 422 => Errors::UnprocessableContent,
116
131
  429 => Errors::TooManyRequestsError,
117
132
  500 => Errors::InternalError,
118
133
  503 => Errors::ServiceUnavailableError,
@@ -36,7 +36,7 @@ module FreeAgent
36
36
  end
37
37
 
38
38
  def error?(response)
39
- [ 400, 401, 403, 404, 409, 429, 500, 501, 503 ].include?(response.status) ||
39
+ [ 400, 401, 403, 404, 409, 422, 429, 500, 501, 503 ].include?(response.status) ||
40
40
  response.body&.key?("error")
41
41
  end
42
42
 
@@ -1,3 +1,3 @@
1
1
  module FreeAgent
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.3"
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: freeagentrb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dean Perry
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-02-09 00:00:00.000000000 Z
10
+ date: 2025-02-15 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: faraday