freeagentrb 0.1.1 → 0.1.3

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