From 93bbdd768ddd7621b23db83e0384e15adb28066a Mon Sep 17 00:00:00 2001 From: Andrei Isvoran Date: Tue, 7 Nov 2023 11:50:32 +0100 Subject: [PATCH] RED-7784 - Report with unprocessed redactions --- .../api/impl/controller/DownloadController.java | 8 +++++++- .../api/controller/EntityLogInternalController.java | 2 +- .../v1/api/internal/resources/EntityLogResource.java | 11 +++-------- .../management/v1/processor/model/DownloadJob.java | 1 + .../v1/processor/service/DownloadService.java | 3 ++- .../service/download/DownloadProcessorService.java | 1 + .../server/integration/tests/DossierTemplateTest.java | 2 +- .../v1/server/integration/tests/DownloadTest.java | 2 +- .../v1/api/shared/model/PrepareDownloadRequest.java | 1 + .../model/PrepareDownloadWithOptionRequest.java | 1 + .../v1/api/shared/model/download/DownloadRequest.java | 1 + .../model/download/DownloadWithOptionRequest.java | 1 + persistence-service-v1/pom.xml | 2 +- 13 files changed, 22 insertions(+), 14 deletions(-) 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/DownloadController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DownloadController.java index f62218c83..e8b4e62b9 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DownloadController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DownloadController.java @@ -174,6 +174,7 @@ public class DownloadController implements DownloadResource { .downloadFileTypes(request.getDownloadFileTypes()) .reportTemplateIds(request.getReportTemplateIds()) .redactionPreviewColor(request.getRedactionPreviewColor()) + .includeUnprocessed(request.isIncludeUnprocessed()) .build(); } @@ -298,7 +299,12 @@ public class DownloadController implements DownloadResource { private DownloadRequest convert(PrepareDownloadRequest request) { - return DownloadRequest.builder().dossierId(request.getDossierId()).userId(KeycloakSecurity.getUserId()).fileIds(request.getFileIds()).build(); + return DownloadRequest.builder() + .dossierId(request.getDossierId()) + .userId(KeycloakSecurity.getUserId()) + .fileIds(request.getFileIds()) + .includeUnprocessed(request.isIncludeUnprocessed()) + .build(); } diff --git a/persistence-service-v1/persistence-service-internal-api-impl-v1/src/main/java/com/iqser/red/service/persistence/v1/internal/api/controller/EntityLogInternalController.java b/persistence-service-v1/persistence-service-internal-api-impl-v1/src/main/java/com/iqser/red/service/persistence/v1/internal/api/controller/EntityLogInternalController.java index 0dd4d4fbb..3b1316034 100644 --- a/persistence-service-v1/persistence-service-internal-api-impl-v1/src/main/java/com/iqser/red/service/persistence/v1/internal/api/controller/EntityLogInternalController.java +++ b/persistence-service-v1/persistence-service-internal-api-impl-v1/src/main/java/com/iqser/red/service/persistence/v1/internal/api/controller/EntityLogInternalController.java @@ -18,7 +18,7 @@ public class EntityLogInternalController implements EntityLogResource { private final EntityLogService entityLogService; - + @Override public EntityLog getEntityLog(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestParam(value = "excludedType", required = false) List excludedTypes, diff --git a/persistence-service-v1/persistence-service-internal-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/internal/resources/EntityLogResource.java b/persistence-service-v1/persistence-service-internal-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/internal/resources/EntityLogResource.java index 1a7b7c23b..106dde48c 100644 --- a/persistence-service-v1/persistence-service-internal-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/internal/resources/EntityLogResource.java +++ b/persistence-service-v1/persistence-service-internal-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/internal/resources/EntityLogResource.java @@ -7,14 +7,11 @@ import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseStatus; import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntityLog; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.responses.ApiResponse; -import io.swagger.v3.oas.annotations.responses.ApiResponses; - @ResponseStatus(value = HttpStatus.OK) public interface EntityLogResource { @@ -28,10 +25,8 @@ public interface EntityLogResource { String FALSE = "false"; - - @GetMapping(value = ENTITY_LOG_PATH + DOSSIER_ID_PATH_VARIABLE + FILE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE) - @Operation(summary = "Gets the entity log for a fileId", description = "None") - @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK"), @ApiResponse(responseCode = "400", description = "Request contains error."), @ApiResponse(responseCode = "404", description = "The entity log is not found.")}) + @ResponseBody + @GetMapping(value = InternalApi.BASE_PATH + ENTITY_LOG_PATH + DOSSIER_ID_PATH_VARIABLE + FILE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE) EntityLog getEntityLog(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestParam(value = "excludedType", required = false) List excludedTypes, diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/DownloadJob.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/DownloadJob.java index 91fc5b18c..564855871 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/DownloadJob.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/DownloadJob.java @@ -14,5 +14,6 @@ public class DownloadJob { private String userId; private String storageId; + private boolean includeUnprocessed; } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DownloadService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DownloadService.java index e62c9d785..eea721ddb 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DownloadService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DownloadService.java @@ -61,6 +61,7 @@ public class DownloadService { .userId(request.getUserId()) .dossierId(request.getDossierId()) .fileIds(request.getFileIds()) + .includeUnprocessed(request.isIncludeUnprocessed()) .downloadFileTypes(dossier.getDownloadFileTypes()) .reportTemplateIds(dossier.getReportTemplates().stream().map(ReportTemplateEntity::getTemplateId).collect(Collectors.toList())) .build(); @@ -84,7 +85,7 @@ public class DownloadService { request.getDownloadFileTypes(), request.getReportTemplateIds(), request.getRedactionPreviewColor()); - addToDownloadQueue(DownloadJob.builder().storageId(storageId).userId(request.getUserId()).build(), 1); + addToDownloadQueue(DownloadJob.builder().storageId(storageId).userId(request.getUserId()).includeUnprocessed(request.isIncludeUnprocessed()).build(), 1); return new JSONPrimitive<>(storageId); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/DownloadProcessorService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/DownloadProcessorService.java index ae653b5a2..ea3bb5190 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/DownloadProcessorService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/DownloadProcessorService.java @@ -52,6 +52,7 @@ public class DownloadProcessorService { .downloadId(downloadJob.getStorageId()) .dossierId(dossier.getId()) .dossierTemplateId(dossierService.getDossierById(dossier.getId()).getDossierTemplateId()) + .includeUnprocessed(downloadJob.isIncludeUnprocessed()) .fileIds(filenameSortedFileIds) .templateIds(downloadStatus.getReports().stream().map(ReportTemplateEntity::getTemplateId).collect(Collectors.toSet())) .build(), 1); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateTest.java index a17264fd7..01a0af423 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateTest.java @@ -521,7 +521,7 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { assertThat(statuses.getDownloadStatus()).isNotEmpty(); var status = statuses.getDownloadStatus().iterator().next(); - exportDownloadReportMessageReceiver.receive(new DownloadJob(status.getUserId(), status.getStorageId())); + exportDownloadReportMessageReceiver.receive(new DownloadJob(status.getUserId(), status.getStorageId(), false)); // add new justifications legalBasisClient.setLegalBasisMapping(List.of(new LegalBasis("nameAgain", "description", "reason")), dossierTemplate.getId()); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DownloadTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DownloadTest.java index 436e026d0..7e928905a 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DownloadTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DownloadTest.java @@ -97,7 +97,7 @@ public class DownloadTest extends AbstractPersistenceServerServiceTest { .fileIds(List.of(file2.getId())) .build()); - downloadMessageReceiver.receive(new DownloadJob(userProvider.getUserId(), downloads.getStorageId())); + downloadMessageReceiver.receive(new DownloadJob(userProvider.getUserId(), downloads.getStorageId(), false)); var reportInfoId = downloads.getStorageId().substring(0, downloads.getStorageId().length() - 3) + "/REPORT_INFO.json"; storageService.storeJSONObject(TenantContext.getTenantId(), reportInfoId, new ArrayList<>()); diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/PrepareDownloadRequest.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/PrepareDownloadRequest.java index 5c7abcc76..9ab7d08ab 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/PrepareDownloadRequest.java +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/PrepareDownloadRequest.java @@ -18,5 +18,6 @@ public class PrepareDownloadRequest { private String dossierId; private List fileIds; + private boolean includeUnprocessed; } diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/PrepareDownloadWithOptionRequest.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/PrepareDownloadWithOptionRequest.java index 24206d209..1c9a78281 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/PrepareDownloadWithOptionRequest.java +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/PrepareDownloadWithOptionRequest.java @@ -28,5 +28,6 @@ public class PrepareDownloadWithOptionRequest { private List reportTemplateIds = new ArrayList<>(); private Set downloadFileTypes = new HashSet<>(); private String redactionPreviewColor; + private boolean includeUnprocessed ; } diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/download/DownloadRequest.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/download/DownloadRequest.java index 0bcf7473a..dc87baaa5 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/download/DownloadRequest.java +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/download/DownloadRequest.java @@ -17,6 +17,7 @@ public class DownloadRequest { private String userId; private String dossierId; + private boolean includeUnprocessed; @Builder.Default private List fileIds = new ArrayList<>(); diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/download/DownloadWithOptionRequest.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/download/DownloadWithOptionRequest.java index 8e11ef7fc..947f8ddeb 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/download/DownloadWithOptionRequest.java +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/download/DownloadWithOptionRequest.java @@ -21,6 +21,7 @@ public class DownloadWithOptionRequest { private String userId; private String dossierId; + private boolean includeUnprocessed; @Builder.Default private List fileIds = new ArrayList<>(); diff --git a/persistence-service-v1/pom.xml b/persistence-service-v1/pom.xml index 1625a1844..592b8be79 100755 --- a/persistence-service-v1/pom.xml +++ b/persistence-service-v1/pom.xml @@ -34,7 +34,7 @@ 4.165.0 2.71.0 4.29.0 - 4.13.0 + 4.30.0 3.10.0 2.45.0