Lots of re-structuring and handling of different data types

This commit is contained in:
Joe
2019-01-18 15:29:21 -06:00
parent e1007f8ed9
commit b0d5fca2a4
8 changed files with 51 additions and 27 deletions

View File

@@ -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));