diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/FileManagementController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/FileManagementController.java index 6560a9118..655a2bf2f 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/FileManagementController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/FileManagementController.java @@ -205,8 +205,12 @@ public class FileManagementController implements FileManagementResource { accessControlService.checkDossierExistenceAndAccessPermissionsToDossier(dossierId); fileIds.forEach(fileId -> { - if (fileStatusManagementService.getFileStatus(fileId).getAssignee() != null) { - accessControlService.verifyUserIsReviewerOrApprover(dossierId, fileId); + try { + if (fileStatusManagementService.getFileStatus(fileId).getAssignee() != null) { + accessControlService.verifyUserIsReviewerOrApprover(dossierId, fileId); + } + } catch (NotFoundException e) { + log.warn("File {} to be deleted was not found.", fileId); } }); diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/FileManagementResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/FileManagementResource.java index 21058fe45..9fc16cbbc 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/FileManagementResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/FileManagementResource.java @@ -85,7 +85,7 @@ public interface FileManagementResource { @ResponseStatus(value = HttpStatus.NO_CONTENT) @PostMapping(value = HARD_DELETE_PATH + DOSSIER_ID_PATH_VARIABLE) @Operation(summary = "Hard deletes a list of files", description = "None") - @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "Successfully hard deleted the files."), @ApiResponse(responseCode = "404", description = "Not found")}) + @ApiResponses(value = {@ApiResponse(responseCode = "202", description = "Successfully hard deleted the files."), @ApiResponse(responseCode = "404", description = "Not found")}) void hardDeleteFiles(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody List files); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileService.java index d2361d745..05fd59ea0 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileService.java @@ -8,6 +8,7 @@ import java.util.Arrays; import java.util.List; import java.util.Set; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import com.iqser.red.service.persistence.management.v1.processor.exception.ConflictException; @@ -160,6 +161,7 @@ public class FileService { } + @Async public void hardDeleteFiles(String dossierId, List fileIds) { var dossier = dossierService.getDossierById(dossierId);