modulr-api 0.0.34 → 0.0.37
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 +4 -4
- data/Gemfile.lock +1 -1
- data/lib/modulr/api/payments_service.rb +1 -1
- data/lib/modulr/client.rb +4 -10
- data/lib/modulr/error.rb +20 -27
- data/lib/modulr/resources/base_collection.rb +1 -1
- data/lib/modulr/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fe369be8d916cd8e22bd8189c0fda5718b69179c26dc85aef6e62dce4d0f1652
|
4
|
+
data.tar.gz: 0e0ccde8a0780d964afbbe43397ebdfab93b1bec31a6db84b0936ef7bc42676a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e93009870f75d25bbff369008005b31aa5cf0ca628ec6210549902f00a1f7995a32bbf620d7231dffc9e62d23a93bbd760add321c1748a83769dc33c960e8bf2
|
7
|
+
data.tar.gz: 1603ea48040cf8f2639d1cb2c6818a847ae45e1295d3c42d4b7e5e517f9ef789e954e4c0e5ead35042ac385dbbc4810b2edcbcd3bae0eda501aed91c20c30b62
|
data/Gemfile.lock
CHANGED
@@ -6,7 +6,7 @@ module Modulr
|
|
6
6
|
def find(id:)
|
7
7
|
response = client.get("/payments", { id: id })
|
8
8
|
payment_attributes = response.body[:content]&.first
|
9
|
-
raise
|
9
|
+
raise ClientError, "Payment #{id} not found" unless payment_attributes
|
10
10
|
|
11
11
|
Resources::Payments::Payment.new(response.env[:raw_body], payment_attributes)
|
12
12
|
end
|
data/lib/modulr/client.rb
CHANGED
@@ -97,19 +97,13 @@ module Modulr
|
|
97
97
|
end
|
98
98
|
|
99
99
|
def handle_request_error(error)
|
100
|
-
response = error.response
|
101
100
|
case error
|
102
101
|
when Faraday::ClientError
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
when 404
|
107
|
-
raise NotFoundError, response
|
108
|
-
else
|
109
|
-
raise RequestError, response
|
110
|
-
end
|
102
|
+
raise ClientError, error
|
103
|
+
when Faraday::ServerError
|
104
|
+
raise ServerError, error
|
111
105
|
else
|
112
|
-
raise Error,
|
106
|
+
raise Error, error
|
113
107
|
end
|
114
108
|
end
|
115
109
|
|
data/lib/modulr/error.rb
CHANGED
@@ -2,44 +2,37 @@
|
|
2
2
|
|
3
3
|
module Modulr
|
4
4
|
class Error < StandardError
|
5
|
-
|
6
|
-
|
7
|
-
class RequestError < Error
|
8
|
-
attr_reader :response, :errors
|
9
|
-
|
10
|
-
def initialize(response)
|
11
|
-
@response = response
|
12
|
-
@errors = extract_errors
|
13
|
-
super(message_from(response))
|
14
|
-
end
|
15
|
-
|
16
|
-
private def extract_errors
|
17
|
-
return unless json?
|
5
|
+
attr_reader :wrapped_error, :status, :response
|
18
6
|
|
19
|
-
|
7
|
+
def initialize(error)
|
8
|
+
@wrapped_error = error
|
9
|
+
@response = @wrapped_error.response if @wrapped_error.respond_to?(:response)
|
10
|
+
@status = structured_response[:status]
|
11
|
+
super(error_message)
|
20
12
|
end
|
21
13
|
|
22
|
-
private def
|
23
|
-
return
|
14
|
+
private def error_message
|
15
|
+
return @wrapped_error unless @response
|
24
16
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
"#{response[:status]} #{response[:body]}"
|
29
|
-
end
|
17
|
+
wrapped_error_description = "#{@wrapped_error.class}: #{@wrapped_error}"
|
18
|
+
response_description = "Status: #{structured_response[:status]} - Response: '#{structured_response[:body]}'"
|
19
|
+
"#{response_description} (#{wrapped_error_description})"
|
30
20
|
end
|
31
21
|
|
32
|
-
private def
|
33
|
-
return unless response
|
22
|
+
private def structured_response
|
23
|
+
return {} unless @response
|
24
|
+
return @response if @response.is_a?(Hash)
|
34
25
|
|
35
|
-
|
36
|
-
|
26
|
+
{
|
27
|
+
status: @response.status,
|
28
|
+
body: @response.body,
|
29
|
+
}
|
37
30
|
end
|
38
31
|
end
|
39
32
|
|
40
|
-
class
|
33
|
+
class ClientError < Error
|
41
34
|
end
|
42
35
|
|
43
|
-
class
|
36
|
+
class ServerError < Error
|
44
37
|
end
|
45
38
|
end
|
data/lib/modulr/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: modulr-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.37
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aitor García Rey
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-10-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|