11module Adyen
22 class AdyenError < StandardError
3- attr_reader :code , :response , :request
3+ attr_reader :code , :response , :request , :msg
44
55 def initialize ( request = nil , response = nil , msg = nil , code = nil )
6+ attributes = {
7+ code : code ,
8+ request : request ,
9+ response : response ,
10+ msg : msg
11+ } . select { |_k , v | v } . map { |k , v | "#{ k } :#{ v } " } . join ( ', ' )
12+ message = "#{ self . class . name } #{ attributes } "
13+ super ( message )
614 @code = code
715 @response = response
816 @request = request
@@ -12,65 +20,44 @@ def initialize(request = nil, response = nil, msg = nil, code = nil)
1220
1321 class AuthenticationError < AdyenError
1422 def initialize ( msg , request )
15- @code = 401
16- @response = nil
17- @request = request
18- @msg = msg
23+ super ( request , nil , msg , 401 )
1924 end
2025 end
2126
2227 class PermissionError < AdyenError
2328 def initialize ( msg , request )
24- @code = 403
25- @response = nil
26- @request = request
27- @msg = msg
29+ super ( request , nil , msg , 403 )
2830 end
2931 end
3032
3133 class FormatError < AdyenError
3234 def initialize ( msg , request , response )
33- @code = 422
34- @response = response
35- @request = request
36- @msg = msg
35+ super ( request , response , msg , 422 )
3736 end
3837 end
3938
4039 class ServerError < AdyenError
4140 def initialize ( msg , request , response )
42- @code = 500
43- @response = response
44- @request = request
45- @msg = msg
41+ super ( request , response , msg , 500 )
4642 end
4743 end
4844
4945 class ConfigurationError < AdyenError
5046 def initialize ( msg , request )
51- @code = 905
52- @response = nil
53- @request = request
54- @msg = msg
47+ super ( request , nil , msg , 905 )
5548 end
5649 end
5750
5851 class ValidationError < AdyenError
5952 def initialize ( msg , request )
60- @code = nil
61- @response = nil
62- @request = request
63- @msg = msg
53+ super ( request , nil , msg , nil )
6454 end
6555 end
6656
6757 # catchall for errors which don't have more specific classes
6858 class APIError < AdyenError
6959 def initialize ( msg , request , response , code )
70- @code = code
71- @response = response
72- @request = request
73- @msg = msg
60+ super ( request , response , msg , code )
7461 end
7562 end
7663end
0 commit comments