From f7066191405a369a6d8a1b7412eba510c6876186 Mon Sep 17 00:00:00 2001 From: Kilian Schuettler Date: Fri, 6 Oct 2023 15:11:09 +0200 Subject: [PATCH] DM-504: always exclude hard deleted files --- .../external/api/impl/controller/FileControllerV2.java | 9 +++++++-- .../service/v1/api/shared/model/FileStatus.java | 2 ++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/controller/FileControllerV2.java b/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/controller/FileControllerV2.java index 36dcc42e7..b91db32f4 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/controller/FileControllerV2.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/controller/FileControllerV2.java @@ -6,6 +6,7 @@ import static com.iqser.red.service.persistence.service.v2.api.external.resource import static com.iqser.red.service.persistence.service.v2.api.external.resource.DossierResource.INCLUDE_SOFT_DELETED_PARAM; import static com.iqser.red.service.persistence.service.v2.api.external.resource.DossierTemplateResource.DOSSIER_TEMPLATE_ID_PARAM; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.HashSet; import java.util.List; @@ -94,10 +95,14 @@ public class FileControllerV2 implements FileResource { dossierController.getDossier(dossierId, true, includeSoftDeleted); - var status = statusController.getFileStatus(dossierId, fileId); + FileStatus status = statusController.getFileStatus(dossierId, fileId); + + if (status.getHardDeletedTime() != null) { + throw new NotFoundException(String.format("The requested file has been hard deleted on %s.", status.getHardDeletedTime().format(DateTimeFormatter.ISO_LOCAL_DATE))); + } if (!includeSoftDeleted && status.getSoftDeletedTime() != null) { - throw new NotFoundException("The requested file does not exist."); + throw new NotFoundException(String.format("The requested file has been soft deleted on %s.", status.getSoftDeletedTime().format(DateTimeFormatter.ISO_LOCAL_DATE))); } return status; diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/FileStatus.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/FileStatus.java index f2f09de90..1af0c17f7 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/FileStatus.java +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/FileStatus.java @@ -123,6 +123,8 @@ public class FileStatus { private Set excludedPages; @Schema(description = "Shows if the file is soft deleted.") private OffsetDateTime softDeletedTime; + @Schema(description = "Shows if the file is hard deleted.") + private OffsetDateTime hardDeletedTime; @Schema(description = "Date and time when the files attributes was last updated.") private OffsetDateTime lastFileAttributeChange; @Schema(description = "Shows if there are any Suggestions in this file.")