RuleSet Integration and dev features

This commit is contained in:
Timo 2021-01-06 17:29:09 +02:00
parent ec911956a7
commit b5190ebb7c
7 changed files with 51 additions and 48 deletions

View File

@ -18,4 +18,6 @@ public class MultiFileRedactionLog {
private String template;
private String ruleSetId;
}

View File

@ -22,7 +22,7 @@
<dependency>
<groupId>com.iqser.red.service</groupId>
<artifactId>configuration-service-api-v1</artifactId>
<version>1.3.0</version>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>

View File

@ -1,10 +1,8 @@
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;
import com.iqser.red.service.configuration.v1.api.resource.LegalBasisMappingResource;
import com.iqser.red.service.configuration.v1.api.resource.RulesResource;
@FeignClient(name = "LegalBasisMappingResource", url = "http://" + RulesResource.SERVICE_NAME + ":8080")
@FeignClient(name = "LegalBasisMappingResource", url = "${configuration-service.url}")
public interface LegalBasisMappingClient extends LegalBasisMappingResource {
}

View File

@ -1,24 +1,5 @@
package com.iqser.red.service.redaction.report.v1.server.service;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import javax.annotation.PostConstruct;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import org.apache.poi.xwpf.usermodel.XWPFTable;
import org.apache.poi.xwpf.usermodel.XWPFTableCell;
import org.apache.poi.xwpf.usermodel.XWPFTableRow;
import org.apache.xmlbeans.XmlCursor;
import org.springframework.stereotype.Service;
import com.iqser.red.service.configuration.v1.api.model.LegalBasisMapping;
import com.iqser.red.service.redaction.report.v1.api.model.MultiFileRedactionLog;
import com.iqser.red.service.redaction.report.v1.server.client.LegalBasisMappingClient;
@ -27,8 +8,24 @@ import com.iqser.red.service.redaction.v1.model.ManualRedactionType;
import com.iqser.red.service.redaction.v1.model.Rectangle;
import com.iqser.red.service.redaction.v1.model.RedactionLog;
import com.iqser.red.service.redaction.v1.model.Status;
import lombok.RequiredArgsConstructor;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import org.apache.poi.xwpf.usermodel.XWPFTable;
import org.apache.poi.xwpf.usermodel.XWPFTableCell;
import org.apache.poi.xwpf.usermodel.XWPFTableRow;
import org.apache.xmlbeans.XmlCursor;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Service
@RequiredArgsConstructor
@ -51,9 +48,9 @@ public class ReportGenerationService {
byte[] template;
if(multiFileRedactionLog.getTemplate().equals("EFSA Template")){
if (multiFileRedactionLog.getTemplate().equals("EFSA Template")) {
template = efsaTemplate;
} else if(multiFileRedactionLog.getTemplate().equals("Syngenta Template")){
} else if (multiFileRedactionLog.getTemplate().equals("Syngenta Template")) {
template = syngentaTemplate;
} else {
template = syngentaTemplate;
@ -61,7 +58,7 @@ public class ReportGenerationService {
try (ByteArrayInputStream is = new ByteArrayInputStream(template)) {
XWPFDocument doc = new XWPFDocument(is);
LegalBasisMapping legalBasisMapping = legalBasisMappingClient.getLegalBasisMapping();
LegalBasisMapping legalBasisMapping = legalBasisMappingClient.getLegalBasisMapping(multiFileRedactionLog.getRuleSetId());
addTableRows(doc, multiFileRedactionLog, legalBasisMapping.getReasonByLegalBasis());
return toByteArray(doc);
} catch (IOException e) {
@ -75,7 +72,7 @@ public class ReportGenerationService {
XWPFTable table = doc.getTables().get(0);
XmlCursor cursor = table.getCTTbl().newCursor();
XmlCursor cursor = table.getCTTbl().newCursor();
XWPFParagraph newParagraph = doc.insertNewParagraph(cursor);
XWPFRun run = newParagraph.createRun();
run.setText("Applied rules: EFSA 1 (Vertebrate Authors)");
@ -87,7 +84,7 @@ public class ReportGenerationService {
if (entry.isRedacted()) {
if(entry.isRecommendation()){
if (entry.isRecommendation()) {
return;
}

View File

@ -0,0 +1,5 @@
server:
port: 8084
configuration-service.url: "http://localhost:8081"

View File

@ -1,6 +1,8 @@
info:
description: Redaction Report Server v1
configuration-service.url: "http://configuration-service-v1:8080"
server:
port: 8080

View File

@ -1,20 +1,5 @@
package com.iqser.red.service.redaction.report.v1.server;
import static org.mockito.Mockito.when;
import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.DEFINED_PORT;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.core.io.ClassPathResource;
import org.springframework.test.context.junit4.SpringRunner;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.iqser.red.service.configuration.v1.api.model.LegalBasisMapping;
import com.iqser.red.service.redaction.report.v1.api.model.MultiFileRedactionLog;
@ -22,9 +7,23 @@ import com.iqser.red.service.redaction.report.v1.api.model.ReportResult;
import com.iqser.red.service.redaction.report.v1.server.client.LegalBasisMappingClient;
import com.iqser.red.service.redaction.report.v1.server.controller.RedactionReportController;
import com.iqser.red.service.redaction.v1.model.RedactionLog;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.core.io.ClassPathResource;
import org.springframework.test.context.junit4.SpringRunner;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
import static org.mockito.Mockito.when;
import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT;
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = DEFINED_PORT)
@SpringBootTest(webEnvironment = RANDOM_PORT)
public class RedactionReportIntegrationTest {
@Autowired
@ -44,14 +43,14 @@ public class RedactionReportIntegrationTest {
LegalBasisMapping legalBasisMapping = objectMapper.readValue(legalBasisMappingResource.getInputStream(), LegalBasisMapping.class);
when(legalBasisMappingClient.getLegalBasisMapping()).thenReturn(legalBasisMapping);
when(legalBasisMappingClient.getLegalBasisMapping("123")).thenReturn(legalBasisMapping);
ClassPathResource redactionLogResource = new ClassPathResource("files/RedactedLog.txt");
RedactionLog redactionLog = objectMapper.readValue(redactionLogResource.getInputStream(), RedactionLog.class);
redactionLog.setFilename("TestFile");
MultiFileRedactionLog multiFileRedactionLog = new MultiFileRedactionLog(List.of(redactionLog), "EFSA Template");
MultiFileRedactionLog multiFileRedactionLog = new MultiFileRedactionLog(List.of(redactionLog), "EFSA Template", "123");
ReportResult reportResult = redactionReportController.generateReport(multiFileRedactionLog);