From 2aff32f33ecc870a3e2553aa9faf8585695a02fe Mon Sep 17 00:00:00 2001 From: Andrei Isvoran Date: Tue, 23 Apr 2024 13:45:15 +0300 Subject: [PATCH 1/2] RED-8894 - Add soft deleted time to type response --- .../processor/service/DictionaryService.java | 1 + .../v1/server/integration/tests/TypeTest.java | 31 +++++++++++++++++++ .../v1/api/shared/model/TypeValue.java | 6 +++- 3 files changed, 37 insertions(+), 1 deletion(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DictionaryService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DictionaryService.java index 7b99704b0..dc5945ec8 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DictionaryService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DictionaryService.java @@ -273,6 +273,7 @@ public class DictionaryService { .systemManaged(typeResult.isSystemManaged()) .autoHideSkipped(typeResult.isAutoHideSkipped()) .dossierDictionaryOnly(typeResult.isDossierDictionaryOnly()) + .softDeletedTime(typeResult.getSoftDeletedTime()) .build()) .collect(Collectors.toList()); return new TypeResponse(typeValues); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/TypeTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/TypeTest.java index a82d6d735..fba035ebf 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/TypeTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/TypeTest.java @@ -1,6 +1,10 @@ package com.iqser.red.service.peristence.v1.server.integration.tests; import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import org.assertj.core.util.Lists; import org.junit.jupiter.api.Test; @@ -119,4 +123,31 @@ public class TypeTest extends AbstractPersistenceServerServiceTest { assertThat(savedColors.getAppliedRedactionColor()).isEqualTo(colors.getAppliedRedactionColor()); } + + @Test + public void testSoftDeletedTimeForTypes() { + + var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate(); + var type1 = typeProvider.testAndProvideType(dossierTemplate, "type1", 100); + var type2 = typeProvider.testAndProvideType(dossierTemplate, "type2", 101); + + var types = dictionaryClient.getAllTypes(dossierTemplate.getId(), null, true); + assertEquals(types.getTypes().size(), 2); + assertTrue(types.getTypes().stream().allMatch(typeValue -> typeValue.getSoftDeletedTime() == null)); + + dictionaryClient.deleteType(type2.getType(), dossierTemplate.getId());; + types = dictionaryClient.getAllTypes(dossierTemplate.getId(), null, true); + assertEquals(types.getTypes().size(), 2); + assertNull(types.getTypes() + .stream() + .filter(t -> t.getType().equals(type1.getType())) + .findFirst() + .get().getSoftDeletedTime()); + assertNotNull(types.getTypes() + .stream() + .filter(t -> t.getType().equals(type2.getType())) + .findFirst() + .get().getSoftDeletedTime()); + } + } diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/TypeValue.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/TypeValue.java index c3fa1a03b..86e22eeb9 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/TypeValue.java +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/TypeValue.java @@ -1,7 +1,8 @@ package com.iqser.red.service.persistence.service.v1.api.shared.model; +import java.time.OffsetDateTime; + import io.swagger.v3.oas.annotations.media.Schema; -import lombok.AccessLevel; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -65,4 +66,7 @@ public class TypeValue { @Schema(description = "Flag to indicate the dictionary is on dossier level only") private boolean dossierDictionaryOnly; + @Schema(description = "Time of soft deletion, will be null if it's not soft deleted") + private OffsetDateTime softDeletedTime; + } -- 2.47.2 From d5494660bc53db7958ad3842ba4c009c58b4e9b9 Mon Sep 17 00:00:00 2001 From: Andrei Isvoran Date: Tue, 23 Apr 2024 14:01:26 +0300 Subject: [PATCH 2/2] RED-8823 - fix pmd --- .../peristence/v1/server/integration/tests/TypeTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/TypeTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/TypeTest.java index fba035ebf..c91e8d10e 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/TypeTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/TypeTest.java @@ -135,7 +135,7 @@ public class TypeTest extends AbstractPersistenceServerServiceTest { assertEquals(types.getTypes().size(), 2); assertTrue(types.getTypes().stream().allMatch(typeValue -> typeValue.getSoftDeletedTime() == null)); - dictionaryClient.deleteType(type2.getType(), dossierTemplate.getId());; + dictionaryClient.deleteType(type2.getType(), dossierTemplate.getId()); types = dictionaryClient.getAllTypes(dossierTemplate.getId(), null, true); assertEquals(types.getTypes().size(), 2); assertNull(types.getTypes() -- 2.47.2