From 7a0bc96c63c3b8a5b8bd092a712d5507b445d24e Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Wed, 29 Sep 2021 16:07:16 +0300 Subject: [PATCH] undlete fix --- .../service/persistence/DossierPersistenceService.java | 4 ++++ .../service/persistence/FileStatusPersistenceService.java | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierPersistenceService.java index 502d37033..be30ef0b9 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierPersistenceService.java @@ -1,6 +1,7 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierEntity; +import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; import com.iqser.red.service.persistence.management.v1.processor.exception.DossierNotFoundException; 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; @@ -106,6 +107,9 @@ public class DossierPersistenceService { @Transactional public void undelete(String dossierId) { dossierRepository.findById(dossierId).ifPresent(dossier -> { + if (dossier.getHardDeletedTime() != null) { + throw new BadRequestException("Cannot undelete a hard-dossier file!"); + } dossier.setStatus(DossierStatus.ACTIVE); dossier.setSoftDeletedTime(null); }); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileStatusPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileStatusPersistenceService.java index 1ad3ec012..c90d562d6 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileStatusPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileStatusPersistenceService.java @@ -2,6 +2,7 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persis import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileAttributeEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity; +import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; 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.FileRepository; @@ -234,6 +235,9 @@ public class FileStatusPersistenceService { public void undelete(String fileId, FileStatus statusBefore) { fileRepository.findById(fileId).ifPresentOrElse((file) -> { + if (file.getHardDeletedTime() != null) { + throw new BadRequestException("Cannot undelete a hard-dossier file!"); + } file.setStatus(statusBefore != null ? statusBefore : FileStatus.UNASSIGNED); file.setDeleted(null); }, () -> {