Merge branch 'master' of ssh://git.iqser.com:2222/red/redaction-report-service

This commit is contained in:
aoezyetimoglu 2021-05-17 15:17:09 +02:00
commit f664b8faa2
5 changed files with 35 additions and 53 deletions

View File

@ -24,7 +24,7 @@
<dependency> <dependency>
<groupId>com.iqser.red.service</groupId> <groupId>com.iqser.red.service</groupId>
<artifactId>redaction-service-api-v1</artifactId> <artifactId>redaction-service-api-v1</artifactId>
<version>2.5.4</version> <version>2.9.0</version>
<exclusions> <exclusions>
<exclusion> <exclusion>
<groupId>com.iqser.red.service</groupId> <groupId>com.iqser.red.service</groupId>
@ -40,12 +40,16 @@
<dependency> <dependency>
<groupId>com.iqser.red.service</groupId> <groupId>com.iqser.red.service</groupId>
<artifactId>configuration-service-api-v1</artifactId> <artifactId>configuration-service-api-v1</artifactId>
<version>2.5.6</version> <version>2.7.0</version>
<exclusions> <exclusions>
<exclusion> <exclusion>
<groupId>com.iqser.red.service</groupId> <groupId>com.iqser.red.service</groupId>
<artifactId>file-management-service-api-v1</artifactId> <artifactId>file-management-service-api-v1</artifactId>
</exclusion> </exclusion>
<exclusion>
<groupId>com.iqser.red.service</groupId>
<artifactId>redaction-service-api-v1</artifactId>
</exclusion>
</exclusions> </exclusions>
</dependency> </dependency>

View File

