mastercard_api_core 1.1.0 → 1.2.0
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/config.rb +3 -6
- data/lib/mastercard/core/constants.rb +0 -2
- data/lib/mastercard/core/controller.rb +56 -51
- data/lib/mastercard/core/model.rb +67 -56
- 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: f5f763aebe0c1c4a9a63b42140714f3855315cb2
|
4
|
+
data.tar.gz: 5052018374598d3ce2f0e696db496582fb4d7371
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d69f38d00443e4458f114226a422bce782f65949b68babafe2b0488a4bc2b73a3e27ba360d646bbedaacb5e730c35ecc87b3ab6313190902e881f157977b5b56
|
7
|
+
data.tar.gz: da1d578e23a34fb2083890bc37ef250711f400eec3083fbeb00b33224314957fd6474e58fe86ecff6fa8a228d9924b8f4ef663db60f13461d0b11931912bf9eb
|
@@ -70,14 +70,11 @@ module MasterCard
|
|
70
70
|
end
|
71
71
|
|
72
72
|
def self.getAPIBaseURL
|
73
|
-
|
74
|
-
if @@localhost
|
75
|
-
return Constants::API_BASE_LOCALHOST_URL
|
76
|
-
elsif @@sandbox
|
73
|
+
if @@sandbox
|
77
74
|
return Constants::API_BASE_SANDBOX_URL
|
75
|
+
else
|
76
|
+
return Constants::API_BASE_LIVE_URL
|
78
77
|
end
|
79
|
-
|
80
|
-
return Constants::API_BASE_LIVE_URL
|
81
78
|
end
|
82
79
|
end
|
83
80
|
end
|
@@ -56,10 +56,10 @@ module MasterCard
|
|
56
56
|
JSON_STR = "JSON"
|
57
57
|
|
58
58
|
|
59
|
-
def initialize(
|
59
|
+
def initialize()
|
60
60
|
#Set the parameters
|
61
61
|
@baseURL = Config.getAPIBaseURL()
|
62
|
-
|
62
|
+
|
63
63
|
@baseURL = removeForwardSlashFromTail(@baseURL)
|
64
64
|
|
65
65
|
#Verify if the URL is correct
|
@@ -67,47 +67,17 @@ module MasterCard
|
|
67
67
|
raise APIException.new "URL: '" + @baseURL + "' is not a valid url"
|
68
68
|
end
|
69
69
|
|
70
|
-
#Set the version
|
71
|
-
unless version.nil?
|
72
|
-
@version = version
|
73
|
-
else
|
74
|
-
@version = Constants::VERSION
|
75
|
-
end
|
76
|
-
|
77
70
|
end
|
78
71
|
|
79
|
-
def execute(
|
80
|
-
|
72
|
+
def execute(config,metadata,input)
|
73
|
+
|
81
74
|
#Check preconditions for execute
|
82
75
|
preCheck()
|
83
|
-
|
84
|
-
#Separate the headers from the inputMap
|
85
|
-
headers = Util.subMap(input,headerKey)
|
86
|
-
|
87
|
-
#Separate the query from the inputMap
|
88
|
-
queryParams = Util.subMap(input,queryKey)
|
89
|
-
|
90
|
-
#Get the resourcePath containing values from input
|
91
|
-
resourcePath = getFullResourcePath(action,resourcePath,input)
|
92
|
-
|
93
|
-
#Get the path parameters
|
94
|
-
pathParams = getPathParams(action,queryParams,input)
|
95
|
-
#Get the body
|
96
|
-
body = getBody(action,input)
|
97
|
-
|
76
|
+
|
98
77
|
#Get the request Object
|
99
|
-
request = getRequestObject(
|
100
|
-
|
101
|
-
|
102
|
-
headers.each do |key,value|
|
103
|
-
request.add_field(key,value)
|
104
|
-
end
|
105
|
-
|
106
|
-
fullUrl = @baseURL+resourcePath
|
107
|
-
#Sign and get back the request
|
108
|
-
request = Config.getAuthentication().signRequest(fullUrl,request,request.method,body,pathParams)
|
109
|
-
|
110
|
-
uri = URI.parse(@baseURL)
|
78
|
+
request = getRequestObject(config,metadata,input)
|
79
|
+
|
80
|
+
uri = URI.parse(request.path)
|
111
81
|
#Get the http object
|
112
82
|
http = getHTTPObject(uri)
|
113
83
|
|
@@ -115,7 +85,7 @@ module MasterCard
|
|
115
85
|
puts "---- Request ----"
|
116
86
|
puts ""
|
117
87
|
puts "URL"
|
118
|
-
puts
|
88
|
+
puts request.path
|
119
89
|
puts ""
|
120
90
|
puts "Headers"
|
121
91
|
request.each_header do |header_name, header_value|
|
@@ -217,10 +187,11 @@ module MasterCard
|
|
217
187
|
end
|
218
188
|
|
219
189
|
def getHTTPObject(uri)
|
190
|
+
|
220
191
|
#Returns the HTTP Object
|
221
192
|
http = Net::HTTP.new(uri.host,uri.port)
|
222
|
-
|
223
|
-
|
193
|
+
|
194
|
+
if uri.scheme == "https"
|
224
195
|
http.use_ssl = true
|
225
196
|
end
|
226
197
|
|
@@ -234,9 +205,35 @@ module MasterCard
|
|
234
205
|
[path, encoded].join("?")
|
235
206
|
end
|
236
207
|
|
237
|
-
def getRequestObject(
|
208
|
+
def getRequestObject(config,metadata,input)
|
209
|
+
|
210
|
+
#action,resourcePath,headerKey,queryKey,input
|
211
|
+
|
212
|
+
#Separate the headers from the inputMap
|
213
|
+
headers = Util.subMap(input,config.getHeaderParams())
|
214
|
+
|
215
|
+
#Separate the query from the inputMap
|
216
|
+
queryParams = Util.subMap(input,config.getQueryParams())
|
217
|
+
|
218
|
+
#We need to resolve the host
|
219
|
+
resolvedHost = @baseURL
|
220
|
+
unless metadata.getHost().nil?
|
221
|
+
resolvedHost = metadata.getHost()
|
222
|
+
end
|
223
|
+
|
224
|
+
fullUrl = resolvedHost + config.getResoucePath()
|
225
|
+
|
226
|
+
#Get the resourcePath containing values from input
|
227
|
+
fullUrl = getFullResourcePath(config.getAction(),fullUrl,input)
|
228
|
+
|
229
|
+
#Get the path parameters
|
230
|
+
pathParams = getPathParams(config.getAction(),queryParams,input)
|
231
|
+
#Get the body
|
232
|
+
body = getBody(config.getAction(),input)
|
233
|
+
|
234
|
+
|
238
235
|
#Retuns the request object based on action
|
239
|
-
case
|
236
|
+
case config.getAction().upcase
|
240
237
|
when ACTION_LIST, ACTION_READ, ACTION_QUERY
|
241
238
|
verb = Net::HTTP::Get
|
242
239
|
|
@@ -249,26 +246,34 @@ module MasterCard
|
|
249
246
|
when ACTION_UPDATE
|
250
247
|
verb = Net::HTTP::Put
|
251
248
|
else
|
252
|
-
raise APIException.new "Invalid action #{
|
249
|
+
raise APIException.new "Invalid action #{config.getAction()}"
|
253
250
|
end
|
254
251
|
|
255
252
|
#add url parameters to path
|
256
|
-
|
253
|
+
fullUrl = encode_path_params(fullUrl,pathParams)
|
257
254
|
|
258
|
-
|
255
|
+
request = verb.new(fullUrl)
|
259
256
|
|
260
257
|
#Add default headers
|
261
|
-
|
262
|
-
|
263
|
-
|
258
|
+
request.add_field(KEY_ACCEPT,APPLICATION_JSON)
|
259
|
+
request.add_field(KEY_CONTENT_TYPE,APPLICATION_JSON)
|
260
|
+
request.add_field(KEY_USER_AGENT,RUBY_SDK+"/"+metadata.getVersion())
|
264
261
|
|
265
262
|
#Add body
|
266
263
|
|
267
264
|
unless body.nil?
|
268
|
-
|
265
|
+
request.body = body.to_json
|
266
|
+
end
|
267
|
+
|
268
|
+
#Add headers to request
|
269
|
+
headers.each do |key,value|
|
270
|
+
request.add_field(key,value)
|
269
271
|
end
|
270
272
|
|
271
|
-
|
273
|
+
#Sign and get back the request
|
274
|
+
request = Config.getAuthentication().signRequest(fullUrl,request,request.method,body,pathParams)
|
275
|
+
|
276
|
+
return request
|
272
277
|
|
273
278
|
|
274
279
|
end
|
@@ -340,7 +340,59 @@ module MasterCard
|
|
340
340
|
|
341
341
|
|
342
342
|
end
|
343
|
+
|
344
|
+
################################################################################
|
345
|
+
# OperationMetadata
|
346
|
+
################################################################################
|
343
347
|
|
348
|
+
class OperationMetadata
|
349
|
+
|
350
|
+
def initialize(version, host)
|
351
|
+
@version = version
|
352
|
+
@host = host
|
353
|
+
end
|
354
|
+
|
355
|
+
def getVersion()
|
356
|
+
return @version
|
357
|
+
end
|
358
|
+
|
359
|
+
def getHost()
|
360
|
+
return @host
|
361
|
+
end
|
362
|
+
|
363
|
+
end
|
364
|
+
|
365
|
+
|
366
|
+
################################################################################
|
367
|
+
# OperationConfig
|
368
|
+
################################################################################
|
369
|
+
|
370
|
+
class OperationConfig
|
371
|
+
|
372
|
+
def initialize(resourcePath, action, headerParams, queryParams)
|
373
|
+
@resourcePath = resourcePath
|
374
|
+
@action = action
|
375
|
+
@headerParams = headerParams
|
376
|
+
@queryParams = queryParams
|
377
|
+
end
|
378
|
+
|
379
|
+
def getResoucePath()
|
380
|
+
return @resourcePath
|
381
|
+
end
|
382
|
+
|
383
|
+
def getAction()
|
384
|
+
return @action
|
385
|
+
end
|
386
|
+
|
387
|
+
def getHeaderParams()
|
388
|
+
return @headerParams
|
389
|
+
end
|
390
|
+
|
391
|
+
def getQueryParams()
|
392
|
+
return @queryParams
|
393
|
+
end
|
394
|
+
|
395
|
+
end
|
344
396
|
|
345
397
|
################################################################################
|
346
398
|
# BaseObject
|
@@ -361,67 +413,26 @@ module MasterCard
|
|
361
413
|
end
|
362
414
|
|
363
415
|
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
def getHeaderParams(action)
|
369
|
-
raise NotImplementedError.new("Child class must define getHeaderParams method to use this class")
|
416
|
+
protected
|
417
|
+
|
418
|
+
def self.getOperationConfig(uuid)
|
419
|
+
raise NotImplementedError.new("Child class must define getOperationConfig method to use this class")
|
370
420
|
end
|
371
421
|
|
372
|
-
def
|
373
|
-
raise NotImplementedError.new("Child class must define
|
422
|
+
def self.getOperationMetadata()
|
423
|
+
raise NotImplementedError.new("Child class must define getOperationMetadata method to use this class")
|
374
424
|
end
|
375
|
-
|
376
|
-
def self.
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
if criteria.is_a?(RequestMap)
|
385
|
-
inputObject.setAll(criteria.getObject())
|
386
|
-
else
|
387
|
-
inputObject.setAll(criteria)
|
388
|
-
end
|
389
|
-
|
390
|
-
end
|
391
|
-
|
392
|
-
return self.execute(APIController::ACTION_READ,inputObject)
|
393
|
-
|
394
|
-
end
|
395
|
-
|
396
|
-
def self.listObjects(inputObject)
|
397
|
-
return self.execute(APIController::ACTION_LIST,inputObject)
|
398
|
-
end
|
399
|
-
|
400
|
-
def self.createObject(inputObject)
|
401
|
-
return self.execute(APIController::ACTION_CREATE,inputObject)
|
402
|
-
end
|
403
|
-
|
404
|
-
def self.queryObject(inputObject)
|
405
|
-
return self.execute(APIController::ACTION_QUERY,inputObject)
|
406
|
-
end
|
407
|
-
|
408
|
-
def self.deleteObject(inputObject)
|
409
|
-
return self.execute(APIController::ACTION_DELETE,inputObject)
|
410
|
-
end
|
411
|
-
|
412
|
-
def self.updateObject(inputObject)
|
413
|
-
return self.execute(APIController::ACTION_UPDATE,inputObject)
|
414
|
-
end
|
415
|
-
|
416
|
-
private
|
417
|
-
|
418
|
-
def self.execute(action,inputObject)
|
419
|
-
|
420
|
-
controller = APIController.new(self.getApiVersion)
|
421
|
-
response = controller.execute(action,inputObject.getResourcePath(action),inputObject.getHeaderParams(action),inputObject.getQueryParams(action),inputObject.getObject())
|
425
|
+
|
426
|
+
def self.execute(operationUUID,inputObject)
|
427
|
+
|
428
|
+
|
429
|
+
config = inputObject.class.getOperationConfig(operationUUID)
|
430
|
+
metadata = inputObject.class.getOperationMetadata()
|
431
|
+
|
432
|
+
response = APIController.new.execute(config,metadata,inputObject.getObject())
|
422
433
|
returnObjClass = inputObject.class
|
423
434
|
|
424
|
-
if
|
435
|
+
if config.getAction().upcase == APIController::ACTION_LIST
|
425
436
|
returnObj = []
|
426
437
|
|
427
438
|
if response.is_a?(Hash) && response.key?(RequestMap::KEY_LIST)
|
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
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- MasterCard Worldwide
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-09-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: simplecov
|