mastercard_api_core 1.4.9 → 1.4.10
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/lib/mastercard/core/exceptions.rb +85 -54
- data/mastercard_api_core.gemspec +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ba4ef82e5a66548c284157b22017c5f57603c58c
|
4
|
+
data.tar.gz: 45f5a2e615b2f625fe939f08eb8325e042df329d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f9a69507894185d86619736e7a9aadf93a7090a59440e9614ee0aae8f1701fbd4653588a3a158483ee333e974c55d4ea710176b00765714a63dae3a1d37ca34a
|
7
|
+
data.tar.gz: 0bc2fff8981a2dd327abcb30934d6707180b34df15374eb011286b8595448942865026b01010ea81569a9dcfd1b44aab4b34f2aff86be7e690a67af16de7a0e5
|
@@ -36,6 +36,8 @@ module MasterCard
|
|
36
36
|
################################################################################
|
37
37
|
class APIException < StandardError
|
38
38
|
include MasterCard::Core::Model
|
39
|
+
|
40
|
+
@@mapping = {100 => "Continue", 101 => "Switching Protocols", 102 => "Processing", 200 => "OK", 201 => "Created", 202 => "Accepted", 203 => "Non-Authoritative Information", 204 => "No Content", 205 => "Reset Content", 206 => "Partial Content", 207 => "Multi-Status", 300 => "Multiple Choices", 301 => "Moved Permanently", 302 => "Found", 303 => "See Other", 304 => "Not Modified", 305 => "Use Proxy", 306 => "(Unused)", 307 => "Temporary Redirect", 308 => "Permanent Redirect", 400 => "Bad Request", 401 => "Unauthorized", 402 => "Payment Required", 403 => "Forbidden", 404 => "Not Found", 405 => "Method Not Allowed", 406 => "Not Acceptable", 407 => "Proxy Authentication Required", 408 => "Request Timeout", 409 => "Conflict", 410 => "Gone", 411 => "Length Required", 412 => "Precondition Failed", 413 => "Request Entity Too Large", 414 => "Request-URI Too Long", 415 => "Unsupported Media Type", 416 => "Requested Range Not Satisfiable", 417 => "Expectation Failed", 418 => "I'm a teapot", 419 => "Authentication Timeout", 420 => "Enhance Your Calm", 422 => "Unprocessable Entity", 423 => "Locked", 424 => "Failed Dependency", 425 => "Unordered Collection", 426 => "Upgrade Required", 428 => "Precondition Required", 429 => "Too Many Requests", 431 => "Request Header Fields Too Large", 444 => "No Response", 449 => "Retry With", 450 => "Blocked by Windows Parental Controls", 451 => "Unavailable For Legal Reasons", 494 => "Request Header Too Large", 495 => "Cert Error", 496 => "No Cert", 497 => "HTTP to HTTPS", 499 => "Client Closed Request", 500 => "Internal Server Error", 501 => "Not Implemented", 502 => "Bad Gateway", 503 => "Service Unavailable", 504 => "Gateway Timeout", 505 => "HTTP Version Not Supported", 506 => "Variant Also Negotiates", 507 => "Insufficient Storage", 508 => "Loop Detected", 509 => "Bandwidth Limit Exceeded", 510 => "Not Extended", 511 => "Network Authentication Required", 598 => "Network read timeout error", 599 => "Network connect timeout error"}
|
39
41
|
#
|
40
42
|
# Base Class for all the API exceptions
|
41
43
|
def initialize(message,http_status=nil, error_data=nil)
|
@@ -44,44 +46,42 @@ module MasterCard
|
|
44
46
|
|
45
47
|
@message = message
|
46
48
|
@http_status = http_status
|
47
|
-
@
|
49
|
+
@message = message
|
50
|
+
unless http_status.nil?
|
51
|
+
@message = @@mapping[http_status]
|
52
|
+
end
|
53
|
+
|
54
|
+
@message = message
|
55
|
+
|
56
|
+
@description = nil
|
48
57
|
@reason_code = nil
|
49
58
|
@source = nil
|
50
|
-
@description = nil
|
51
|
-
|
52
|
-
#If error_data is not nil set the appropriate message
|
53
|
-
unless error_data.nil?
|
54
59
|
|
55
|
-
|
56
|
-
|
60
|
+
@raw_error_data = nil
|
61
|
+
@error = nil
|
62
|
+
@errors = []
|
57
63
|
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
64
|
+
|
65
|
+
parseRawErrorData(error_data)
|
66
|
+
parseErrors(error_data)
|
67
|
+
parseError(0)
|
68
|
+
end
|
69
|
+
|
62
70
|
|
63
|
-
error_hash = error_data_case_insensitive["errors"]
|
64
|
-
if (error_hash.is_a?(Hash) && error_hash.key?("error"))
|
65
|
-
error_hash = error_hash["error"]
|
66
|
-
end
|
67
|
-
|
68
|
-
if error_hash.is_a?(Array)
|
69
|
-
error_hash = error_hash[0]
|
70
|
-
end
|
71
71
|
|
72
|
+
def parseError(index)
|
73
|
+
if @errors.any? && index >= 0 && index < getErrorSize()
|
74
|
+
@error = @errors[index]
|
75
|
+
parseErrorFromMap()
|
76
|
+
end
|
77
|
+
end
|
72
78
|
|
73
|
-
|
74
|
-
|
75
|
-
|
79
|
+
def getError()
|
80
|
+
return @error
|
81
|
+
end
|
76
82
|
|
77
|
-
|
78
|
-
|
79
|
-
#Take the first error
|
80
|
-
error_hash = error_hash[0]
|
81
|
-
initDataFromHash(error_hash)
|
82
|
-
end
|
83
|
-
end
|
84
|
-
end
|
83
|
+
def getErrorSize()
|
84
|
+
return @errors.size
|
85
85
|
end
|
86
86
|
|
87
87
|
def getMessage()
|
@@ -129,40 +129,71 @@ module MasterCard
|
|
129
129
|
|
130
130
|
private
|
131
131
|
|
132
|
-
def
|
133
|
-
@
|
134
|
-
|
135
|
-
|
132
|
+
def parseErrorFromMap()
|
133
|
+
if @error.containsKeys("reasoncode")
|
134
|
+
@reason_code = @error.get("reasoncode")
|
135
|
+
end
|
136
|
+
if @error.containsKeys("description")
|
137
|
+
@description = @error.get("description")
|
138
|
+
end
|
139
|
+
if @error.containsKeys("source")
|
140
|
+
@source = @error.get("source")
|
141
|
+
end
|
142
|
+
|
136
143
|
end
|
137
144
|
|
138
|
-
def
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
145
|
+
def parseRawErrorData(error_data)
|
146
|
+
unless error_data.nil?
|
147
|
+
if error_data.is_a?(::Array) && error_data.size > 0
|
148
|
+
smartMap = CaseInsensitiveMap.new
|
149
|
+
smartMap.setAll(error_data[0]);
|
150
|
+
@raw_error_data = smartMap;
|
151
|
+
elsif error_data.is_a?(::Hash)
|
152
|
+
smartMap = CaseInsensitiveMap.new
|
153
|
+
smartMap.setAll(error_data);
|
154
|
+
@raw_error_data = smartMap;
|
147
155
|
end
|
148
156
|
end
|
149
|
-
return parsedMap
|
150
157
|
end
|
151
158
|
|
152
|
-
def
|
153
|
-
|
154
|
-
|
155
|
-
if
|
156
|
-
|
157
|
-
elsif
|
158
|
-
|
159
|
-
|
160
|
-
|
159
|
+
def parseErrors(error_data)
|
160
|
+
unless error_data.nil?
|
161
|
+
errors = []
|
162
|
+
if error_data.is_a?(::Array) && error_data.size > 0
|
163
|
+
errors = (errors << error_data).flatten
|
164
|
+
elsif error_data.is_a?(::Hash)
|
165
|
+
errors << error_data
|
166
|
+
end
|
167
|
+
|
168
|
+
errors.each do |error|
|
169
|
+
smartMap = CaseInsensitiveMap.new
|
170
|
+
smartMap.setAll(error);
|
171
|
+
if smartMap.containsKeys("errors.error.reasoncode")
|
172
|
+
addErrors(smartMap.get("errors.error"))
|
173
|
+
elsif smartMap.containsKeys("errors.error[0].reasoncode")
|
174
|
+
addErrors(smartMap.get("errors.error"))
|
175
|
+
elsif smartMap.containsKeys("errors[0].reasoncode")
|
176
|
+
addErrors(smartMap.get("errors"))
|
177
|
+
elsif smartMap.containsKeys("reasoncode")
|
178
|
+
addErrors(smartMap.getObject())
|
179
|
+
end
|
161
180
|
end
|
162
181
|
end
|
163
|
-
return parsedList
|
164
182
|
end
|
165
183
|
|
184
|
+
def addErrors(error)
|
185
|
+
if error.is_a?(::Array)
|
186
|
+
error.each do |item|
|
187
|
+
smartMap = CaseInsensitiveMap.new
|
188
|
+
smartMap.setAll(item);
|
189
|
+
@errors << smartMap
|
190
|
+
end
|
191
|
+
elsif error.is_a?(::Hash)
|
192
|
+
smartMap = CaseInsensitiveMap.new
|
193
|
+
smartMap.setAll(error)
|
194
|
+
@errors << smartMap
|
195
|
+
end
|
196
|
+
end
|
166
197
|
end
|
167
198
|
end
|
168
199
|
end
|
data/mastercard_api_core.gemspec
CHANGED
@@ -31,7 +31,7 @@ Gem::Specification.new do |gem|
|
|
31
31
|
gem.summary = %q{MasterCard core SDK}
|
32
32
|
gem.description = %q{This is the MasterCard OpenAPI core SDK. This provides the base functionality for all MasterCard APIs}
|
33
33
|
gem.homepage = "https://developer.mastercard.com"
|
34
|
-
gem.version = "1.4.
|
34
|
+
gem.version = "1.4.10"
|
35
35
|
gem.license = "BSD-2-Clause"
|
36
36
|
|
37
37
|
gem.files = Dir["{bin,spec,lib}/**/*"]+ Dir["data/*"] + ["mastercard_api_core.gemspec"]
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mastercard_api_core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.4.
|
4
|
+
version: 1.4.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- MasterCard Worldwide
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-01-
|
11
|
+
date: 2018-01-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: simplecov
|