diff --git a/redaction-report-service-v1/redaction-report-service-api-v1/src/main/java/com/iqser/red/service/redaction/report/v1/api/model/ReportResultMessage.java b/redaction-report-service-v1/redaction-report-service-api-v1/src/main/java/com/iqser/red/service/redaction/report/v1/api/model/ReportResultMessage.java index a02d933..8b4c4c9 100644 --- a/redaction-report-service-v1/redaction-report-service-api-v1/src/main/java/com/iqser/red/service/redaction/report/v1/api/model/ReportResultMessage.java +++ b/redaction-report-service-v1/redaction-report-service-api-v1/src/main/java/com/iqser/red/service/redaction/report/v1/api/model/ReportResultMessage.java @@ -16,6 +16,6 @@ public class ReportResultMessage { private String userId; private String downloadId; - private List storedFileInformation = new ArrayList<>(); + private String reportFileInformationStorageId; } diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/ReportGenerationService.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/ReportGenerationService.java index c50c922..1c214a2 100644 --- a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/ReportGenerationService.java +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/ReportGenerationService.java @@ -59,7 +59,7 @@ public class ReportGenerationService { @SneakyThrows @Timed("redactmanager_generateReports") - public List generateReports(ReportRequestMessage reportMessage) { + public String generateReports(ReportRequestMessage reportMessage) { List storedFileInformation = Collections.synchronizedList(new ArrayList<>()); @@ -153,7 +153,9 @@ public class ReportGenerationService { storedFileInformation.add(new StoredFileInformation(null, storageId, ReportType.WORD_TEMPLATE_MULTI_FILE, multiFileDocument.getTemplateId())); } - return storedFileInformation; + String reportFileInformationStorageId = reportStorageService.storeReportInformation(reportMessage.getDownloadId(), storedFileInformation); + + return reportFileInformationStorageId; } diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/ReportMessageReceiver.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/ReportMessageReceiver.java index fbfaf0d..5097e68 100644 --- a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/ReportMessageReceiver.java +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/ReportMessageReceiver.java @@ -36,8 +36,8 @@ public class ReportMessageReceiver { long start = System.currentTimeMillis(); log.info("Start generating reports for downloadId {}", reportMessage.getDownloadId()); - List storedFileInformation = reportGenerationService.generateReports(reportMessage); - addToReportResultQueue(reportMessage.getUserId(), reportMessage.getDownloadId(), storedFileInformation, 1); + var reportFileInformationStorageId = reportGenerationService.generateReports(reportMessage); + addToReportResultQueue(reportMessage.getUserId(), reportMessage.getDownloadId(), reportFileInformationStorageId, 1); long end = System.currentTimeMillis(); log.info("Successfully generated reports for downloadId {}, took {}", reportMessage.getDownloadId(), end - start); @@ -45,10 +45,10 @@ public class ReportMessageReceiver { private void addToReportResultQueue(String userId, String downloadId, - List storedFileInformation, int priority) { + String reportFileInformationStorageId, int priority) { try { - rabbitTemplate.convertAndSend(REPORT_RESULT_QUEUE, objectMapper.writeValueAsString(new ReportResultMessage(userId, downloadId, storedFileInformation)), message -> { + rabbitTemplate.convertAndSend(REPORT_RESULT_QUEUE, objectMapper.writeValueAsString(new ReportResultMessage(userId, downloadId, reportFileInformationStorageId)), message -> { message.getMessageProperties().setPriority(priority); return message; }); diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/storage/ReportStorageService.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/storage/ReportStorageService.java index da6274c..a471fe3 100644 --- a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/storage/ReportStorageService.java +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/storage/ReportStorageService.java @@ -1,11 +1,16 @@ package com.iqser.red.service.redaction.report.v1.server.storage; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.iqser.red.service.redaction.report.v1.api.model.StoredFileInformation; import com.iqser.red.storage.commons.service.StorageService; import lombok.RequiredArgsConstructor; +import lombok.SneakyThrows; + import org.apache.commons.io.IOUtils; import org.springframework.stereotype.Service; import java.io.IOException; +import java.util.List; import java.util.UUID; @Service @@ -13,6 +18,7 @@ import java.util.UUID; public class ReportStorageService { private final StorageService storageService; + private final ObjectMapper objectMapper; public String storeObject(String downloadId, byte[] data) { @@ -21,6 +27,16 @@ public class ReportStorageService { return storageId; } + + @SneakyThrows + public String storeReportInformation(String downloadId, List storedFileInformations) { + + String storageId = StorageIdUtils.getStorageId(downloadId, "REPORT_INFO.json"); + storageService.storeObject(storageId, objectMapper.writeValueAsBytes(storedFileInformations)); + return storageId; + } + + public byte[] getReportTemplate(String storageId) { try { return IOUtils.toByteArray(storageService.getObject(storageId).getInputStream());