From bd344d2c07cf05fdc8c68f6df44f4d8830f05b5d Mon Sep 17 00:00:00 2001 From: Ali Oezyetimoglu Date: Fri, 17 Feb 2023 11:39:39 +0100 Subject: [PATCH 1/3] RED-5256: added consumes to getDossierInformation-endpoint and changed it from GET to POST && dossiers were not filtered before getting dossier information, if filteredDossierId was empty --- .../persistence/service/v1/api/resources/DossierResource.java | 4 ++-- .../peristence/v1/server/controller/DossierController.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierResource.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierResource.java index 8eaa94c3c..b6bad26c3 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierResource.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierResource.java @@ -26,7 +26,7 @@ public interface DossierResource { String REST_PATH = "/dossier"; String DOSSIER_TEMPLATE_PATH = "/dossier-template"; - String INFO_PATH = "/info"; + String INFO_PATH = "/dossier-info"; String DELETED_DOSSIERS_PATH = "/deletedDossiers"; String HARD_DELETE_PATH = "/hardDelete"; String UNDELETE_PATH = "/undelete"; @@ -75,7 +75,7 @@ public interface DossierResource { @RequestParam(name = INCLUDE_DELETED_PARAM, defaultValue = "false", required = false) boolean includeDeleted); - @GetMapping(value = REST_PATH + INFO_PATH, produces = MediaType.APPLICATION_JSON_VALUE) + @PostMapping(value = INFO_PATH, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) DossierInformation getDossierInformation(@RequestBody List filteredDossierIds); diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierController.java index 227b45f03..3b4956594 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierController.java @@ -144,7 +144,7 @@ public class DossierController implements DossierResource { DossierInformation dossierInformation = new DossierInformation(); var dossiers = dossierService.getAllDossiers(); - if (filteredDossierIds != null && !filteredDossierIds.isEmpty()) { + if (filteredDossierIds != null) { dossiers = dossiers.stream().filter(d -> filteredDossierIds.contains(d.getId())).collect(Collectors.toList()); } dossiers.forEach(d -> { From 495f202403d45fc7c0b526364468b815f7ae98bf Mon Sep 17 00:00:00 2001 From: Ali Oezyetimoglu Date: Fri, 17 Feb 2023 12:14:01 +0100 Subject: [PATCH 2/3] RED-5256: added consumes to getDossierInformation-endpoint and changed it from GET to POST && dossiers were not filtered before getting dossier information, if filteredDossierId was empty --- .../persistence/service/v1/api/resources/DossierResource.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierResource.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierResource.java index b6bad26c3..b4d053bf7 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierResource.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierResource.java @@ -75,7 +75,7 @@ public interface DossierResource { @RequestParam(name = INCLUDE_DELETED_PARAM, defaultValue = "false", required = false) boolean includeDeleted); - @PostMapping(value = INFO_PATH, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) + @PostMapping(value = INFO_PATH, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) DossierInformation getDossierInformation(@RequestBody List filteredDossierIds); From 19c87fa6bc92a52c8867d9c9792002e4b2754545 Mon Sep 17 00:00:00 2001 From: Ali Oezyetimoglu Date: Fri, 17 Feb 2023 15:12:54 +0100 Subject: [PATCH 3/3] RED-5256: refactored checks and added findAllById for dossiers --- .../persistence/DossierPersistenceService.java | 17 +++++++++++++---- .../v1/server/controller/DossierController.java | 7 +++---- .../v1/server/service/DossierService.java | 6 ++++++ 3 files changed, 22 insertions(+), 8 deletions(-) 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 f7277346d..e6ac1ea5d 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 @@ -4,16 +4,16 @@ import static com.iqser.red.service.persistence.management.v1.processor.exceptio import java.time.OffsetDateTime; import java.time.temporal.ChronoUnit; +import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.UUID; import java.util.stream.Collectors; - -import com.iqser.red.service.persistence.management.v1.processor.exception.ConflictException; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierEntity; import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; @@ -28,8 +28,6 @@ import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.do import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.transaction.annotation.Isolation; -import org.springframework.transaction.annotation.Transactional; @Service @RequiredArgsConstructor @@ -171,6 +169,17 @@ public class DossierPersistenceService { public List findAllDossiers() { return dossierRepository.findAll(); + + } + + + public List findAllDossiers(List dossierIds) { + + if (!dossierIds.isEmpty()) { + return dossierRepository.findAllById(dossierIds); + } else { + return Collections.emptyList(); + } } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierController.java index 3b4956594..2e2e6215c 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierController.java @@ -4,6 +4,7 @@ import static com.iqser.red.service.persistence.management.v1.processor.exceptio import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; import java.time.OffsetDateTime; +import java.util.Collections; import java.util.List; import java.util.Set; import java.util.stream.Collectors; @@ -143,10 +144,8 @@ public class DossierController implements DossierResource { DossierInformation dossierInformation = new DossierInformation(); - var dossiers = dossierService.getAllDossiers(); - if (filteredDossierIds != null) { - dossiers = dossiers.stream().filter(d -> filteredDossierIds.contains(d.getId())).collect(Collectors.toList()); - } + var dossiers = dossierService.getAllDossiers(filteredDossierIds != null ? filteredDossierIds : Collections.emptyList()); + dossiers.forEach(d -> { if (d.getHardDeletedTime() != null) { dossierInformation.setNumberOfHardDeletedDossiers(dossierInformation.getNumberOfHardDeletedDossiers() + 1); diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/DossierService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/DossierService.java index 3ebd370d2..370ade44c 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/DossierService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/DossierService.java @@ -133,6 +133,12 @@ public class DossierService { } + public List getAllDossiers(List dossierIds) { + + return dossierPersistenceService.findAllDossiers(dossierIds); + } + + public List getAllDossiersForDossierTemplateId(String dossierTemplateId) { return dossierPersistenceService.findAllDossiersForDossierTemplateId(dossierTemplateId);