From f8231a6499b36c38ecaf403048dd67ea2c4253b5 Mon Sep 17 00:00:00 2001 From: Kilian Schuettler Date: Wed, 27 Sep 2023 11:08:29 +0200 Subject: [PATCH] DM-502: Dossier Endpoint returns all dossiers regardless of the set dossierTemplateId --- .../impl/controller/DossierControllerV2.java | 28 +++++++++++-------- 1 file changed, 17 insertions(+), 11 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/DossierControllerV2.java b/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/controller/DossierControllerV2.java index 2aea7167a..74c8a8cd6 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/controller/DossierControllerV2.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/controller/DossierControllerV2.java @@ -1,5 +1,16 @@ package com.iqser.red.persistence.service.v2.external.api.impl.controller; +import static com.iqser.red.service.persistence.management.v1.processor.exception.DossierNotFoundException.DOSSIER_NOT_FOUND_MESSAGE; +import static com.iqser.red.service.persistence.service.v2.api.external.resource.DossierTemplateResource.DOSSIER_TEMPLATE_ID_PARAM; + +import java.util.Set; + +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + import com.iqser.red.persistence.service.v1.external.api.impl.controller.DossierController; import com.iqser.red.persistence.service.v1.external.api.impl.controller.DossierTemplateController; import com.iqser.red.service.persistence.management.v1.processor.exception.DossierNotFoundException; @@ -9,19 +20,10 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemp import com.iqser.red.service.persistence.service.v2.api.external.model.DocuMineDossierRequest; import com.iqser.red.service.persistence.service.v2.api.external.model.DossierList; import com.iqser.red.service.persistence.service.v2.api.external.resource.DossierResource; + import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -import static com.iqser.red.service.persistence.management.v1.processor.exception.DossierNotFoundException.DOSSIER_NOT_FOUND_MESSAGE; -import static com.iqser.red.service.persistence.service.v2.api.external.resource.DossierTemplateResource.DOSSIER_TEMPLATE_ID_PARAM; - -import java.util.Set; @RestController @RequiredArgsConstructor @@ -31,6 +33,7 @@ public class DossierControllerV2 implements DossierResource { private final DossierTemplateController dossierTemplateController; private final DossierController dossierController; + public DossierList getDossiers(@PathVariable(DOSSIER_TEMPLATE_ID_PARAM) String dossierTemplateId, @RequestParam(name = INCLUDE_ACTIVE_PARAM, defaultValue = "true", required = false) boolean includeActive, @RequestParam(name = INCLUDE_ARCHIVED_PARAM, defaultValue = "false", required = false) boolean includeArchived, @@ -38,7 +41,7 @@ public class DossierControllerV2 implements DossierResource { dossierTemplateController.getDossierTemplate(dossierTemplateId); - var dossiers = dossierController.getDossiers(includeArchived, includeSoftDeleted); + var dossiers = dossierController.getDossiersForDossierTemplate(dossierTemplateId, includeArchived, includeSoftDeleted); if (!includeActive) { return new DossierList(dossiers.stream().filter(dossier -> dossier.getSoftDeletedTime() != null || dossier.getArchivedTime() != null).toList()); @@ -74,6 +77,7 @@ public class DossierControllerV2 implements DossierResource { return dossierController.createDossierOrUpdateDossier(mapToDossierRequest(dossierTemplateId, dossier)); } + public void deleteDossier(@Parameter(name = DOSSIER_TEMPLATE_ID_PARAM, description = "The identifier of the dossier template that is used for the dossier.", required = true) @PathVariable(DOSSIER_TEMPLATE_ID_PARAM) String dossierTemplateId, @Parameter(name = DOSSIER_ID_PARAM, description = "The identifier of the dossier to retrieve.", required = true) @PathVariable(DOSSIER_ID_PARAM) String dossierId) { @@ -82,7 +86,9 @@ public class DossierControllerV2 implements DossierResource { dossierController.deleteDossier(dossierId); } + private static DossierRequest mapToDossierRequest(String dossierTemplateId, DocuMineDossierRequest dossier) { + return DossierRequest.builder() .dossierId(dossier.getId()) .dossierName(dossier.getName())