Skip to content

Commit

Permalink
Bugfix/fxapi callback map (#194)
Browse files Browse the repository at this point in the history
* Fixed fxapi

* Fixed an issue with the active rule selection

* Bumped up the version

* Fixed unit tests
  • Loading branch information
vijayg10 committed Oct 19, 2021
1 parent 20bf2f1 commit 9d90b60
Show file tree
Hide file tree
Showing 6 changed files with 311 additions and 73 deletions.
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "ml-testing-toolkit",
"description": "Testing Toolkit for Mojaloop implementations",
"version": "14.0.0",
"version": "14.0.1",
"license": "Apache-2.0",
"author": "Vijaya Kumar Guthi, ModusBox Inc. ",
"contributors": [
Expand Down
24 changes: 12 additions & 12 deletions spec_files/api_definitions/fx-api_2.0/callback_map.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
"headerOverride": {
"FSPIOP-Source": "{$config.FSPID}",
"FSPIOP-Destination": "{$request.headers.fspiop-source}",
"Content-Type": "{$session.negotiatedContentType}",
"Content-Type": "{$request.headers.content-type}",
"Date": "{$request.headers.date}"
},
"bodyOverride": {
Expand All @@ -25,7 +25,7 @@
"headerOverride": {
"FSPIOP-Source": "{$config.FSPID}",
"FSPIOP-Destination": "{$request.headers.fspiop-source}",
"Content-Type": "{$session.negotiatedContentType}",
"Content-Type": "{$request.headers.content-type}",
"Date": "{$request.headers.date}"
}
}
Expand All @@ -41,7 +41,7 @@
"headerOverride": {
"FSPIOP-Source": "{$config.FSPID}",
"FSPIOP-Destination": "{$request.headers.fspiop-source}",
"Content-Type": "{$session.negotiatedContentType}",
"Content-Type": "{$request.headers.content-type}",
"Date": "{$request.headers.date}"
}
},
Expand All @@ -52,7 +52,7 @@
"headerOverride": {
"FSPIOP-Source": "{$config.FSPID}",
"FSPIOP-Destination": "{$request.headers.fspiop-source}",
"Content-Type": "{$session.negotiatedContentType}",
"Content-Type": "{$request.headers.content-type}",
"Date": "{$request.headers.date}"
}
}
Expand All @@ -68,7 +68,7 @@
"headerOverride": {
"FSPIOP-Source": "{$config.FSPID}",
"FSPIOP-Destination": "{$request.headers.fspiop-source}",
"Content-Type": "{$session.negotiatedContentType}",
"Content-Type": "{$request.headers.content-type}",
"Date": "{$request.headers.date}"
}
},
Expand All @@ -79,7 +79,7 @@
"headerOverride": {
"FSPIOP-Source": "{$config.FSPID}",
"FSPIOP-Destination": "{$request.headers.fspiop-source}",
"Content-Type": "{$session.negotiatedContentType}",
"Content-Type": "{$request.headers.content-type}",
"Date": "{$request.headers.date}"
}
}
Expand All @@ -95,7 +95,7 @@
"headerOverride": {
"FSPIOP-Source": "{$config.FSPID}",
"FSPIOP-Destination": "{$request.headers.fspiop-source}",
"Content-Type": "{$session.negotiatedContentType}",
"Content-Type": "{$request.headers.content-type}",
"Date": "{$request.headers.date}"
}
},
Expand All @@ -106,7 +106,7 @@
"headerOverride": {
"FSPIOP-Source": "{$config.FSPID}",
"FSPIOP-Destination": "{$request.headers.fspiop-source}",
"Content-Type": "{$session.negotiatedContentType}",
"Content-Type": "{$request.headers.content-type}",
"Date": "{$request.headers.date}"
}
}
Expand All @@ -122,7 +122,7 @@
"headerOverride": {
"FSPIOP-Source": "{$config.FSPID}",
"FSPIOP-Destination": "{$request.headers.fspiop-source}",
"Content-Type": "{$session.negotiatedContentType}",
"Content-Type": "{$request.headers.content-type}",
"Date": "{$request.headers.date}"
},
"bodyOverride": {
Expand All @@ -142,7 +142,7 @@
"headerOverride": {
"FSPIOP-Source": "{$config.FSPID}",
"FSPIOP-Destination": "{$request.headers.fspiop-source}",
"Content-Type": "{$session.negotiatedContentType}",
"Content-Type": "{$request.headers.content-type}",
"Date": "{$request.headers.date}"
}
}
Expand All @@ -158,7 +158,7 @@
"headerOverride": {
"FSPIOP-Source": "{$config.FSPID}",
"FSPIOP-Destination": "{$request.headers.fspiop-source}",
"Content-Type": "{$session.negotiatedContentType}",
"Content-Type": "{$request.headers.content-type}",
"Date": "{$request.headers.date}"
},
"bodyOverride": {
Expand All @@ -179,7 +179,7 @@
"headerOverride": {
"FSPIOP-Source": "{$config.FSPID}",
"FSPIOP-Destination": "{$request.headers.fspiop-source}",
"Content-Type": "{$session.negotiatedContentType}",
"Content-Type": "{$request.headers.content-type}",
"Date": "{$request.headers.date}"
}
}
Expand Down
222 changes: 222 additions & 0 deletions spec_files/rules_callback/default.json
Original file line number Diff line number Diff line change
Expand Up @@ -765,5 +765,227 @@
"delay": 0,
"type": "MOCK_CALLBACK"
}
},
{
"ruleId": 21,
"priority": 1,
"description": "get /fxParties/{Type}/{ID}",
"apiVersion": {
"minorVersion": 0,
"majorVersion": 2,
"type": "fx-api",
"asynchronous": true
},
"conditions": {
"all": [
{
"fact": "operationPath",
"operator": "equal",
"value": "/fxParties/{Type}/{ID}"
},
{
"fact": "method",
"operator": "equal",
"value": "get"
}
]
},
"event": {
"method": "put",
"path": "/fxParties/{Type}/{ID}",
"params": {
"scripts": {
"scriptingEngine": "postman"
}
},
"type": "MOCK_CALLBACK"
},
"type": "callback",
"version": 1
},
{
"ruleId": 22,
"priority": 1,
"description": "get /fxParties/{Type}/{ID}/{SubId}",
"apiVersion": {
"minorVersion": 0,
"majorVersion": 2,
"type": "fx-api",
"asynchronous": true
},
"conditions": {
"all": [
{
"fact": "operationPath",
"operator": "equal",
"value": "/fxParties/{Type}/{ID}/{SubId}"
},
{
"fact": "method",
"operator": "equal",
"value": "get"
}
]
},
"event": {
"method": "put",
"path": "/fxParties/{Type}/{ID}/{SubId}",
"params": {
"scripts": {
"scriptingEngine": "postman"
}
},
"type": "MOCK_CALLBACK"
},
"type": "callback",
"version": 1
},
{
"ruleId": 23,
"priority": 1,
"description": "post /fxQuotes",
"apiVersion": {
"minorVersion": 0,
"majorVersion": 2,
"type": "fx-api",
"asynchronous": true
},
"conditions": {
"all": [
{
"fact": "operationPath",
"operator": "equal",
"value": "/fxQuotes"
},
{
"fact": "method",
"operator": "equal",
"value": "post"
}
]
},
"event": {
"method": "put",
"path": "/fxQuotes/{ID}",
"params": {
"scripts": {
"scriptingEngine": "postman"
}
},
"type": "MOCK_CALLBACK"
},
"type": "callback",
"version": 1
},
{
"ruleId": 24,
"priority": 1,
"description": "get /fxQuotes/{ID}",
"apiVersion": {
"minorVersion": 0,
"majorVersion": 2,
"type": "fx-api",
"asynchronous": true
},
"conditions": {
"all": [
{
"fact": "operationPath",
"operator": "equal",
"value": "/fxQuotes/{ID}"
},
{
"fact": "method",
"operator": "equal",
"value": "get"
}
]
},
"event": {
"method": "put",
"path": "/fxQuotes/{ID}",
"params": {
"scripts": {
"scriptingEngine": "postman"
}
},
"type": "MOCK_CALLBACK"
},
"type": "callback",
"version": 1
},
{
"ruleId": 25,
"priority": 1,
"description": "post /fxTransfers",
"apiVersion": {
"minorVersion": 0,
"majorVersion": 2,
"type": "fx-api",
"asynchronous": true
},
"conditions": {
"all": [
{
"fact": "operationPath",
"operator": "equal",
"value": "/fxTransfers"
},
{
"fact": "method",
"operator": "equal",
"value": "post"
}
]
},
"event": {
"method": "put",
"path": "/fxTransfers/{ID}",
"params": {
"scripts": {
"scriptingEngine": "postman"
}
},
"type": "MOCK_CALLBACK"
},
"type": "callback",
"version": 1
},
{
"ruleId": 26,
"priority": 1,
"description": "get /fxTransfers/{ID}",
"apiVersion": {
"minorVersion": 0,
"majorVersion": 2,
"type": "fx-api",
"asynchronous": true
},
"conditions": {
"all": [
{
"fact": "operationPath",
"operator": "equal",
"value": "/fxTransfers/{ID}"
},
{
"fact": "method",
"operator": "equal",
"value": "get"
}
]
},
"event": {
"method": "put",
"path": "/fxTransfers/{ID}",
"params": {
"scripts": {
"scriptingEngine": "postman"
}
},
"type": "MOCK_CALLBACK"
},
"type": "callback",
"version": 1
}
]
12 changes: 12 additions & 0 deletions src/lib/rulesEngineModel.js
Original file line number Diff line number Diff line change
Expand Up @@ -273,6 +273,10 @@ const deleteForwardRulesFile = async (fileName, user) => {

// common functions
const reloadRules = async (model, user) => {
const fetchedActiveRulesFile = await getActiveRulesFile(model, user)
if (fetchedActiveRulesFile) {
model.activeRulesFile = fetchedActiveRulesFile
}
customLogger.logMessage('info', `Reloading ${model.ruleType} Rules from file ` + model.activeRulesFile, { notification: false })
const userRules = await storageAdapter.read(model.rulesFilePathPrefix + model.activeRulesFile, user)
model.rules = userRules.data
Expand All @@ -291,6 +295,11 @@ const setActiveRulesFile = async (model, fileName, user) => {
await reloadRules(model, user)
}

const getActiveRulesFile = async (model, user) => {
const configFileContent = await storageAdapter.read(model.rulesFilePathPrefix + CONFIG_FILE_NAME, user)
return configFileContent.data.activeRulesFile
}

const getRules = async (model, user) => {
if (!model.rules || model.rules.length === 0) {
await reloadRules(model, user)
Expand Down Expand Up @@ -330,6 +339,9 @@ const getRulesFiles = async (model, user) => {
resp.files = files.data.filter(item => {
return (item !== CONFIG_FILE_NAME)
})
if (model.rules === null) {
await reloadRules(model, user)
}
resp.activeRulesFile = model.activeRulesFile
return resp
} catch (err) {
Expand Down
Loading

0 comments on commit 9d90b60

Please sign in to comment.