RED-9472: seperation of system rules

This commit is contained in:
yhampe 2024-09-30 12:12:07 +02:00
parent 1ccdcf5844
commit 4978259fc6
2 changed files with 13 additions and 9 deletions

View File

@ -8,7 +8,6 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemp
import com.iqser.red.service.redaction.v1.model.RuleBuilderModel;
import com.iqser.red.service.redaction.v1.model.RuleValidationModel;
import com.iqser.red.service.redaction.v1.resources.RuleBuilderResource;
import com.iqser.red.service.redaction.v1.server.model.drools.RuleType;
import com.iqser.red.service.redaction.v1.server.service.RuleBuilderService;
import com.iqser.red.service.redaction.v1.server.service.drools.DroolsValidationService;
import com.iqser.red.service.redaction.v1.server.utils.exception.RulesValidationException;
@ -38,9 +37,9 @@ public class RuleBuilderController implements RuleBuilderResource {
RulesResponse rulesResponse = new RulesResponse();
String filteredRules = this.ruleBuilderService.cleanRuleFileOfSystemRules(systemRulesSeperationRequest.getRules(), true);
try {
droolsValidationService.testRules(new RuleValidationModel("ENTITY", filteredRules));
droolsValidationService.testRules(new RuleValidationModel(RuleFileType.ENTITY.name(), filteredRules));
} catch (Exception e) {
throw new RulesValidationException("Could not test rules: " + e.getMessage(), e);
throw new RulesValidationException("Error trying to compile the cleaned rule file: " + filteredRules + " with message: {} " + e.getMessage(), e);
}
rulesResponse.setRules(filteredRules);
return rulesResponse;
@ -49,15 +48,22 @@ public class RuleBuilderController implements RuleBuilderResource {
@Override
public RulesResponse getRuleFileWithSeperatedSystemRules(RulesUpdateRequest rulesUpdateRequest) {
RulesResponse rulesResponse = new RulesResponse();
String mergedRules = ruleBuilderService.getRuleFileWithSeperatedSystemRules(rulesUpdateRequest.getExistingRules(), rulesUpdateRequest.getUpdatedRules());
try {
droolsValidationService.testRules(new RuleValidationModel("ENTITY", mergedRules));
droolsValidationService.testRules(new RuleValidationModel(RuleFileType.ENTITY.name(), mergedRules));
} catch (Exception e) {
throw new RulesValidationException("Could not test rules: " + e.getMessage(), e);
throw new RulesValidationException("Error trying to compile the cleaned rule file: " + mergedRules + " with message: {} " + e.getMessage(), e);
}
rulesResponse.setRules(mergedRules);
return rulesResponse;
}
private enum RuleFileType {
ENTITY,
COMPONENT
}
}

View File

@ -41,7 +41,7 @@ public class RuleBuilderService {
}
ruleFileBluePrint.dropQueries();
if (removeImports) {
ruleFileBluePrint.dropQueries();
ruleFileBluePrint.dropImports();
}
log.info("Finished removing system rules for ruleFile");
@ -62,9 +62,7 @@ public class RuleBuilderService {
}
ruleFileBluePrintExisting.setImports(ruleFileBluePrintUpdate.getImports());
ruleFileBluePrintUpdate.getRuleClasses()
.forEach(ruleClass -> {
ruleFileBluePrintExisting.addRuleClass(ruleClass);
});
.forEach(ruleFileBluePrintExisting::addRuleClass);
return RuleFileParser.buildRulesStringFromBluePrint(ruleFileBluePrintExisting);
}