From c1c158e24fb2fe5b1229afb6b5721298c767cd69 Mon Sep 17 00:00:00 2001 From: aoezyetimoglu Date: Wed, 8 Sep 2021 15:36:25 +0200 Subject: [PATCH] RED-2115: Fixed dossier status report generation --- .../v1/api/model/StatusReportResponse.java | 2 +- .../controller/StatusReportController.java | 33 +++++++++++++++++++ .../StatusReportGenerationService.java | 14 ++------ .../StatusReportGenerationServiceTest.java | 13 +------- 4 files changed, 37 insertions(+), 25 deletions(-) create mode 100644 redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/controller/StatusReportController.java diff --git a/redaction-report-service-v1/redaction-report-service-api-v1/src/main/java/com/iqser/red/service/redaction/report/v1/api/model/StatusReportResponse.java b/redaction-report-service-v1/redaction-report-service-api-v1/src/main/java/com/iqser/red/service/redaction/report/v1/api/model/StatusReportResponse.java index 937a503..68298b6 100644 --- a/redaction-report-service-v1/redaction-report-service-api-v1/src/main/java/com/iqser/red/service/redaction/report/v1/api/model/StatusReportResponse.java +++ b/redaction-report-service-v1/redaction-report-service-api-v1/src/main/java/com/iqser/red/service/redaction/report/v1/api/model/StatusReportResponse.java @@ -11,7 +11,7 @@ import lombok.NoArgsConstructor; @NoArgsConstructor public class StatusReportResponse { - private byte [] report; + private byte[] report; private String filename; } diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/controller/StatusReportController.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/controller/StatusReportController.java new file mode 100644 index 0000000..97e20ab --- /dev/null +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/controller/StatusReportController.java @@ -0,0 +1,33 @@ +package com.iqser.red.service.redaction.report.v1.server.controller; + +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RestController; + +import com.iqser.red.service.file.management.v1.api.model.Dossier; +import com.iqser.red.service.redaction.report.v1.api.model.StatusReportResponse; +import com.iqser.red.service.redaction.report.v1.api.resource.StatusReportResource; +import com.iqser.red.service.redaction.report.v1.server.client.DossierClient; +import com.iqser.red.service.redaction.report.v1.server.service.StatusReportGenerationService; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; + +@Slf4j +@RestController +@RequiredArgsConstructor +public class StatusReportController implements StatusReportResource { + + + private final StatusReportGenerationService statusReportGenerationService; + private final DossierClient dossierClient; + + + @Override + public StatusReportResponse generateStatusReport(@PathVariable(DOSSIER_ID) String dossierId) { + + Dossier dossier = dossierClient.getDossierById(dossierId); + byte[] report = statusReportGenerationService.generateReport(dossier); + return new StatusReportResponse(report, dossier.getDossierName()); + } + +} diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/StatusReportGenerationService.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/StatusReportGenerationService.java index afcd1d5..be1ba19 100644 --- a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/StatusReportGenerationService.java +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/StatusReportGenerationService.java @@ -18,16 +18,13 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.stereotype.Service; import com.iqser.red.service.configuration.v1.api.model.FileAttributeConfig; -import com.iqser.red.service.configuration.v1.api.model.FileAttributesConfig; import com.iqser.red.service.file.management.v1.api.model.Dossier; import com.iqser.red.service.file.management.v1.api.model.FileAttributes; import com.iqser.red.service.file.management.v1.api.model.FileStatus; import com.iqser.red.service.file.management.v1.api.model.Status; -import com.iqser.red.service.redaction.report.v1.server.client.DossierClient; import com.iqser.red.service.redaction.report.v1.server.client.FileAttributesClient; import com.iqser.red.service.redaction.report.v1.server.client.FileStatusClient; -import io.undertow.util.BadRequestException; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; @@ -36,20 +33,13 @@ import lombok.SneakyThrows; public class StatusReportGenerationService { private final FileStatusClient fileStatusClient; - private final DossierClient dossierClient; private final FileAttributesClient fileAttributesClient; - public byte[] generateReport(String dossierId) throws BadRequestException { + public byte[] generateReport(Dossier dossier) { - Dossier dossier; - try { - dossier = dossierClient.getDossierById(dossierId); - } catch (Exception e) { - throw new BadRequestException("Dossier not found."); - } - List fileStatuses = fileStatusClient.getDossierStatus(dossierId); + List fileStatuses = fileStatusClient.getDossierStatus(dossier.getDossierId()); List fileAttributeConfigs = fileAttributesClient.getFileAttributes(dossier.getDossierTemplateId()) .getFileAttributeConfigs(); diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/test/java/com/iqser/red/service/redaction/report/v1/server/service/StatusReportGenerationServiceTest.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/test/java/com/iqser/red/service/redaction/report/v1/server/service/StatusReportGenerationServiceTest.java index d185d0a..d1c3051 100644 --- a/redaction-report-service-v1/redaction-report-service-server-v1/src/test/java/com/iqser/red/service/redaction/report/v1/server/service/StatusReportGenerationServiceTest.java +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/test/java/com/iqser/red/service/redaction/report/v1/server/service/StatusReportGenerationServiceTest.java @@ -40,17 +40,6 @@ public class StatusReportGenerationServiceTest { @InjectMocks private StatusReportGenerationService statusReportGenerationService; -// @MockBean -// private ExcelTemplateReportGenerationService excelTemplateReportGenerationService; -// -// @MockBean -// private ReportStorageService reportStorageService; -// -// @MockBean -// private StorageService storageService; -// -// @MockBean -// private AmazonS3 s3Client; @Test @@ -91,7 +80,7 @@ public class StatusReportGenerationServiceTest { FileAttributesConfig fileAttributesConfig = new FileAttributesConfig(null, null, List.of(fileAttributeConfig1,fileAttributeConfig2)); when(fileAttributesClient.getFileAttributes(dossier.getDossierTemplateId())).thenReturn(fileAttributesConfig); - byte[] report = statusReportGenerationService.generateReport(dossierId); + byte[] report = statusReportGenerationService.generateReport(dossier); try (FileOutputStream fileOutputStream = new FileOutputStream("/tmp/status_report.xlsx")) { fileOutputStream.write(report);