diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DossierTemplateResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DossierTemplateResource.java index 6708e3ee3..fcc2d7012 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DossierTemplateResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DossierTemplateResource.java @@ -96,7 +96,34 @@ public interface DossierTemplateResource { @ResponseStatus(value = HttpStatus.NO_CONTENT) @PostMapping(value = DOSSIER_TEMPLATE_PATH + IMPORT_PATH, consumes = MediaType.MULTIPART_FORM_DATA_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Receives an archive to import", description = "None") - @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "Archive have successfully imported"), @ApiResponse(responseCode = "400", description = "Validation failed during import"), @ApiResponse(responseCode = "404", description = "The dossier template to update does not exist")}) + @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "Archive have successfully imported"), @ApiResponse(responseCode = "400", description = "Import process stuck in one of the steps:" + + "0 - Reading the archive content\n" + + "\n" + + "1 - store information about the dossier template\n" + + "\n" + + "2 - store the colors\n" + + "\n" + + "3 - store the watermarks\n" + + "\n" + + "4 - store the dossier status\n" + + "\n" + + "5 - store the dossier attributes\n" + + "\n" + + "6 - store the file attributes\n" + + "\n" + + "7 - store the report templates\n" + + "\n" + + "8 - store the legal basis\n" + + "\n" + + "9 - store the file attribute configuration\n" + + "\n" + + "10 - store the component definitions\n" + + "\n" + + "11 - store the component mappings\n" + + "\n" + + "12 - store the types and entities\n" + + "\n" + + "13 - store the rules and component rules"), @ApiResponse(responseCode = "404", description = "The dossier template to update does not exist")}) DossierTemplateModel importDossierTemplate(@Schema(type = "string", format = "binary", name = "file") @RequestPart(name = "file") MultipartFile file, @RequestParam(value = DOSSIER_TEMPLATE_ID, required = false) String dossierTemplateId, @RequestParam(value = "updateExistingDossierTemplate", required = false, defaultValue = "false") boolean updateExistingDossierTemplate); 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 a34123c9a..449c82850 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 @@ -101,7 +101,12 @@ public class DossierTemplateImportService { public String importDossierTemplate(ImportDossierTemplateRequest request) { - ImportTemplateResult archiveResult = readDossierTemplateImportArchive(request); + ImportTemplateResult archiveResult; + try { + archiveResult = readDossierTemplateImportArchive(request); + } catch (Exception e) { + throw new BadRequestException("The import process failed in step: 0 - while reading the archive content with error: " + e.getMessage()); + } return importDossierTemplate(archiveResult).getDossierTemplateId(); } @@ -121,11 +126,13 @@ public class DossierTemplateImportService { return dossierTemplateArchiveReader.buildResult(); } + @Observed(name = "DossierTemplateImportService", contextualName = "import-template") public TemplateImportInfo importDossierTemplate(ImportTemplateResult request) { long start = System.currentTimeMillis(); String dossierTemplateId; + int importStep = 1; var dossierTemplateMeta = request.getDossierTemplate(); TemplateImportInfo templateImportInfo = TemplateImportInfo.builder().build(); @@ -136,217 +143,261 @@ public class DossierTemplateImportService { existingDossierTemplate = dossierTemplateOptional.orElse(null); } - if (existingDossierTemplate != null) { - dossierTemplateId = existingDossierTemplate.getId(); + try { - // override the existing dossier template - updateDossierTemplateMeta(existingDossierTemplate, dossierTemplateMeta, request.getUserId()); - dossierTemplateRepository.save(existingDossierTemplate); + if (existingDossierTemplate != null) { + dossierTemplateId = existingDossierTemplate.getId(); - existingDossierTemplate.setDossierTemplateStatus(DossierTemplateStatus.valueOf(dossierTemplatePersistenceService.computeDossierTemplateStatus(existingDossierTemplate) - .name())); + // override the existing dossier template + updateDossierTemplateMeta(existingDossierTemplate, dossierTemplateMeta, request.getUserId()); + dossierTemplateRepository.save(existingDossierTemplate); - // set colors - this.setColors(dossierTemplateId, request.getColors()); + existingDossierTemplate.setDossierTemplateStatus(DossierTemplateStatus.valueOf(dossierTemplatePersistenceService.computeDossierTemplateStatus( + existingDossierTemplate).name())); - // set watermarks - if (CollectionUtils.isNotEmpty(request.getWatermarks())) { - Set toSetWatermarks = request.getWatermarks() - .stream() - .map(WatermarkModel::getName) - .filter(Objects::nonNull) - .collect(Collectors.toSet()); - var currentWatermarkConfigs = watermarkService.getWatermarksForDossierTemplateId(dossierTemplateId); - Set configsToRemove = currentWatermarkConfigs.stream() - .filter(c -> !toSetWatermarks.contains(c.getName())) - .collect(Collectors.toSet()); - var watermarkNameToEntity = currentWatermarkConfigs.stream() - .collect(Collectors.toMap(WatermarkEntity::getName, Function.identity())); + // set colors + importStep = 2; + this.setColors(dossierTemplateId, request.getColors()); - request.getWatermarks() - .forEach(watermark -> { - log.info("watermark to add: " + watermark.getName()); - Long initialId = watermark.getId(); - if (!watermarkNameToEntity.isEmpty() && watermarkNameToEntity.get(watermark.getName()) != null) { + // set watermarks + if (CollectionUtils.isNotEmpty(request.getWatermarks())) { + importStep = 3; + Set toSetWatermarks = request.getWatermarks() + .stream() + .map(WatermarkModel::getName) + .filter(Objects::nonNull) + .collect(Collectors.toSet()); + var currentWatermarkConfigs = watermarkService.getWatermarksForDossierTemplateId(dossierTemplateId); + Set configsToRemove = currentWatermarkConfigs.stream() + .filter(c -> !toSetWatermarks.contains(c.getName())) + .collect(Collectors.toSet()); + var watermarkNameToEntity = currentWatermarkConfigs.stream() + .collect(Collectors.toMap(WatermarkEntity::getName, Function.identity())); - watermark.setId(watermarkNameToEntity.get(watermark.getName()).getId()); - } else { + request.getWatermarks() + .forEach(watermark -> { + log.info("watermark to add: " + watermark.getName()); + Long initialId = watermark.getId(); + if (!watermarkNameToEntity.isEmpty() && watermarkNameToEntity.get(watermark.getName()) != null) { + + watermark.setId(watermarkNameToEntity.get(watermark.getName()).getId()); + } else { + watermark.setId(null); + } + watermark.setDossierTemplateId(dossierTemplateId); + var entity = watermarkService.createOrUpdateWatermark(watermark); + templateImportInfo.getLongMapping().put(initialId, entity.getId()); + }); + configsToRemove.forEach(watermark -> watermarkService.deleteWatermark(watermark.getId())); + } + + // dossier status + importStep = 4; + if (CollectionUtils.isNotEmpty(request.getDossierStatusInfos())) { + this.updateDossierStates(request, dossierTemplateId); + } else { // no states to add, delete current states + List currentStates = dossierStatusPersistenceService.getAllDossierStatusForTemplate(dossierTemplateId); + currentStates.forEach(state -> dossierStatusPersistenceService.deleteDossierStatus(state.getId(), null)); + } + + // update dossier attributes + importStep = 5; + if (CollectionUtils.isNotEmpty(request.getDossierAttributesConfigs())) { + this.updateDossierAttributes(request, dossierTemplateId, templateImportInfo); + } else { // no dossier attributes to add, but delete existing ones + var currentConfigs = dossierAttributeConfigPersistenceService.getDossierAttributes(dossierTemplateId); + currentConfigs.forEach(da -> dossierAttributeConfigPersistenceService.deleteDossierAttribute(da.getId())); + } + + //update file attributes + importStep = 6; + if (CollectionUtils.isNotEmpty(request.getFileAttributesConfigs())) { + this.updateFileAttributes(request, dossierTemplateId, templateImportInfo); + } else { // no file attributes to add, but delete existing + var currentConfigs = fileAttributeConfigPersistenceService.getFileAttributes(dossierTemplateId); + currentConfigs.forEach(fa -> fileAttributeConfigPersistenceService.deleteFileAttribute(fa.getId())); + } + + //set report templates + importStep = 7; + var existingReports = reportTemplatePersistenceService.findByDossierTemplateId(dossierTemplateId); + + List reportsUpdated = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(request.getReportTemplateUploadRequests())) { + request.getReportTemplateUploadRequests() + .forEach(reportRequest -> { + reportRequest.setDossierTemplateId(dossierTemplateId); + var report = reportTemplateService.uploadTemplate(reportRequest); + reportsUpdated.add(report.getTemplateId()); + }); + } + + // delete the reports that were not in the import + existingReports.forEach(r -> { + String storageId = r.getStorageId(); + if (!reportsUpdated.contains(r.getTemplateId())) { + storageService.deleteObject(TenantContext.getTenantId(), storageId); + reportTemplatePersistenceService.delete(r.getTemplateId()); + } + }); + + // set legal basis + importStep = 8; + if (CollectionUtils.isNotEmpty(request.getLegalBases())) { + legalBasisMappingPersistenceService.setLegalBasisMapping(dossierTemplateId, request.getLegalBases()); + } else { // delete existing + legalBasisMappingPersistenceService.deleteLegalBasis(dossierTemplateId); + } + + // file attribute general configuration + if (request.getFileAttributesGeneralConfiguration() != null) { + importStep = 9; + fileAttributeConfigPersistenceService.setFileAttributesGeneralConfig(dossierTemplateId, + convert(request.getFileAttributesGeneralConfiguration(), + FileAttributesGeneralConfigurationEntity.class)); + } + + // component definitions + importStep = 10; + if (CollectionUtils.isNotEmpty(request.getComponentDefinitions())) { + this.updateComponents(request, dossierTemplateId); + } else { // no components to add, but remove existing ones + List currentComponents = componentDefinitionPersistenceService.findComponentsByDossierTemplateId(dossierTemplateId); + this.deleteComponents(currentComponents); + } + + //set component mappings + importStep = 11; + setComponentMappings(dossierTemplateId, request.getComponentMappings()); + + importStep = 12; + entityTypeImportService.updateTypes(dossierTemplateId, null, request.getEntityTypeImportModel()); + + } else { + + // creates new dossier template + if (StringUtils.isEmpty(dossierTemplateMeta.getName())) { + throw new ConflictException("DossierTemplate name must be set"); + } + dossierTemplateMeta.setId(""); + this.validateDossierTemplateName(dossierTemplateMeta); + DossierTemplateEntity dossierTemplateEntity = new DossierTemplateEntity(); + + // order is important + BeanUtils.copyProperties(dossierTemplateMeta, dossierTemplateEntity); + dossierTemplateEntity.setId(UUID.randomUUID().toString()); + dossierTemplateEntity.setDateAdded(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); + dossierTemplateEntity.setCreatedBy(request.getUserId()); + + var loadedDossierTemplate = dossierTemplateRepository.save(dossierTemplateEntity); + loadedDossierTemplate.setDossierTemplateStatus(dossierTemplatePersistenceService.computeDossierTemplateStatus(loadedDossierTemplate)); + + dossierTemplateId = loadedDossierTemplate.getId(); + + // set colors + importStep = 2; + this.setColors(dossierTemplateId, request.getColors()); + + // set watermarks + if (CollectionUtils.isNotEmpty(request.getWatermarks())) { + importStep = 3; + request.getWatermarks() + .forEach(watermark -> { + Long initialId = watermark.getId(); + watermark.setDossierTemplateId(dossierTemplateId); watermark.setId(null); - } - watermark.setDossierTemplateId(dossierTemplateId); - var entity = watermarkService.createOrUpdateWatermark(watermark); - templateImportInfo.getLongMapping().put(initialId, entity.getId()); - }); - configsToRemove.forEach(watermark -> watermarkService.deleteWatermark(watermark.getId())); - } - - // dossier status - if (CollectionUtils.isNotEmpty(request.getDossierStatusInfos())) { - this.updateDossierStates(request, dossierTemplateId); - } else { // no states to add, delete current states - List currentStates = dossierStatusPersistenceService.getAllDossierStatusForTemplate(dossierTemplateId); - currentStates.forEach(state -> dossierStatusPersistenceService.deleteDossierStatus(state.getId(), null)); - } - - // update dossier attributes - if (CollectionUtils.isNotEmpty(request.getDossierAttributesConfigs())) { - this.updateDossierAttributes(request, dossierTemplateId, templateImportInfo); - } else { // no dossier attributes to add, but delete existing ones - var currentConfigs = dossierAttributeConfigPersistenceService.getDossierAttributes(dossierTemplateId); - currentConfigs.forEach(da -> dossierAttributeConfigPersistenceService.deleteDossierAttribute(da.getId())); - } - - //update file attributes - if (CollectionUtils.isNotEmpty(request.getFileAttributesConfigs())) { - this.updateFileAttributes(request, dossierTemplateId, templateImportInfo); - } else { // no file attributes to add, but delete existing - var currentConfigs = fileAttributeConfigPersistenceService.getFileAttributes(dossierTemplateId); - currentConfigs.forEach(fa -> fileAttributeConfigPersistenceService.deleteFileAttribute(fa.getId())); - } - - entityTypeImportService.updateTypes(dossierTemplateId, null, request.getEntityTypeImportModel()); - - if (CollectionUtils.isNotEmpty(request.getComponentDefinitions())) { - this.updateComponents(request, dossierTemplateId); - } else { // no components to add, but remove existing ones - List currentComponents = componentDefinitionPersistenceService.findComponentsByDossierTemplateId(dossierTemplateId); - this.deleteComponents(currentComponents); - } - - //set report templates - var existingReports = reportTemplatePersistenceService.findByDossierTemplateId(dossierTemplateId); - - List reportsUpdated = new ArrayList<>(); - if (CollectionUtils.isNotEmpty(request.getReportTemplateUploadRequests())) { - request.getReportTemplateUploadRequests() - .forEach(reportRequest -> { - reportRequest.setDossierTemplateId(dossierTemplateId); - var report = reportTemplateService.uploadTemplate(reportRequest); - reportsUpdated.add(report.getTemplateId()); - }); - } - - // delete the reports that were not in the import - existingReports.forEach(r -> { - String storageId = r.getStorageId(); - if (!reportsUpdated.contains(r.getTemplateId())) { - storageService.deleteObject(TenantContext.getTenantId(), storageId); - reportTemplatePersistenceService.delete(r.getTemplateId()); + var en = watermarkService.createOrUpdateWatermark(watermark); + templateImportInfo.getLongMapping().put(initialId, en.getId()); + }); } - }); - // set legal basis - if (CollectionUtils.isNotEmpty(request.getLegalBases())) { - legalBasisMappingPersistenceService.setLegalBasisMapping(dossierTemplateId, request.getLegalBases()); - } else { // delete existing - legalBasisMappingPersistenceService.deleteLegalBasis(dossierTemplateId); - } - - } else { - // creates new dossier template - if (StringUtils.isEmpty(dossierTemplateMeta.getName())) { - throw new ConflictException("DossierTemplate name must be set"); - } - dossierTemplateMeta.setId(""); - this.validateDossierTemplateName(dossierTemplateMeta); - DossierTemplateEntity dossierTemplateEntity = new DossierTemplateEntity(); - - // order is important - BeanUtils.copyProperties(dossierTemplateMeta, dossierTemplateEntity); - dossierTemplateEntity.setId(UUID.randomUUID().toString()); - dossierTemplateEntity.setDateAdded(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); - dossierTemplateEntity.setCreatedBy(request.getUserId()); - //set rules - - var loadedDossierTemplate = dossierTemplateRepository.save(dossierTemplateEntity); - loadedDossierTemplate.setDossierTemplateStatus(dossierTemplatePersistenceService.computeDossierTemplateStatus(loadedDossierTemplate)); - - dossierTemplateId = loadedDossierTemplate.getId(); - // set colors - this.setColors(dossierTemplateId, request.getColors()); - - // set watermarks - if (CollectionUtils.isNotEmpty(request.getWatermarks())) { - request.getWatermarks() - .forEach(watermark -> { - Long initialId = watermark.getId(); - watermark.setDossierTemplateId(dossierTemplateId); - watermark.setId(null); - var en = watermarkService.createOrUpdateWatermark(watermark); - templateImportInfo.getLongMapping().put(initialId, en.getId()); - }); - } - - // dossier status - if (CollectionUtils.isNotEmpty(request.getDossierStatusInfos())) { - request.getDossierStatusInfos() - .forEach(state -> { - state.setId(null); - this.updateDossierStatus(dossierTemplateId, state); - }); - } - - //set dossier attributes - if (CollectionUtils.isNotEmpty(request.getDossierAttributesConfigs())) { - request.getDossierAttributesConfigs() - .forEach(da -> { - String initialId = da.getId(); - da.setId(null); // in order to create a new dossier attribute - var e = dossierAttributeConfigPersistenceService.addOrUpdateDossierAttribute(dossierTemplateId, convert(da, DossierAttributeConfigEntity.class)); - templateImportInfo.getIdMapping().put(initialId, e.getId()); - }); - } - - //set file attributes - if (CollectionUtils.isNotEmpty(request.getFileAttributesConfigs())) { - request.getFileAttributesConfigs() - .forEach(fa -> { - String initialId = fa.getId(); - fa.setId(null); // in order to force creation of new file attribute - var e = fileAttributeConfigPersistenceService.addOrUpdateFileAttribute(dossierTemplateId, convert(fa, FileAttributeConfigEntity.class)); - templateImportInfo.getIdMapping().put(initialId, e.getId()); - }); - } - - //set types - entityTypeImportService.importEntityTypes(dossierTemplateId, null, request.getEntityTypeImportModel()); - - // set components - if (CollectionUtils.isNotEmpty(request.getComponentDefinitions())) { - for (ComponentDefinition componentDefinition : request.getComponentDefinitions()) { - ComponentDefinitionAddRequest componentDefinitionAddRequest = ComponentDefinitionAddRequest.builder() - .displayName(componentDefinition.getDisplayName()) - .description(componentDefinition.getDescription()) - .technicalName(componentDefinition.getTechnicalName()) - .build(); - componentDefinitionPersistenceService.insert(componentDefinitionAddRequest, componentDefinition.getRank(), dossierTemplateId); + // dossier status + if (CollectionUtils.isNotEmpty(request.getDossierStatusInfos())) { + importStep = 4; + request.getDossierStatusInfos() + .forEach(state -> { + state.setId(null); + this.updateDossierStatus(dossierTemplateId, state); + }); } + + //set dossier attributes + if (CollectionUtils.isNotEmpty(request.getDossierAttributesConfigs())) { + importStep = 5; + request.getDossierAttributesConfigs() + .forEach(da -> { + String initialId = da.getId(); + da.setId(null); // in order to create a new dossier attribute + var e = dossierAttributeConfigPersistenceService.addOrUpdateDossierAttribute(dossierTemplateId, convert(da, DossierAttributeConfigEntity.class)); + templateImportInfo.getIdMapping().put(initialId, e.getId()); + }); + } + + //set file attributes + if (CollectionUtils.isNotEmpty(request.getFileAttributesConfigs())) { + importStep = 6; + request.getFileAttributesConfigs() + .forEach(fa -> { + String initialId = fa.getId(); + fa.setId(null); // in order to force creation of new file attribute + var e = fileAttributeConfigPersistenceService.addOrUpdateFileAttribute(dossierTemplateId, convert(fa, FileAttributeConfigEntity.class)); + templateImportInfo.getIdMapping().put(initialId, e.getId()); + }); + } + + //set report templates + if (CollectionUtils.isNotEmpty(request.getReportTemplateUploadRequests())) { + importStep = 7; + request.getReportTemplateUploadRequests() + .forEach(reportRequest -> { + reportRequest.setDossierTemplateId(dossierTemplateId); + reportTemplateService.uploadTemplate(reportRequest); + }); + } + // set legal basis + if (CollectionUtils.isNotEmpty(request.getLegalBases())) { + importStep = 8; + legalBasisMappingPersistenceService.setLegalBasisMapping(dossierTemplateId, request.getLegalBases()); + } + + // file attribute general configuration + if (request.getFileAttributesGeneralConfiguration() != null) { + importStep = 9; + fileAttributeConfigPersistenceService.setFileAttributesGeneralConfig(dossierTemplateId, + convert(request.getFileAttributesGeneralConfiguration(), + FileAttributesGeneralConfigurationEntity.class)); + } + + // set components + if (CollectionUtils.isNotEmpty(request.getComponentDefinitions())) { + importStep = 10; + for (ComponentDefinition componentDefinition : request.getComponentDefinitions()) { + ComponentDefinitionAddRequest componentDefinitionAddRequest = ComponentDefinitionAddRequest.builder() + .displayName(componentDefinition.getDisplayName()) + .description(componentDefinition.getDescription()) + .technicalName(componentDefinition.getTechnicalName()) + .build(); + componentDefinitionPersistenceService.insert(componentDefinitionAddRequest, componentDefinition.getRank(), dossierTemplateId); + } + } + + //set component mappings + importStep = 11; + setComponentMappings(dossierTemplateId, request.getComponentMappings()); + + //set types + importStep = 12; + entityTypeImportService.importEntityTypes(dossierTemplateId, null, request.getEntityTypeImportModel()); + } - //set report templates - if (CollectionUtils.isNotEmpty(request.getReportTemplateUploadRequests())) { - request.getReportTemplateUploadRequests() - .forEach(reportRequest -> { - reportRequest.setDossierTemplateId(dossierTemplateId); - reportTemplateService.uploadTemplate(reportRequest); - }); - } - // set legal basis - if (CollectionUtils.isNotEmpty(request.getLegalBases())) { - legalBasisMappingPersistenceService.setLegalBasisMapping(dossierTemplateId, request.getLegalBases()); - } + importStep = 13; + setRulesWhenCompiled(request, dossierTemplateId); + + } catch (Exception e) { + throw new BadRequestException("The import process failed in step: " + importStep + " with error: " + e.getMessage()); } - // file attribute general configuration - if (request.getFileAttributesGeneralConfiguration() != null) { - fileAttributeConfigPersistenceService.setFileAttributesGeneralConfig(dossierTemplateId, - convert(request.getFileAttributesGeneralConfiguration(), - FileAttributesGeneralConfigurationEntity.class)); - } - - setRulesWhenCompiled(request, dossierTemplateId); - setComponentMappings(dossierTemplateId, request.getComponentMappings()); - templateImportInfo.setDossierTemplateId(dossierTemplateId); long elapsedTime = System.currentTimeMillis() - start; @@ -512,7 +563,7 @@ public class DossierTemplateImportService { request.getFileAttributesConfigs() .forEach(fa -> { String initialId = fa.getId(); - //check by id or by dossierTemplate and label and set the corresponding Id if found + //check by id or by dossierTemplate and label and set the corresponding id if found fa.setId(fileAttributeConfigPersistenceService.getFileAttributeByIdOrName(dossierTemplateId, fa.getId(), fa.getLabel())); FileAttributeConfigEntity fileAttributeAdded = fileAttributeConfigPersistenceService.addOrUpdateFileAttribute(dossierTemplateId, convert(fa, FileAttributeConfigEntity.class)); @@ -542,9 +593,7 @@ public class DossierTemplateImportService { private void deleteComponents(List componentDefinitionEntities) { - componentDefinitionEntities.forEach(componentDefinition -> { - componentDefinitionPersistenceService.delete(componentDefinition.getId()); - }); + componentDefinitionEntities.forEach(componentDefinition -> componentDefinitionPersistenceService.delete(componentDefinition.getId())); } 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 844c4d50b..dace0b740 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 @@ -153,6 +153,7 @@ public class DossierTemplateImportTest extends AbstractPersistenceServerServiceT var e = assertThrows(BadRequestException.class, () -> dossierTemplateManagementService.importDossierTemplate(request)); + assertThat(e.getMessage().contains("The import process failed in step: 13")).isTrue(); var reportTemplates = reportTemplateRepository.findAll(); assertThat(reportTemplates).hasSize(2); var alldossierTemplates = dossierTemplateManagementService.getAllDossierTemplates();