diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DossierTemplateController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DossierTemplateController.java index 617a292ec..1236803bd 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DossierTemplateController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DossierTemplateController.java @@ -24,13 +24,15 @@ import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import com.iqser.red.service.persistence.management.v1.processor.acl.custom.dossier.DossierACLService; +import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.ExportDownloadRequest; +import com.iqser.red.service.persistence.management.v1.processor.dataexchange.service.DossierTemplateExportService; +import com.iqser.red.service.persistence.management.v1.processor.dataexchange.service.DossierTemplateImportService; import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; import com.iqser.red.service.persistence.management.v1.processor.exception.ConflictException; import com.iqser.red.service.persistence.management.v1.processor.service.DossierManagementService; import com.iqser.red.service.persistence.management.v1.processor.service.DossierTemplateManagementService; import com.iqser.red.service.persistence.management.v1.processor.service.DossierTemplateStatsService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService; -import com.iqser.red.service.persistence.management.v1.processor.service.users.UserService; import com.iqser.red.service.persistence.service.v1.api.external.resource.DossierTemplateResource; import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierTemplateModel; @@ -42,7 +44,6 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemp import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.DossierTemplateStats; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.DossierTemplateStatus; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.Dossier; -import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.ExportDownloadRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.importexport.ImportDossierTemplateRequest; import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; @@ -61,7 +62,8 @@ public class DossierTemplateController implements DossierTemplateResource { private final AuditPersistenceService auditPersistenceService; private final DossierManagementService dossierManagementService; private final DossierACLService dossierACLService; - private final UserService userService; + private final DossierTemplateImportService dossierTemplateImportService; + private final DossierTemplateExportService dossierTemplateExportService; @Override @@ -224,15 +226,16 @@ public class DossierTemplateController implements DossierTemplateResource { try { ExportDownloadRequest request = ExportDownloadRequest.builder().dossierTemplateId(dossierTemplateId).userId(KeycloakSecurity.getUserId()).build(); - var response = dossierTemplateManagementService.prepareExportDownload(request); + dossierTemplateManagementService.validateDossierTemplateForDuplicateRanks(request.getDossierTemplateId()); + String storageId = dossierTemplateExportService.prepareExportDownload(request); auditPersistenceService.audit(AuditRequest.builder() .userId(KeycloakSecurity.getUserId()) - .objectId(response.getValue()) + .objectId(storageId) .category(AuditCategory.DOWNLOAD.name()) .message("Export Download was prepared") .details(Map.of("dossierTemplateId", request.getDossierTemplateId())) .build()); - return new DownloadResponse(response.getValue()); + return new DownloadResponse(storageId); } catch (FeignException e) { throw processFeignException(e); } @@ -265,15 +268,15 @@ public class DossierTemplateController implements DossierTemplateResource { .userId(KeycloakSecurity.getUserId()) .archive(file.getBytes()) .build(); - DossierTemplate loadedDossierTemplate = dossierTemplateManagementService.importDossierTemplate(request); + String importedDossierTemplateId = dossierTemplateImportService.importDossierTemplate(request); auditPersistenceService.audit(AuditRequest.builder() .userId(KeycloakSecurity.getUserId()) - .objectId(loadedDossierTemplate.getId()) + .objectId(importedDossierTemplateId) .category(AuditCategory.DOSSIER_TEMPLATE.name()) .message("Dossier template was imported") - .details(Map.of("dossierTemplateId", loadedDossierTemplate.getId())) + .details(Map.of("dossierTemplateId", importedDossierTemplateId)) .build()); - return convert(loadedDossierTemplate); + return convert(dossierTemplateManagementService.getDossierTemplate(importedDossierTemplateId)); } catch (IOException e) { throw new BadRequestException(e.getMessage(), e); } catch (FeignException e) { diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/DossierTemplateExportService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/DossierTemplateExportService.java index 632d301ed..719ae4c91 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/DossierTemplateExportService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/DossierTemplateExportService.java @@ -100,18 +100,17 @@ public class DossierTemplateExportService { RabbitTemplate rabbitTemplate; - public JSONPrimitive prepareExportDownload(ExportDownloadRequest request) { + public String prepareExportDownload(ExportDownloadRequest request) { var mimeType = "application/zip"; - dossierTemplatePersistenceService.validateDossierTemplateForDuplicateRanks(request.getDossierTemplateId()); String downloadFilename = request.getDossierTemplateId() + ".zip"; String storageId = StorageIdUtils.getStorageId(request.getUserId(), request.getDossierTemplateId()); downloadStatusPersistenceService.createStatus(request.getUserId(), storageId, downloadFilename, mimeType); addToExportDownloadQueue(ExportDownloadMessage.builder().dossierTemplateId(request.getDossierTemplateId()).storageId(storageId).userId(request.getUserId()).build(), 1); - return new JSONPrimitive<>(storageId); + return storageId; } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/DossierTemplateImportService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/DossierTemplateImportService.java index c1e672637..5857ceb1d 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/DossierTemplateImportService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/DossierTemplateImportService.java @@ -39,6 +39,7 @@ import com.iqser.red.service.persistence.management.v1.processor.exception.BadRe import com.iqser.red.service.persistence.management.v1.processor.exception.ConflictException; import com.iqser.red.service.persistence.management.v1.processor.service.ColorsService; import com.iqser.red.service.persistence.management.v1.processor.service.ComponentMappingService; +import com.iqser.red.service.persistence.management.v1.processor.service.DossierTemplateManagementService; import com.iqser.red.service.persistence.management.v1.processor.service.ReportTemplateService; import com.iqser.red.service.persistence.management.v1.processor.service.RulesValidationService; import com.iqser.red.service.persistence.management.v1.processor.service.WatermarkService; @@ -88,6 +89,7 @@ public class DossierTemplateImportService { LegalBasisMappingPersistenceService legalBasisMappingPersistenceService; RulesPersistenceService rulesPersistenceService; DossierTemplatePersistenceService dossierTemplatePersistenceService; + DossierTemplateManagementService dossierTemplateManagementService; DossierAttributeConfigPersistenceService dossierAttributeConfigPersistenceService; FileAttributeConfigPersistenceService fileAttributeConfigPersistenceService; ColorsService colorsService; @@ -158,7 +160,7 @@ public class DossierTemplateImportService { } catch (Exception e) { log.error("Error with message: {} occurred during import, undo import", e.getMessage(), e); - dossierTemplatePersistenceService.deleteDossierTemplate(templateImportInfo.getDossierTemplateId()); + dossierTemplateManagementService.deleteDossierTemplateCompletely(templateImportInfo.getDossierTemplateId()); throw e; } @@ -185,8 +187,8 @@ public class DossierTemplateImportService { var loadedDossierTemplate = dossierTemplateRepository.save(dossierTemplateEntity); loadedDossierTemplate.setDossierTemplateStatus(dossierTemplatePersistenceService.computeDossierTemplateStatus(loadedDossierTemplate)); - dossierTemplateId = loadedDossierTemplate.getId(); + templateImportInfo.setDossierTemplateId(dossierTemplateId); // set colors this.updateColors(dossierTemplateId, request.getColors()); @@ -258,7 +260,7 @@ public class DossierTemplateImportService { setRulesWhenCompiled(request, dossierTemplateId); setComponentMappings(dossierTemplateId, request.getComponentMappings()); setFileAttributeGeneralConfig(request, dossierTemplateId); - templateImportInfo.setDossierTemplateId(dossierTemplateId); + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/FileExchangeImportService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/FileExchangeImportService.java index e2b7a2b8a..492160597 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/FileExchangeImportService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/FileExchangeImportService.java @@ -10,7 +10,6 @@ import com.iqser.red.service.persistence.management.v1.processor.dataexchange.mo import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.TemplateImportInfo; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.ReportTemplateEntity; import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; -import com.iqser.red.service.persistence.management.v1.processor.service.DossierService; import com.iqser.red.service.persistence.management.v1.processor.service.DossierTemplateManagementService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.ReportTemplatePersistenceService; import com.iqser.red.service.persistence.service.v1.api.shared.model.ImportResponse; @@ -77,7 +76,7 @@ public class FileExchangeImportService { } return templateImportInfo.getDossierTemplateId(); } catch (Exception e) { - dossierTemplateManagementService.deleteDossierTemplate(templateImportInfo.getDossierTemplateId()); + dossierTemplateManagementService.deleteDossierTemplateCompletely(templateImportInfo.getDossierTemplateId()); throw e; } } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DictionaryManagementService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DictionaryManagementService.java index 3897b1667..b762a024b 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DictionaryManagementService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DictionaryManagementService.java @@ -33,6 +33,7 @@ import com.iqser.red.service.persistence.management.v1.processor.utils.TypeMappe import com.iqser.red.service.persistence.management.v1.processor.validation.DictionaryValidator; 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.TypeRankSummary; import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter; import jakarta.transaction.Transactional; @@ -441,4 +442,10 @@ public class DictionaryManagementService { } + + public List getTypeRankSummaryList(String dossierTemplateId) { + + return dictionaryPersistenceService.getTypeRankSummaryList(dossierTemplateId); + } + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateCloneService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateCloneService.java index 6d56e875e..11849c511 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateCloneService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateCloneService.java @@ -92,7 +92,6 @@ public class DossierTemplateCloneService { } DossierTemplateEntity clonedDossierTemplate = DossierTemplateEntity.copyDossierTemplateEntityWithoutChildEntities(dossierTemplate.get()); - dossierTemplatePersistenceService.validateDossierTemplateForDuplicateRanks(dossierTemplateId); OffsetDateTime now = OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS); clonedDossierTemplate.setId(UUID.randomUUID().toString()); clonedDossierTemplate.setName(cloneDossierTemplateRequest.getName()); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateManagementService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateManagementService.java index d69731ef9..32572c503 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateManagementService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateManagementService.java @@ -3,18 +3,15 @@ package com.iqser.red.service.persistence.management.v1.processor.service; import static com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter.convert; import java.util.List; +import java.util.stream.Collectors; import org.springframework.stereotype.Service; -import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.ExportDownloadRequest; -import com.iqser.red.service.persistence.management.v1.processor.dataexchange.service.DossierTemplateExportService; -import com.iqser.red.service.persistence.management.v1.processor.dataexchange.service.DossierTemplateImportService; +import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierTemplatePersistenceService; -import com.iqser.red.service.persistence.service.v1.api.shared.model.common.JSONPrimitive; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.CloneDossierTemplateRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.CreateOrUpdateDossierTemplateRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.DossierTemplate; -import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.importexport.ImportDossierTemplateRequest; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -24,11 +21,11 @@ import lombok.extern.slf4j.Slf4j; @RequiredArgsConstructor public class DossierTemplateManagementService { - private final DossierTemplateExportService dossierTemplateExportService; - private final DossierTemplateImportService dossierTemplateImportService; private final DossierTemplatePersistenceService dossierTemplatePersistenceService; private final DossierTemplateCloneService dossierTemplateCloneService; private final DossierDeletionService dossierDeletionService; + private final DictionaryManagementService dictionaryManagementService; + private final ComponentMappingService componentMappingService; public DossierTemplate createOrUpdateDossierTemplate(CreateOrUpdateDossierTemplateRequest dossierTemplate) { @@ -49,8 +46,10 @@ public class DossierTemplateManagementService { } - public void deleteDossierTemplate(String dossierTemplateId) { + public void deleteDossierTemplateCompletely(String dossierTemplateId) { + dictionaryManagementService.deleteByDossierTemplateId(dossierTemplateId); + componentMappingService.deleteByDossierTemplateId(dossierTemplateId); dossierDeletionService.deleteAllDossiersInTemplate(dossierTemplateId); dossierTemplatePersistenceService.deleteDossierTemplate(dossierTemplateId); } @@ -64,20 +63,23 @@ public class DossierTemplateManagementService { public DossierTemplate cloneDossierTemplate(String dossierTemplateId, CloneDossierTemplateRequest cloneDossierTemplateRequest) { + validateDossierTemplateForDuplicateRanks(dossierTemplateId); return convert(dossierTemplateCloneService.cloneDossierTemplate(dossierTemplateId, cloneDossierTemplateRequest), DossierTemplate.class); } - public JSONPrimitive prepareExportDownload(ExportDownloadRequest request) { + public void validateDossierTemplateForDuplicateRanks(String dossierTemplateId) { - return dossierTemplateExportService.prepareExportDownload(request); - } - - - public DossierTemplate importDossierTemplate(ImportDossierTemplateRequest request) { - - String dossierTemplateId = dossierTemplateImportService.importDossierTemplate(request); - return convert(dossierTemplatePersistenceService.getDossierTemplate(dossierTemplateId), DossierTemplate.class); + var duplicateRanks = dictionaryManagementService.getTypeRankSummaryList(dossierTemplateId) + .stream() + .filter(t -> t.getTypesCount() > 1) + .toList(); + if (!duplicateRanks.isEmpty()) { + String errorMessage = "Duplicate ranks found in dossier template " + dossierTemplateId + "\n" + duplicateRanks.stream() + .map(t -> String.format(" Rank %d has %d entries", t.getRank(), t.getTypesCount())) + .collect(Collectors.joining("\n")); + throw new BadRequestException(errorMessage); + } } } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/WatermarkService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/WatermarkService.java index a26d48db4..454904e1f 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/WatermarkService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/WatermarkService.java @@ -15,6 +15,7 @@ import com.iqser.red.service.persistence.management.v1.processor.exception.Confl import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierTemplatePersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierRepository; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierTemplateRepository; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.WatermarkRepository; import com.iqser.red.service.persistence.management.v1.processor.utils.ColorUtils; import com.iqser.red.service.persistence.service.v1.api.shared.model.WatermarkModel; @@ -34,7 +35,7 @@ public class WatermarkService { private final static int DEFAULT_OPACITY = 30; private final WatermarkRepository watermarkRepository; private final DossierRepository dossierRepository; - private final DossierTemplatePersistenceService dossierTemplatePersistenceService; + private final DossierTemplateRepository dossierTemplateRepository; @Transactional @@ -69,7 +70,7 @@ public class WatermarkService { validateWatermarkNameIsUnique(watermark.getName(), loadedWatermark.get().getDossierTemplateId(), loadedWatermark.get().getId()); BeanUtils.copyProperties(watermark, loadedWatermark.get(), "dossierTemplateId", "createdBy", "dateAdded", "dateModified"); loadedWatermark.get().setDateModified(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); - var dossierTemplate = dossierTemplatePersistenceService.getDossierTemplate(loadedWatermark.get().getDossierTemplateId()); + var dossierTemplate = dossierTemplateRepository.findById(watermark.getDossierTemplateId()).orElseThrow(() -> new NotFoundException("Dossier Template not found")); loadedWatermark.get().setDossierTemplate(dossierTemplate); return loadedWatermark.get(); } else { // if not found by id -> add it as a new watermark @@ -78,7 +79,7 @@ public class WatermarkService { WatermarkEntity watermarkEntity = new WatermarkEntity(); BeanUtils.copyProperties(watermark, watermarkEntity, "id", "dateAdded", "dateModified"); watermarkEntity.setDateAdded(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); - var dossierTemplate = dossierTemplatePersistenceService.getDossierTemplate(watermark.getDossierTemplateId()); + var dossierTemplate = dossierTemplateRepository.findById(watermark.getDossierTemplateId()).orElseThrow(() -> new NotFoundException("Dossier Template not found")); watermarkEntity.setDossierTemplate(dossierTemplate); return watermarkRepository.save(watermarkEntity); } @@ -88,7 +89,7 @@ public class WatermarkService { WatermarkEntity watermarkEntity = new WatermarkEntity(); BeanUtils.copyProperties(watermark, watermarkEntity, "id", "dateAdded", "dateModified"); watermarkEntity.setDateAdded(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); - var dossierTemplate = dossierTemplatePersistenceService.getDossierTemplate(watermark.getDossierTemplateId()); + var dossierTemplate = dossierTemplateRepository.findById(watermark.getDossierTemplateId()).orElseThrow(() -> new NotFoundException("Dossier Template not found")); watermarkEntity.setDossierTemplate(dossierTemplate); return watermarkRepository.save(watermarkEntity); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierTemplatePersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierTemplatePersistenceService.java index c817f40cb..f87c7960f 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierTemplatePersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierTemplatePersistenceService.java @@ -44,9 +44,6 @@ public class DossierTemplatePersistenceService { final LegalBasisMappingPersistenceService legalBasisMappingPersistenceService; final RulesPersistenceService rulesPersistenceService; final DictionaryPersistenceService dictionaryPersistenceService; - final DictionaryManagementService dictionaryManagementService; - final ComponentMappingService componentMappingService; - final TypeRepository typeRepository; static int MAX_NAME_LENGTH = 255; @@ -236,8 +233,6 @@ public class DossierTemplatePersistenceService { public void deleteDossierTemplate(String dossierTemplateId) { rulesPersistenceService.deleteRulesByDossierTemplateId(dossierTemplateId); - dictionaryManagementService.deleteByDossierTemplateId(dossierTemplateId); - componentMappingService.deleteByDossierTemplateId(dossierTemplateId); dossierTemplateRepository.deleteById(dossierTemplateId); } @@ -249,18 +244,5 @@ public class DossierTemplatePersistenceService { } - public void validateDossierTemplateForDuplicateRanks(String dossierTemplateId) { - - var duplicateRanks = dictionaryPersistenceService.getTypeRankSummaryList(dossierTemplateId) - .stream() - .filter(t -> t.getTypesCount() > 1) - .collect(Collectors.toList()); - if (!duplicateRanks.isEmpty()) { - String errorMessage = "Duplicate ranks found in dossier template " + dossierTemplateId + "\n" + duplicateRanks.stream() - .map(t -> String.format(" Rank %d has %d entries", t.getRank(), t.getTypesCount())) - .collect(Collectors.joining("\n")); - throw new BadRequestException(errorMessage); - } - } } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateImportTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateImportTest.java index 61218d4a7..c23023eaf 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateImportTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateImportTest.java @@ -21,6 +21,7 @@ import org.springframework.mock.web.MockMultipartFile; import com.iqser.red.service.peristence.v1.server.integration.client.DossierTemplateClient; import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest; +import com.iqser.red.service.persistence.management.v1.processor.dataexchange.service.DossierTemplateImportService; import com.iqser.red.service.persistence.management.v1.processor.service.DossierTemplateManagementService; import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierTemplateModel; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.DossierTemplate; @@ -35,7 +36,7 @@ public class DossierTemplateImportTest extends AbstractPersistenceServerServiceT public static final String DOSSIERTEMPLATES_PATH = "files/dossiertemplates/"; @Autowired - private DossierTemplateManagementService dossierTemplateManagementService; + private DossierTemplateImportService dossierTemplateImportService; @Autowired private DossierTemplateClient dossierTemplateClient; @@ -139,7 +140,7 @@ public class DossierTemplateImportTest extends AbstractPersistenceServerServiceT private DossierTemplate testDossierTemplateImport(byte[] archive) { var request = ImportDossierTemplateRequest.builder().archive(archive).updateExistingDossierTemplate(false).userId("system").build(); - DossierTemplate dossierTemplate = dossierTemplateManagementService.importDossierTemplate(request); + DossierTemplate dossierTemplate = d.importDossierTemplate(request); assertThat(dossierTemplate).isNotNull(); assertThat(dossierTemplate.getId()).isNotBlank(); return dossierTemplate; @@ -161,9 +162,9 @@ public class DossierTemplateImportTest extends AbstractPersistenceServerServiceT .userId("system") .dossierTemplateId(dossierTemplate.getId()) .build(); - DossierTemplate reimportedTemplate = dossierTemplateManagementService.importDossierTemplate(request); - assertThat(reimportedTemplate).isNotNull(); - assertThat(reimportedTemplate.getId()).isNotBlank(); + String reimportedTemplateId = dossierTemplateImportService.importDossierTemplate(request); + assertThat(reimportedTemplateId).isNotNull(); + assertThat(reimportedTemplateId).isNotBlank(); }