Merge branch 'DM-285' into 'master'
DM-285: validate rules on dossier template import Closes DM-285 See merge request redactmanager/persistence-service!128
This commit is contained in:
commit
707631f2c7
@ -73,6 +73,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemp
|
|||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.legalbasis.LegalBasis;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.legalbasis.LegalBasis;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.DictionaryEntryType;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.DictionaryEntryType;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.Type;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.Type;
|
||||||
|
import com.iqser.red.service.redaction.v1.model.DroolsSyntaxValidation;
|
||||||
import com.iqser.red.storage.commons.service.StorageService;
|
import com.iqser.red.storage.commons.service.StorageService;
|
||||||
import com.knecon.fforesight.tenantcommons.TenantContext;
|
import com.knecon.fforesight.tenantcommons.TenantContext;
|
||||||
|
|
||||||
@ -101,6 +102,7 @@ public class DossierTemplateImportService {
|
|||||||
private final DictionaryManagementService dictionaryManagementService;
|
private final DictionaryManagementService dictionaryManagementService;
|
||||||
private final EntryPersistenceService entryPersistenceService;
|
private final EntryPersistenceService entryPersistenceService;
|
||||||
private final ReportTemplatePersistenceService reportTemplatePersistenceService;
|
private final ReportTemplatePersistenceService reportTemplatePersistenceService;
|
||||||
|
private final RulesValidationService rulesValidationService;
|
||||||
private final StorageService storageService;
|
private final StorageService storageService;
|
||||||
private final ObjectMapper objectMapper = new ObjectMapper();
|
private final ObjectMapper objectMapper = new ObjectMapper();
|
||||||
private final FileManagementServiceSettings settings;
|
private final FileManagementServiceSettings settings;
|
||||||
@ -304,10 +306,7 @@ public class DossierTemplateImportService {
|
|||||||
dossierTemplateRepository.save(existingDossierTemplate);
|
dossierTemplateRepository.save(existingDossierTemplate);
|
||||||
|
|
||||||
// set rules
|
// set rules
|
||||||
rulesPersistenceService.setRules(request.getRuleSet(), dossierTemplateId, RuleFileType.ENTITY);
|
setRulesWhenCompiled(request, dossierTemplateId);
|
||||||
if (request.getComponentRuleSet() != null) {
|
|
||||||
rulesPersistenceService.setRules(request.getComponentRuleSet(), dossierTemplateId, RuleFileType.COMPONENT);
|
|
||||||
}
|
|
||||||
|
|
||||||
existingDossierTemplate.setDossierTemplateStatus(DossierTemplateStatus.valueOf(dossierTemplatePersistenceService.computeDossierTemplateStatus(existingDossierTemplate)
|
existingDossierTemplate.setDossierTemplateStatus(DossierTemplateStatus.valueOf(dossierTemplatePersistenceService.computeDossierTemplateStatus(existingDossierTemplate)
|
||||||
.name()));
|
.name()));
|
||||||
@ -410,10 +409,7 @@ public class DossierTemplateImportService {
|
|||||||
dossierTemplateEntity.setDateAdded(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS));
|
dossierTemplateEntity.setDateAdded(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS));
|
||||||
dossierTemplateEntity.setCreatedBy(request.getUserId());
|
dossierTemplateEntity.setCreatedBy(request.getUserId());
|
||||||
//set rules
|
//set rules
|
||||||
rulesPersistenceService.setRules(request.getRuleSet(), dossierTemplateEntity.getId(), RuleFileType.ENTITY);
|
setRulesWhenCompiled(request, dossierTemplateEntity.getId());
|
||||||
if (request.getComponentRuleSet() != null) {
|
|
||||||
rulesPersistenceService.setRules(request.getComponentRuleSet(), dossierTemplateEntity.getId(), RuleFileType.COMPONENT);
|
|
||||||
}
|
|
||||||
|
|
||||||
var loadedDossierTemplate = dossierTemplateRepository.save(dossierTemplateEntity);
|
var loadedDossierTemplate = dossierTemplateRepository.save(dossierTemplateEntity);
|
||||||
loadedDossierTemplate.setDossierTemplateStatus(dossierTemplatePersistenceService.computeDossierTemplateStatus(loadedDossierTemplate));
|
loadedDossierTemplate.setDossierTemplateStatus(dossierTemplatePersistenceService.computeDossierTemplateStatus(loadedDossierTemplate));
|
||||||
@ -492,6 +488,25 @@ public class DossierTemplateImportService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void setRulesWhenCompiled(ImportTemplateResult request, String dossierTemplateEntity) {
|
||||||
|
|
||||||
|
DroolsSyntaxValidation droolsSyntaxValidation = rulesValidationService.validateRules(RuleFileType.ENTITY, request.getRuleSet());
|
||||||
|
if (!droolsSyntaxValidation.isCompiled()) {
|
||||||
|
droolsSyntaxValidation.getDroolsSyntaxErrorMessages().forEach(errorMessage -> log.error(errorMessage.getMessage()));
|
||||||
|
throw new BadRequestException("The entity rules do not compile!");
|
||||||
|
}
|
||||||
|
rulesPersistenceService.setRules(request.getRuleSet(), dossierTemplateEntity, RuleFileType.ENTITY);
|
||||||
|
if (request.getComponentRuleSet() != null) {
|
||||||
|
DroolsSyntaxValidation componentDroolsSyntaxValidation = rulesValidationService.validateRules(RuleFileType.COMPONENT, request.getComponentRuleSet());
|
||||||
|
if (!componentDroolsSyntaxValidation.isCompiled()) {
|
||||||
|
componentDroolsSyntaxValidation.getDroolsSyntaxErrorMessages().forEach(errorMessage -> log.error(errorMessage.getMessage()));
|
||||||
|
throw new BadRequestException("The component rules do not compile!");
|
||||||
|
}
|
||||||
|
rulesPersistenceService.setRules(request.getComponentRuleSet(), dossierTemplateEntity, RuleFileType.COMPONENT);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private List<String> readEntries(byte[] bytes) {
|
private List<String> readEntries(byte[] bytes) {
|
||||||
|
|
||||||
ByteArrayInputStream bInput = new ByteArrayInputStream(bytes);
|
ByteArrayInputStream bInput = new ByteArrayInputStream(bytes);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user