Lots of re-structuring and handling of different data types
This commit is contained in:
@@ -107,26 +107,39 @@ exports.RuleEngine = class RuleEngine {
|
||||
logger.log("debug", "Logic FLAT start - whiteFilterRule: " + JSON.stringify(theWhiteFilterRule));
|
||||
let isKnownComp = false;
|
||||
let retVal = false;
|
||||
|
||||
let dataValue;
|
||||
let ruleValue;
|
||||
let sDataType = theWhiteFilterRule.dataType || "string";
|
||||
|
||||
if (sDataType ==="number") {
|
||||
dataValue = Number(inputData[theWhiteFilterRule.Field]);
|
||||
ruleValue = Number(theWhiteFilterRule.Value);
|
||||
} else {
|
||||
dataValue = inputData[theWhiteFilterRule.Field];
|
||||
ruleValue = theWhiteFilterRule.Value;
|
||||
}
|
||||
|
||||
try {
|
||||
if (theWhiteFilterRule.Comp === "===") {
|
||||
isKnownComp = true;
|
||||
if (inputData[theWhiteFilterRule.Field] === theWhiteFilterRule.Value) {retVal = true;}
|
||||
isKnownComp = true;
|
||||
if (dataValue === ruleValue) {retVal = true;}
|
||||
} else if (theWhiteFilterRule.Comp === "<") {
|
||||
isKnownComp = true;
|
||||
if (inputData[theWhiteFilterRule.Field] < theWhiteFilterRule.Value) {retVal = true;}
|
||||
isKnownComp = true;
|
||||
if (dataValue < ruleValue) {retVal = true;}
|
||||
} else if (theWhiteFilterRule.Comp === ">") {
|
||||
isKnownComp = true;
|
||||
if (inputData[theWhiteFilterRule.Field] > theWhiteFilterRule.Value) {retVal = true;}
|
||||
if (dataValue > ruleValue) {retVal = true;}
|
||||
} else if (theWhiteFilterRule.Comp === "<=") {
|
||||
isKnownComp = true;
|
||||
if (inputData[theWhiteFilterRule.Field] <= theWhiteFilterRule.Value) {retVal = true;}
|
||||
if (dataValue <= ruleValue) {retVal = true;}
|
||||
} else if (theWhiteFilterRule.Comp === ">=") {
|
||||
isKnownComp = true;
|
||||
if (inputData[theWhiteFilterRule.Field] >= theWhiteFilterRule.Value) {retVal = true;}
|
||||
if (dataValue >= ruleValue) {retVal = true;}
|
||||
} else if (theWhiteFilterRule.Comp === "~") {
|
||||
isKnownComp = true;
|
||||
logger.log("debug", "RegexFilter: " + theWhiteFilterRule.Value + " || " + ""+inputData[theWhiteFilterRule.Field].replace(/\r/g, "\\r").replace(/\n/g, "\\n"));
|
||||
retVal = this.reTest(theWhiteFilterRule.Value, inputData[theWhiteFilterRule.Field]);
|
||||
logger.log("debug", "RegexFilter: " + ruleValue + " || " + ""+dataValue.replace(/\r/g, "\\r").replace(/\n/g, "\\n"));
|
||||
retVal = this.reTest(ruleValue, dataValue);
|
||||
}
|
||||
} catch (ex) {
|
||||
logger.log("error", "LogicFlat-Error " + ex + " WhiteFilterRule: " + JSON.stringify(theWhiteFilterRule) + " InputData " + JSON.stringify(inputData));
|
||||
|
||||
Reference in New Issue
Block a user