From b5190ebb7ca41a21182bb6ed4efb9af92cb7b60e Mon Sep 17 00:00:00 2001 From: Timo Date: Wed, 6 Jan 2021 17:29:09 +0200 Subject: [PATCH] RuleSet Integration and dev features --- .../v1/api/model/MultiFileRedactionLog.java | 2 + .../pom.xml | 2 +- .../client/LegalBasisMappingClient.java | 6 +-- .../service/ReportGenerationService.java | 47 +++++++++---------- .../src/main/resources/application-dev.yml | 5 ++ .../src/main/resources/application.yml | 2 + .../RedactionReportIntegrationTest.java | 35 +++++++------- 7 files changed, 51 insertions(+), 48 deletions(-) create mode 100644 redaction-report-service-v1/redaction-report-service-server-v1/src/main/resources/application-dev.yml diff --git a/redaction-report-service-v1/redaction-report-service-api-v1/src/main/java/com/iqser/red/service/redaction/report/v1/api/model/MultiFileRedactionLog.java b/redaction-report-service-v1/redaction-report-service-api-v1/src/main/java/com/iqser/red/service/redaction/report/v1/api/model/MultiFileRedactionLog.java index b30d588..fe7865b 100644 --- a/redaction-report-service-v1/redaction-report-service-api-v1/src/main/java/com/iqser/red/service/redaction/report/v1/api/model/MultiFileRedactionLog.java +++ b/redaction-report-service-v1/redaction-report-service-api-v1/src/main/java/com/iqser/red/service/redaction/report/v1/api/model/MultiFileRedactionLog.java @@ -18,4 +18,6 @@ public class MultiFileRedactionLog { private String template; + private String ruleSetId; + } diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/pom.xml b/redaction-report-service-v1/redaction-report-service-server-v1/pom.xml index a889c66..4829e4c 100644 --- a/redaction-report-service-v1/redaction-report-service-server-v1/pom.xml +++ b/redaction-report-service-v1/redaction-report-service-server-v1/pom.xml @@ -22,7 +22,7 @@ com.iqser.red.service configuration-service-api-v1 - 1.3.0 + 2.0.0 org.apache.poi diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/LegalBasisMappingClient.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/LegalBasisMappingClient.java index eebd915..98116e5 100644 --- a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/LegalBasisMappingClient.java +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/LegalBasisMappingClient.java @@ -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 { } \ No newline at end of file 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 3d1f756..07eb7c5 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 @@ -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; } diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/resources/application-dev.yml b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/resources/application-dev.yml new file mode 100644 index 0000000..5359a0d --- /dev/null +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/resources/application-dev.yml @@ -0,0 +1,5 @@ +server: + port: 8084 + + +configuration-service.url: "http://localhost:8081" \ No newline at end of file diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/resources/application.yml b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/resources/application.yml index fd788ad..da26dd2 100644 --- a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/resources/application.yml +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/resources/application.yml @@ -1,6 +1,8 @@ info: description: Redaction Report Server v1 +configuration-service.url: "http://configuration-service-v1:8080" + server: port: 8080 diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/test/java/com/iqser/red/service/redaction/report/v1/server/RedactionReportIntegrationTest.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/test/java/com/iqser/red/service/redaction/report/v1/server/RedactionReportIntegrationTest.java index aae14be..e953d7c 100644 --- a/redaction-report-service-v1/redaction-report-service-server-v1/src/test/java/com/iqser/red/service/redaction/report/v1/server/RedactionReportIntegrationTest.java +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/test/java/com/iqser/red/service/redaction/report/v1/server/RedactionReportIntegrationTest.java @@ -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);