From 0162017e619be8e74268c8717529e6da31250ef6 Mon Sep 17 00:00:00 2001 From: Andrei Isvoran Date: Tue, 29 Aug 2023 12:57:34 +0200 Subject: [PATCH] RED-7500 - Delete Report json metadata from azure/s3 storage --- .../impl/controller/DownloadController.java | 19 +++++++++++++++++-- .../service/FileManagementStorageService.java | 5 +++++ 2 files changed, 22 insertions(+), 2 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 6f2ff1b16..590a0468e 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 @@ -178,7 +178,17 @@ public class DownloadController implements DownloadResource { removeDownloadRequest.getStorageIds().forEach(storageId -> { downloadService.deleteDownloadStatus(JSONPrimitive.of(storageId)); fileManagementStorageService.deleteObject(storageId); - fileManagementStorageService.deleteObject(generateReportJsonStorageId(storageId)); + + String s3ReportJson = generateReportJsonStorageIdForS3(storageId); + if (fileManagementStorageService.objectExists(s3ReportJson)) { + fileManagementStorageService.deleteObject(s3ReportJson); + } + + String azureReportJson = generateReportJsonStorageIdForAzure(storageId); + if (fileManagementStorageService.objectExists(azureReportJson)) { + fileManagementStorageService.deleteObject(azureReportJson); + } + auditPersistenceService.audit(AuditRequest.builder() .userId(KeycloakSecurity.getUserId()) .objectId(storageId) @@ -292,9 +302,14 @@ public class DownloadController implements DownloadResource { return DownloadRequest.builder().dossierId(request.getDossierId()).userId(KeycloakSecurity.getUserId()).fileIds(request.getFileIds()).build(); } - private String generateReportJsonStorageId(String storageId) { + private String generateReportJsonStorageIdForS3(String storageId) { return storageId.replace("zip", "/REPORT_INFO.json.gz"); } + private String generateReportJsonStorageIdForAzure(String storageId) { + + return storageId.replace(".zip", "/REPORT_INFO.json.gz"); + } + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileManagementStorageService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileManagementStorageService.java index d33b6a869..34b234218 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileManagementStorageService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileManagementStorageService.java @@ -120,6 +120,11 @@ public class FileManagementStorageService { return storageService.objectExists(TenantContext.getTenantId(), StorageIdUtils.getStorageId(dossierId, fileId, origin)); } + public boolean objectExists(String storageId) { + + return storageService.objectExists(TenantContext.getTenantId(), storageId); + } + public void deleteObject(String dossierId, String fileId, FileType fileType) {