Pull request #68: RED-2115: Fixed dossier status report generation

Merge in RED/redaction-report-service from RED-2115-rrs2 to master

* commit 'c1c158e24fb2fe5b1229afb6b5721298c767cd69':
  RED-2115: Fixed dossier status report generation
This commit is contained in:
Ali Oezyetimoglu 2021-09-08 15:40:45 +02:00
commit eae445f6c6
4 changed files with 37 additions and 25 deletions

View File

@ -11,7 +11,7 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor
public class StatusReportResponse {
private byte [] report;
private byte[] report;
private String filename;
}

View File

@ -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());
}
}

View File

@ -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<FileStatus> fileStatuses = fileStatusClient.getDossierStatus(dossierId);
List<FileStatus> fileStatuses = fileStatusClient.getDossierStatus(dossier.getDossierId());
List<FileAttributeConfig> fileAttributeConfigs = fileAttributesClient.getFileAttributes(dossier.getDossierTemplateId())
.getFileAttributeConfigs();

View File

@ -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);