@ -1,5 +1,8 @@
package com.iqser.red.service.redaction.report.v1.server; package com.iqser.red.service.redaction.report.v1.server;
import com.iqser.red.commons.spring.DefaultWebMvcConfiguration;
import com.iqser.red.service.redaction.report.v1.server.client.ProjectClient;
import com.iqser.red.service.redaction.report.v1.server.configuration.MessagingConfiguration;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.actuate.autoconfigure.security.servlet.ManagementWebSecurityAutoConfiguration; import org.springframework.boot.actuate.autoconfigure.security.servlet.ManagementWebSecurityAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
@ -8,14 +11,10 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Import;
import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.scheduling.annotation.EnableAsync;
import com.iqser.red.commons.spring.DefaultWebMvcConfiguration;
import com.iqser.red.service.redaction.report.v1.server.client.LegalBasisMappingClient;
import com.iqser.red.service.redaction.report.v1.server.configuration.MessagingConfiguration;
@EnableAsync @EnableAsync
@SpringBootApplication(exclude = {SecurityAutoConfiguration.class, ManagementWebSecurityAutoConfiguration.class}) @SpringBootApplication(exclude = {SecurityAutoConfiguration.class, ManagementWebSecurityAutoConfiguration.class})
@Import({DefaultWebMvcConfiguration.class, MessagingConfiguration.class}) @Import({DefaultWebMvcConfiguration.class, MessagingConfiguration.class})
@EnableFeignClients(basePackageClasses = {LegalBasisMappingClient.class}) @EnableFeignClients(basePackageClasses = {ProjectClient.class})
public class Application { public class Application {
/** /**

View File

@ -1,8 +0,0 @@
package com.iqser.red.service.redaction.report.v1.server.client;
import com.iqser.red.service.configuration.v1.api.resource.LegalBasisMappingResource;
import org.springframework.cloud.openfeign.FeignClient;
@FeignClient(name = "LegalBasisMappingResource", url = "${configuration-service.url}")
public interface LegalBasisMappingClient extends LegalBasisMappingResource {
}

View File

@ -7,7 +7,6 @@ import com.iqser.red.service.redaction.report.v1.api.model.ReportRequestMessage;
import com.iqser.red.service.redaction.report.v1.api.model.ReportType; import com.iqser.red.service.redaction.report.v1.api.model.ReportType;
import com.iqser.red.service.redaction.report.v1.api.model.StoredFileInformation; import com.iqser.red.service.redaction.report.v1.api.model.StoredFileInformation;
import com.iqser.red.service.redaction.report.v1.server.client.FileStatusClient; import com.iqser.red.service.redaction.report.v1.server.client.FileStatusClient;
import com.iqser.red.service.redaction.report.v1.server.client.LegalBasisMappingClient;
import com.iqser.red.service.redaction.report.v1.server.client.ProjectClient; import com.iqser.red.service.redaction.report.v1.server.client.ProjectClient;
import com.iqser.red.service.redaction.report.v1.server.model.ReportRedactionEntry; import com.iqser.red.service.redaction.report.v1.server.model.ReportRedactionEntry;
import com.iqser.red.service.redaction.report.v1.server.storage.ReportStorageService; import com.iqser.red.service.redaction.report.v1.server.storage.ReportStorageService;
@ -30,7 +29,6 @@ public class ReportGenerationService {
private final ReportStorageService reportStorageService; private final ReportStorageService reportStorageService;
private final ExcelReportGenerationService excelReportService; private final ExcelReportGenerationService excelReportService;
private final WordReportGenerationService wordReportGenerationService; private final WordReportGenerationService wordReportGenerationService;
private final LegalBasisMappingClient legalBasisMappingClient;
private final RedactionLogConverterService redactionLogConverterService; private final RedactionLogConverterService redactionLogConverterService;
private final FileStatusClient fileStatusClient; private final FileStatusClient fileStatusClient;
private final ProjectClient projectClient; private final ProjectClient projectClient;
@ -38,7 +36,6 @@ public class ReportGenerationService {
public List<StoredFileInformation> generateReport(ReportRequestMessage reportMessage) { public List<StoredFileInformation> generateReport(ReportRequestMessage reportMessage) {
List<LegalBasisMapping> legalBasisMappings = null;
XSSFWorkbook excelMultiFileWorkbook = null; XSSFWorkbook excelMultiFileWorkbook = null;
XSSFSheet excelMultiFileSheet = null; XSSFSheet excelMultiFileSheet = null;
AtomicInteger excelRowIndex = new AtomicInteger(1); AtomicInteger excelRowIndex = new AtomicInteger(1);
@ -59,9 +56,7 @@ public class ReportGenerationService {
long start = System.currentTimeMillis(); long start = System.currentTimeMillis();
RedactionLog redactionLog = reportStorageService.getRedactionLog(reportMessage.getProjectId(), fileId); RedactionLog redactionLog = reportStorageService.getRedactionLog(reportMessage.getProjectId(), fileId);
if (legalBasisMappings == null) { List<LegalBasisMapping> legalBasisMappings = redactionLog.getLegalBasis();
legalBasisMappings = legalBasisMappingClient.getLegalBasisMapping(redactionLog.getRuleSetId());
}
List<ReportRedactionEntry> reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMappings); List<ReportRedactionEntry> reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMappings);
@ -75,7 +70,7 @@ public class ReportGenerationService {
storedFileInformation.add(new StoredFileInformation(fileId, storageId, ReportType.EXCEL_SINGLE_FILE, null)); storedFileInformation.add(new StoredFileInformation(fileId, storageId, ReportType.EXCEL_SINGLE_FILE, null));
} }
for(String templateId: reportMessage.getTemplateIds()) { for (String templateId : reportMessage.getTemplateIds()) {
byte[] template = wordReportGenerationService.generateReport(ReportType.WORD_SINGLE_FILE, reportEntries, redactionLog.getRuleSetId(), templateId, fileStatus, project); byte[] template = wordReportGenerationService.generateReport(ReportType.WORD_SINGLE_FILE, reportEntries, redactionLog.getRuleSetId(), templateId, fileStatus, project);
String storageId = reportStorageService.storeObject(reportMessage.getDownloadId(), template); String storageId = reportStorageService.storeObject(reportMessage.getDownloadId(), template);
storedFileInformation.add(new StoredFileInformation(fileId, storageId, ReportType.WORD_SINGLE_FILE, templateId)); storedFileInformation.add(new StoredFileInformation(fileId, storageId, ReportType.WORD_SINGLE_FILE, templateId));

View File

@ -1,17 +1,11 @@
package com.iqser.red.service.redaction.report.v1.server; package com.iqser.red.service.redaction.report.v1.server;
import static org.mockito.Mockito.when; import com.amazonaws.services.s3.AmazonS3;
import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT; import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.iqser.red.service.configuration.v1.api.model.FileAttributeConfig; 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.configuration.v1.api.model.FileAttributesConfig;
import com.iqser.red.service.configuration.v1.api.model.LegalBasisMapping;
import com.iqser.red.service.file.management.v1.api.model.FileAttributes; 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.FileStatus;
import com.iqser.red.service.file.management.v1.api.model.Project; import com.iqser.red.service.file.management.v1.api.model.Project;
@ -19,7 +13,14 @@ import com.iqser.red.service.file.management.v1.api.model.ReportTemplate;
import com.iqser.red.service.redaction.report.v1.api.model.ReportType; import com.iqser.red.service.redaction.report.v1.api.model.ReportType;
import com.iqser.red.service.redaction.report.v1.server.client.FileAttributesClient; import com.iqser.red.service.redaction.report.v1.server.client.FileAttributesClient;
import com.iqser.red.service.redaction.report.v1.server.client.ReportTemplateClient; import com.iqser.red.service.redaction.report.v1.server.client.ReportTemplateClient;
import com.iqser.red.service.redaction.report.v1.server.configuration.MessagingConfiguration;
import com.iqser.red.service.redaction.report.v1.server.model.ReportRedactionEntry;
import com.iqser.red.service.redaction.report.v1.server.service.ExcelReportGenerationService;
import com.iqser.red.service.redaction.report.v1.server.service.RedactionLogConverterService;
import com.iqser.red.service.redaction.report.v1.server.service.WordReportGenerationService;
import com.iqser.red.service.redaction.report.v1.server.storage.ReportStorageService; import com.iqser.red.service.redaction.report.v1.server.storage.ReportStorageService;
import com.iqser.red.service.redaction.v1.model.RedactionLog;
import com.iqser.red.storage.commons.service.StorageService;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
@ -29,18 +30,15 @@ import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.ClassPathResource;
import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.junit4.SpringRunner;
import com.amazonaws.services.s3.AmazonS3; import java.io.FileOutputStream;
import com.fasterxml.jackson.core.type.TypeReference; import java.io.IOException;
import com.fasterxml.jackson.databind.ObjectMapper; import java.util.ArrayList;
import com.iqser.red.service.configuration.v1.api.model.LegalBasisMapping; import java.util.HashMap;
import com.iqser.red.service.redaction.report.v1.server.client.LegalBasisMappingClient; import java.util.List;
import com.iqser.red.service.redaction.report.v1.server.configuration.MessagingConfiguration; import java.util.Map;
import com.iqser.red.service.redaction.report.v1.server.model.ReportRedactionEntry;
import com.iqser.red.service.redaction.report.v1.server.service.ExcelReportGenerationService; import static org.mockito.Mockito.when;
import com.iqser.red.service.redaction.report.v1.server.service.RedactionLogConverterService; import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT;
import com.iqser.red.service.redaction.report.v1.server.service.WordReportGenerationService;
import com.iqser.red.service.redaction.v1.model.RedactionLog;
import com.iqser.red.storage.commons.service.StorageService;
@RunWith(SpringRunner.class) @RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = RANDOM_PORT) @SpringBootTest(webEnvironment = RANDOM_PORT)
@ -49,9 +47,6 @@ public class RedactionReportIntegrationTest {
@Autowired @Autowired
private ObjectMapper objectMapper; private ObjectMapper objectMapper;
@MockBean
private LegalBasisMappingClient legalBasisMappingClient;
@MockBean @MockBean
private StorageService storageService; private StorageService storageService;
@ -87,7 +82,6 @@ public class RedactionReportIntegrationTest {
RedactionLog redactionLog = objectMapper.readValue(redactionLogResource.getInputStream(), RedactionLog.class); RedactionLog redactionLog = objectMapper.readValue(redactionLogResource.getInputStream(), RedactionLog.class);
redactionLog.setFilename("TestFile");
ClassPathResource legalBasisMappingResource = new ClassPathResource("files/legalBasisMapping.json"); ClassPathResource legalBasisMappingResource = new ClassPathResource("files/legalBasisMapping.json");
@ -131,8 +125,6 @@ public class RedactionReportIntegrationTest {
RedactionLog redactionLog = objectMapper.readValue(redactionLogResource.getInputStream(), RedactionLog.class); RedactionLog redactionLog = objectMapper.readValue(redactionLogResource.getInputStream(), RedactionLog.class);
redactionLog.setFilename("TestFile");
ClassPathResource legalBasisMappingResource = new ClassPathResource("files/LegalBasisMapping.json"); ClassPathResource legalBasisMappingResource = new ClassPathResource("files/LegalBasisMapping.json");
List<LegalBasisMapping> legalBasisMapping = objectMapper.readValue(legalBasisMappingResource.getInputStream(), new TypeReference<>() { List<LegalBasisMapping> legalBasisMapping = objectMapper.readValue(legalBasisMappingResource.getInputStream(), new TypeReference<>() {
@ -140,7 +132,7 @@ public class RedactionReportIntegrationTest {
List<ReportRedactionEntry> reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping); List<ReportRedactionEntry> reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping);
byte[] report = excelReportGenerationService.generateSingleFileReport(reportEntries, redactionLog.getFilename()); byte[] report = excelReportGenerationService.generateSingleFileReport(reportEntries, "TestFile");
try (FileOutputStream fileOutputStream = new FileOutputStream("/tmp/report.xlsx")) { try (FileOutputStream fileOutputStream = new FileOutputStream("/tmp/report.xlsx")) {
fileOutputStream.write(report); fileOutputStream.write(report);