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.RuleBuilderModel;
import com.iqser.red.service.redaction.v1.model.RuleValidationModel; 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.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.RuleBuilderService;
import com.iqser.red.service.redaction.v1.server.service.drools.DroolsValidationService; import com.iqser.red.service.redaction.v1.server.service.drools.DroolsValidationService;
import com.iqser.red.service.redaction.v1.server.utils.exception.RulesValidationException; import com.iqser.red.service.redaction.v1.server.utils.exception.RulesValidationException;
@ -38,9 +37,9 @@ public class RuleBuilderController implements RuleBuilderResource {
RulesResponse rulesResponse = new RulesResponse(); RulesResponse rulesResponse = new RulesResponse();
String filteredRules = this.ruleBuilderService.cleanRuleFileOfSystemRules(systemRulesSeperationRequest.getRules(), true); String filteredRules = this.ruleBuilderService.cleanRuleFileOfSystemRules(systemRulesSeperationRequest.getRules(), true);
try { try {
droolsValidationService.testRules(new RuleValidationModel("ENTITY", filteredRules)); droolsValidationService.testRules(new RuleValidationModel(RuleFileType.ENTITY.name(), filteredRules));
} catch (Exception e) { } 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); rulesResponse.setRules(filteredRules);
return rulesResponse; return rulesResponse;
@ -49,15 +48,22 @@ public class RuleBuilderController implements RuleBuilderResource {
@Override @Override
public RulesResponse getRuleFileWithSeperatedSystemRules(RulesUpdateRequest rulesUpdateRequest) { public RulesResponse getRuleFileWithSeperatedSystemRules(RulesUpdateRequest rulesUpdateRequest) {
RulesResponse rulesResponse = new RulesResponse(); RulesResponse rulesResponse = new RulesResponse();
String mergedRules = ruleBuilderService.getRuleFileWithSeperatedSystemRules(rulesUpdateRequest.getExistingRules(), rulesUpdateRequest.getUpdatedRules()); String mergedRules = ruleBuilderService.getRuleFileWithSeperatedSystemRules(rulesUpdateRequest.getExistingRules(), rulesUpdateRequest.getUpdatedRules());
try { try {
droolsValidationService.testRules(new RuleValidationModel("ENTITY", mergedRules)); droolsValidationService.testRules(new RuleValidationModel(RuleFileType.ENTITY.name(), mergedRules));
} catch (Exception e) { } 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); rulesResponse.setRules(mergedRules);
return rulesResponse; return rulesResponse;
} }
private enum RuleFileType {
ENTITY,
COMPONENT
}
} }

View File

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