From 409437fbd6d095ce6b6565b602b455ac714b6f35 Mon Sep 17 00:00:00 2001 From: Ali Oezyetimoglu Date: Mon, 24 Apr 2023 19:20:50 +0200 Subject: [PATCH 1/9] RED-6098: Changed check for skipped entries in report for not having Ignored Hints and Removed published information --- .../report/v1/server/service/RedactionLogConverterService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/RedactionLogConverterService.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/RedactionLogConverterService.java index fa7be26..f71e6ff 100644 --- a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/RedactionLogConverterService.java +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/RedactionLogConverterService.java @@ -82,7 +82,7 @@ public class RedactionLogConverterService { List reportEntries = new ArrayList<>(); redactionLog.getRedactionLogEntry().forEach(entry -> { - var isSkipped = !entry.isRedacted() && !entry.isHint() && !entry.isManuallyRemoved(); + var isSkipped = !entry.isRedacted() && !entry.isHint() && !entry.getType().equals("hint_only") && !entry.getType().equals("published_information"); if (entry.isRedacted() || isSkipped) { if (entry.lastChangeIsRemoved()) { From 7958a7a5ac0be9143ca348aa7efe1ef43e0bd218 Mon Sep 17 00:00:00 2001 From: Ali Oezyetimoglu Date: Tue, 25 Apr 2023 19:31:14 +0200 Subject: [PATCH 2/9] RED-6098: Added methods to get types which are hint and changed check for skipped entries in report accordingly --- .../service/RedactionLogConverterService.java | 30 +++++++++++++++++-- .../RedactionReportIntegrationTest.java | 22 +++++++------- 2 files changed, 38 insertions(+), 14 deletions(-) diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/RedactionLogConverterService.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/RedactionLogConverterService.java index f71e6ff..53de784 100644 --- a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/RedactionLogConverterService.java +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/RedactionLogConverterService.java @@ -5,9 +5,11 @@ import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; +import java.util.stream.Collectors; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; @@ -56,7 +58,7 @@ public class RedactionLogConverterService { } var legalBasisMappings = redactionLog.getLegalBasis(); - return convertAndSort(redactionLog, legalBasisMappings, mapOfEntityDisplayName); + return convertAndSort(redactionLog, legalBasisMappings, mapOfEntityDisplayName, dossierId); } @@ -77,12 +79,17 @@ public class RedactionLogConverterService { } - public List convertAndSort(RedactionLog redactionLog, List legalBasisMappings, Map mapOfEntityDisplayName) { + public List convertAndSort(RedactionLog redactionLog, + List legalBasisMappings, + Map mapOfEntityDisplayName, + String dossierId) { List reportEntries = new ArrayList<>(); + var allTypes = dictionaryClient.getAllTypesForDossier(dossierId, false); + redactionLog.getRedactionLogEntry().forEach(entry -> { - var isSkipped = !entry.isRedacted() && !entry.isHint() && !entry.getType().equals("hint_only") && !entry.getType().equals("published_information"); + var isSkipped = !entry.isRedacted() && !entry.isHint() && !isHintType(allTypes, entry.getType()); if (entry.isRedacted() || isSkipped) { if (entry.lastChangeIsRemoved()) { @@ -199,4 +206,21 @@ public class RedactionLogConverterService { return "Text on page " + position.getPage(); } + + /* + This method catches types like hint_only or published_information + */ + private boolean isHintType(List types, String type) { + + var matchingTypes = getMatchingTypes(types, type); + Optional foundType = matchingTypes.stream().findFirst(); + return foundType.map(Type::isHint).orElse(false); + } + + + private List getMatchingTypes(List types, String type) { + + return types.stream().filter(t -> t.getType().equals(type)).collect(Collectors.toList()); + } + } 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 9af5354..43e7937 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 @@ -124,7 +124,7 @@ public class RedactionReportIntegrationTest { RedactionLog redactionLog = objectMapper.readValue(new ClassPathResource("files/redactionLog.json").getInputStream(), RedactionLog.class); List legalBasisMapping = objectMapper.readValue(new ClassPathResource("files/legalBasisMapping.json").getInputStream(), new TypeReference<>() { }); - List reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping, new HashMap<>()); + List reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping, new HashMap<>(), null); var wordTemplateResource = new ClassPathResource("templates/Justification Appendix A1.docx"); var imageResource = new ClassPathResource("files/exampleImage.jpg"); @@ -161,7 +161,7 @@ public class RedactionReportIntegrationTest { RedactionLog redactionLog = objectMapper.readValue(new ClassPathResource("files/redactionLog.json").getInputStream(), RedactionLog.class); List legalBasisMapping = objectMapper.readValue(new ClassPathResource("files/legalBasisMapping.json").getInputStream(), new TypeReference<>() { }); - List reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping, new HashMap<>()); + List reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping, new HashMap<>(), null); var wordTemplateResource = new ClassPathResource("templates/Justification Appendix A2.docx"); var imageResource = new ClassPathResource("files/exampleImage.jpg"); @@ -198,7 +198,7 @@ public class RedactionReportIntegrationTest { RedactionLog redactionLog = objectMapper.readValue(new ClassPathResource("files/redactionLog.json").getInputStream(), RedactionLog.class); List legalBasisMapping = objectMapper.readValue(new ClassPathResource("files/legalBasisMapping.json").getInputStream(), new TypeReference<>() { }); - List reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping, new HashMap<>()); + List reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping, new HashMap<>(), null); FileModel fileStatus = FileModel.builder().filename("filename").build(); Dossier dossier = Dossier.builder().dossierName("dossierName").build(); @@ -224,7 +224,7 @@ public class RedactionReportIntegrationTest { RedactionLog redactionLog = objectMapper.readValue(new ClassPathResource("files/redactionLog.json").getInputStream(), RedactionLog.class); List legalBasisMapping = objectMapper.readValue(new ClassPathResource("files/legalBasisMapping.json").getInputStream(), new TypeReference<>() { }); - List reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping, new HashMap<>()); + List reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping, new HashMap<>(), null); FileModel fileStatus = FileModel.builder().filename("filename").build(); Dossier dossier = Dossier.builder().dossierName("dossierName").build(); @@ -250,10 +250,10 @@ public class RedactionReportIntegrationTest { RedactionLog redactionLog = objectMapper.readValue(new ClassPathResource("files/redactionLog.json").getInputStream(), RedactionLog.class); List legalBasisMapping = objectMapper.readValue(new ClassPathResource("files/legalBasisMapping.json").getInputStream(), new TypeReference<>() { }); - List reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping, new HashMap<>()); + List reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping, new HashMap<>(), null); RedactionLog redactionLogSecondFile = objectMapper.readValue(new ClassPathResource("files/excelReportRedactionLog.json").getInputStream(), RedactionLog.class); - List reportEntriesSecondFile = redactionLogConverterService.convertAndSort(redactionLogSecondFile, legalBasisMapping, new HashMap<>()); + List reportEntriesSecondFile = redactionLogConverterService.convertAndSort(redactionLogSecondFile, legalBasisMapping, new HashMap<>(), null); FileModel fileModelSecondFile = FileModel.builder().filename("secondFile").build(); FileModel fileStatus = FileModel.builder().filename("filename").build(); @@ -281,7 +281,7 @@ public class RedactionReportIntegrationTest { RedactionLog redactionLog = objectMapper.readValue(new ClassPathResource("files/redactionLog.json").getInputStream(), RedactionLog.class); List legalBasisMapping = objectMapper.readValue(new ClassPathResource("files/legalBasisMapping.json").getInputStream(), new TypeReference<>() { }); - List reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping, new HashMap<>()); + List reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping, new HashMap<>(), null); var wordTemplateResource = new ClassPathResource("templates/6464 appendix_b EFSA dRAR justification.docx"); var imageResource = new ClassPathResource("files/exampleImage.jpg"); @@ -319,7 +319,7 @@ public class RedactionReportIntegrationTest { List legalBasisMapping = objectMapper.readValue(new ClassPathResource("files/legalBasisMapping.json").getInputStream(), new TypeReference<>() { }); Map mapOfEntityDisplayName = createEntityDisplayNames(redactionLog); - List reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping, mapOfEntityDisplayName); + List reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping, mapOfEntityDisplayName, null); FileModel fileModel = FileModel.builder().filename("filename").fileAttributes(Map.of("TestAttribute", "Lorem Ipsum")).build(); @@ -349,7 +349,7 @@ public class RedactionReportIntegrationTest { List legalBasisMapping = objectMapper.readValue(new ClassPathResource("files/legalBasisMapping.json").getInputStream(), new TypeReference<>() { }); Map mapOfEntityDisplayName = createEntityDisplayNames(redactionLog); - List reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping, mapOfEntityDisplayName); + List reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping, mapOfEntityDisplayName, null); FileModel fileModel = FileModel.builder().filename("filename").build(); @@ -364,7 +364,7 @@ public class RedactionReportIntegrationTest { excelTemplateReportGenerationService.generateExcelReport(reportEntries, placeholders, "test", writeWorkbook, "dossierName", fileModel, excelModel, false); RedactionLog redactionLogSecondFile = objectMapper.readValue(new ClassPathResource("files/excelReportRedactionLog.json").getInputStream(), RedactionLog.class); - List reportEntriesSecondFile = redactionLogConverterService.convertAndSort(redactionLogSecondFile, legalBasisMapping, mapOfEntityDisplayName); + List reportEntriesSecondFile = redactionLogConverterService.convertAndSort(redactionLogSecondFile, legalBasisMapping, mapOfEntityDisplayName, null); FileModel fileModelSecondFile = FileModel.builder().filename("secondFile").build(); excelTemplateReportGenerationService.generateExcelReport(reportEntriesSecondFile, placeholders, @@ -390,7 +390,7 @@ public class RedactionReportIntegrationTest { List legalBasisMapping = objectMapper.readValue(new ClassPathResource("files/legalBasisMapping.json").getInputStream(), new TypeReference<>() { }); Map mapOfEntityDisplayName = createEntityDisplayNames(redactionLog); - List reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping, mapOfEntityDisplayName); + List reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping, mapOfEntityDisplayName, null); var imageResource = new ClassPathResource("files/exampleImage.jpg"); FileModel fileModel = FileModel.builder().filename("filename").build(); From 0fe4a1230709760534a3b32e8d74ba9adbbb10d6 Mon Sep 17 00:00:00 2001 From: Ali Oezyetimoglu Date: Tue, 25 Apr 2023 19:51:38 +0200 Subject: [PATCH 3/9] RED-6098: Added methods to get types which are hint and changed check for skipped entries in report accordingly --- .../v1/server/service/RedactionLogConverterService.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/RedactionLogConverterService.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/RedactionLogConverterService.java index 53de784..b68d182 100644 --- a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/RedactionLogConverterService.java +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/RedactionLogConverterService.java @@ -29,7 +29,9 @@ import com.iqser.red.storage.commons.exception.StorageObjectDoesNotExist; import io.micrometer.core.annotation.Timed; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +@Slf4j @Service @RequiredArgsConstructor public class RedactionLogConverterService { @@ -89,6 +91,8 @@ public class RedactionLogConverterService { var allTypes = dictionaryClient.getAllTypesForDossier(dossierId, false); redactionLog.getRedactionLogEntry().forEach(entry -> { + log.info("AAAA: {}", entry.getType()); + log.info("BBBB: {}", !isHintType(allTypes, entry.getType())); var isSkipped = !entry.isRedacted() && !entry.isHint() && !isHintType(allTypes, entry.getType()); if (entry.isRedacted() || isSkipped) { @@ -214,6 +218,8 @@ public class RedactionLogConverterService { var matchingTypes = getMatchingTypes(types, type); Optional foundType = matchingTypes.stream().findFirst(); + log.info("CCCC: {}, {}", foundType, matchingTypes); + log.info("DDDD: {}", foundType.map(Type::isHint).orElse(false)); return foundType.map(Type::isHint).orElse(false); } From 9cdf039e1265322aa560a3c6e05fd82202f5851f Mon Sep 17 00:00:00 2001 From: Ali Oezyetimoglu Date: Tue, 25 Apr 2023 21:17:08 +0200 Subject: [PATCH 4/9] RED-6098: Added methods to get types which are hint and changed check for skipped entries in report accordingly --- .../report/v1/server/service/RedactionLogConverterService.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/RedactionLogConverterService.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/RedactionLogConverterService.java index b68d182..f621dbc 100644 --- a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/RedactionLogConverterService.java +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/RedactionLogConverterService.java @@ -91,8 +91,7 @@ public class RedactionLogConverterService { var allTypes = dictionaryClient.getAllTypesForDossier(dossierId, false); redactionLog.getRedactionLogEntry().forEach(entry -> { - log.info("AAAA: {}", entry.getType()); - log.info("BBBB: {}", !isHintType(allTypes, entry.getType())); + log.info("AAAA: {}, {}", entry.getType(), allTypes); var isSkipped = !entry.isRedacted() && !entry.isHint() && !isHintType(allTypes, entry.getType()); if (entry.isRedacted() || isSkipped) { From 84df7e596062e1609b594a1ad8ff1212c344a2af Mon Sep 17 00:00:00 2001 From: Ali Oezyetimoglu Date: Tue, 25 Apr 2023 21:24:19 +0200 Subject: [PATCH 5/9] RED-6098: Added logs for debugging --- .../report/v1/server/service/RedactionLogConverterService.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/RedactionLogConverterService.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/RedactionLogConverterService.java index f621dbc..c41c51f 100644 --- a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/RedactionLogConverterService.java +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/RedactionLogConverterService.java @@ -89,9 +89,10 @@ public class RedactionLogConverterService { List reportEntries = new ArrayList<>(); var allTypes = dictionaryClient.getAllTypesForDossier(dossierId, false); + log.info("AAAA: {}", allTypes); redactionLog.getRedactionLogEntry().forEach(entry -> { - log.info("AAAA: {}, {}", entry.getType(), allTypes); + log.info("BBBB: {}, {}", entry.getType(), allTypes); var isSkipped = !entry.isRedacted() && !entry.isHint() && !isHintType(allTypes, entry.getType()); if (entry.isRedacted() || isSkipped) { From 8bf1336d23293ff6bf812d51250aee715a4ccaac Mon Sep 17 00:00:00 2001 From: Ali Oezyetimoglu Date: Tue, 25 Apr 2023 21:32:34 +0200 Subject: [PATCH 6/9] RED-6098: Added logs for debugging --- .../report/v1/server/service/RedactionLogConverterService.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/RedactionLogConverterService.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/RedactionLogConverterService.java index c41c51f..de64516 100644 --- a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/RedactionLogConverterService.java +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/RedactionLogConverterService.java @@ -88,7 +88,8 @@ public class RedactionLogConverterService { List reportEntries = new ArrayList<>(); - var allTypes = dictionaryClient.getAllTypesForDossier(dossierId, false); + var dossier = dossierClient.getDossierById(dossierId, false, false); + var allTypes = dictionaryClient.getAllTypesForDossierTemplate(dossier.getDossierTemplateId(), false); log.info("AAAA: {}", allTypes); redactionLog.getRedactionLogEntry().forEach(entry -> { From 26efabe83e978934dadd8c82832718ead2370b67 Mon Sep 17 00:00:00 2001 From: Ali Oezyetimoglu Date: Tue, 25 Apr 2023 21:35:18 +0200 Subject: [PATCH 7/9] RED-6098: Added logs for debugging --- .../report/v1/server/service/RedactionLogConverterService.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/RedactionLogConverterService.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/RedactionLogConverterService.java index de64516..d44bf97 100644 --- a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/RedactionLogConverterService.java +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/RedactionLogConverterService.java @@ -88,8 +88,7 @@ public class RedactionLogConverterService { List reportEntries = new ArrayList<>(); - var dossier = dossierClient.getDossierById(dossierId, false, false); - var allTypes = dictionaryClient.getAllTypesForDossierTemplate(dossier.getDossierTemplateId(), false); + var allTypes = dictionaryClient.getAllTypesForDossierTemplate(dossierClient.getDossierById(dossierId, false, false).getDossierTemplateId(), false); log.info("AAAA: {}", allTypes); redactionLog.getRedactionLogEntry().forEach(entry -> { From 6746a933780a25d220feba7aa217971b81106b08 Mon Sep 17 00:00:00 2001 From: Ali Oezyetimoglu Date: Tue, 25 Apr 2023 22:47:09 +0200 Subject: [PATCH 8/9] RED-6098: fixed tests --- .../service/RedactionLogConverterService.java | 5 ++ .../RedactionReportIntegrationTest.java | 87 ++++++++++++------- .../RedactionReportV2IntegrationTest.java | 1 + 3 files changed, 62 insertions(+), 31 deletions(-) diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/RedactionLogConverterService.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/RedactionLogConverterService.java index d44bf97..e031571 100644 --- a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/RedactionLogConverterService.java +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/RedactionLogConverterService.java @@ -88,6 +88,11 @@ public class RedactionLogConverterService { List reportEntries = new ArrayList<>(); +// try { +// var dossier = dossierClient.getDossierById(dossierId, false, false); +// } catch (NullPointerException e) { +// throw new +// } var allTypes = dictionaryClient.getAllTypesForDossierTemplate(dossierClient.getDossierById(dossierId, false, false).getDossierTemplateId(), false); log.info("AAAA: {}", allTypes); 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 43e7937..e8b9823 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 @@ -10,6 +10,7 @@ import static com.iqser.red.service.redaction.report.v1.server.service.Placehold import static com.iqser.red.service.redaction.report.v1.server.service.PlaceholderService.SEEDS_FUNCTION_JUSTIFICATION_PLACEHOLDER; import static com.iqser.red.service.redaction.report.v1.server.service.PlaceholderService.SEEDS_FUNCTION_REDACTION_GROUPED_BY_JUSTIFICATION_PAGES_PLACEHOLDER; import static com.iqser.red.service.redaction.report.v1.server.utils.OsUtils.getTemporaryDirectory; +import static org.mockito.Mockito.when; import java.io.FileOutputStream; import java.util.ArrayList; @@ -49,6 +50,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlo import com.iqser.red.service.redaction.report.v1.server.client.DictionaryClient; import com.iqser.red.service.redaction.report.v1.server.client.DossierAttributesClient; import com.iqser.red.service.redaction.report.v1.server.client.DossierAttributesConfigClient; +import com.iqser.red.service.redaction.report.v1.server.client.DossierClient; import com.iqser.red.service.redaction.report.v1.server.client.FileAttributesConfigClient; import com.iqser.red.service.redaction.report.v1.server.client.ReportTemplateClient; import com.iqser.red.service.redaction.report.v1.server.configuration.MessagingConfiguration; @@ -116,21 +118,37 @@ public class RedactionReportIntegrationTest { @MockBean private DictionaryClient dictionaryClient; + @MockBean + private DossierClient dossierClient; + + + @SneakyThrows + private Dossier prepareDossier() { + + var testDossier = new Dossier(); + testDossier.setDossierName("Test Dossier"); + testDossier.setDossierTemplateId("dossierTemplateId"); + testDossier.setId("dossierId"); + + when(dossierClient.getDossierById("dossierId", false, false)).thenReturn(testDossier); + return testDossier; + } @Test @SneakyThrows public void testWordJustificationAppendixA1() { + Dossier dossier = prepareDossier(); + FileModel fileModel = FileModel.builder().filename("filename").build(); + RedactionLog redactionLog = objectMapper.readValue(new ClassPathResource("files/redactionLog.json").getInputStream(), RedactionLog.class); List legalBasisMapping = objectMapper.readValue(new ClassPathResource("files/legalBasisMapping.json").getInputStream(), new TypeReference<>() { }); - List reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping, new HashMap<>(), null); + List reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping, new HashMap<>(), dossier.getDossierId()); var wordTemplateResource = new ClassPathResource("templates/Justification Appendix A1.docx"); var imageResource = new ClassPathResource("files/exampleImage.jpg"); - Dossier dossier = Dossier.builder().dossierName("dossierName").build(); - FileModel fileModel = FileModel.builder().filename("filename").build(); var placeholders = buildPlaceHolderModel(Map.of("{{dossier.attribute.ActiveSubstance}}", "Aktive Substanz \n Test Return", @@ -158,17 +176,17 @@ public class RedactionReportIntegrationTest { @SneakyThrows public void testWordJustificationAppendixA2() { + Dossier dossier = prepareDossier(); + FileModel fileModel = FileModel.builder().filename("filename").build(); + RedactionLog redactionLog = objectMapper.readValue(new ClassPathResource("files/redactionLog.json").getInputStream(), RedactionLog.class); List legalBasisMapping = objectMapper.readValue(new ClassPathResource("files/legalBasisMapping.json").getInputStream(), new TypeReference<>() { }); - List reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping, new HashMap<>(), null); + List reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping, new HashMap<>(), dossier.getDossierId()); var wordTemplateResource = new ClassPathResource("templates/Justification Appendix A2.docx"); var imageResource = new ClassPathResource("files/exampleImage.jpg"); - Dossier dossier = Dossier.builder().dossierName("dossierName").build(); - FileModel fileModel = FileModel.builder().filename("filename").build(); - var placeholders = buildPlaceHolderModel(Map.of("{{dossier.attribute.ActiveSubstance}}", "Aktive Substanz \n Test Return", "{{dossier.attribute.RapporteurMemberState}}", @@ -195,13 +213,13 @@ public class RedactionReportIntegrationTest { @SneakyThrows public void testWordIUCLIDFile() { + Dossier dossier = prepareDossier(); + FileModel fileStatus = FileModel.builder().filename("filename").build(); + RedactionLog redactionLog = objectMapper.readValue(new ClassPathResource("files/redactionLog.json").getInputStream(), RedactionLog.class); List legalBasisMapping = objectMapper.readValue(new ClassPathResource("files/legalBasisMapping.json").getInputStream(), new TypeReference<>() { }); - List reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping, new HashMap<>(), null); - - FileModel fileStatus = FileModel.builder().filename("filename").build(); - Dossier dossier = Dossier.builder().dossierName("dossierName").build(); + List reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping, new HashMap<>(), dossier.getDossierId()); ClassPathResource templateResource = new ClassPathResource("templates/IUCLID_Template.docx"); XWPFDocument doc = new XWPFDocument(templateResource.getInputStream()); @@ -221,13 +239,13 @@ public class RedactionReportIntegrationTest { @SneakyThrows public void testWordSeedReportSingleFile() { + Dossier dossier = prepareDossier(); + FileModel fileStatus = FileModel.builder().filename("filename").build(); + RedactionLog redactionLog = objectMapper.readValue(new ClassPathResource("files/redactionLog.json").getInputStream(), RedactionLog.class); List legalBasisMapping = objectMapper.readValue(new ClassPathResource("files/legalBasisMapping.json").getInputStream(), new TypeReference<>() { }); - List reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping, new HashMap<>(), null); - - FileModel fileStatus = FileModel.builder().filename("filename").build(); - Dossier dossier = Dossier.builder().dossierName("dossierName").build(); + List reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping, new HashMap<>(), dossier.getDossierId()); ClassPathResource templateResource = new ClassPathResource("templates/Seeds - New Justification Form.docx"); XWPFDocument doc = new XWPFDocument(templateResource.getInputStream()); @@ -247,17 +265,17 @@ public class RedactionReportIntegrationTest { @SneakyThrows public void testWordSeedReportMultiFile() { + Dossier dossier = prepareDossier(); + + FileModel fileStatus = FileModel.builder().filename("filename").build(); RedactionLog redactionLog = objectMapper.readValue(new ClassPathResource("files/redactionLog.json").getInputStream(), RedactionLog.class); List legalBasisMapping = objectMapper.readValue(new ClassPathResource("files/legalBasisMapping.json").getInputStream(), new TypeReference<>() { }); - List reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping, new HashMap<>(), null); + List reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping, new HashMap<>(), dossier.getDossierId()); - RedactionLog redactionLogSecondFile = objectMapper.readValue(new ClassPathResource("files/excelReportRedactionLog.json").getInputStream(), RedactionLog.class); - List reportEntriesSecondFile = redactionLogConverterService.convertAndSort(redactionLogSecondFile, legalBasisMapping, new HashMap<>(), null); FileModel fileModelSecondFile = FileModel.builder().filename("secondFile").build(); - - FileModel fileStatus = FileModel.builder().filename("filename").build(); - Dossier dossier = Dossier.builder().dossierName("dossierName").build(); + RedactionLog redactionLogSecondFile = objectMapper.readValue(new ClassPathResource("files/excelReportRedactionLog.json").getInputStream(), RedactionLog.class); + List reportEntriesSecondFile = redactionLogConverterService.convertAndSort(redactionLogSecondFile, legalBasisMapping, new HashMap<>(), dossier.getDossierId()); ClassPathResource templateResource = new ClassPathResource("templates/Seeds-NewJustificationForm.docx"); XWPFDocument doc = new XWPFDocument(templateResource.getInputStream()); @@ -278,17 +296,17 @@ public class RedactionReportIntegrationTest { @SneakyThrows public void testWord6464JustificationAppendix() { + Dossier dossier = prepareDossier(); + FileModel fileModel = FileModel.builder().filename("filename").build(); + RedactionLog redactionLog = objectMapper.readValue(new ClassPathResource("files/redactionLog.json").getInputStream(), RedactionLog.class); List legalBasisMapping = objectMapper.readValue(new ClassPathResource("files/legalBasisMapping.json").getInputStream(), new TypeReference<>() { }); - List reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping, new HashMap<>(), null); + List reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping, new HashMap<>(), dossier.getDossierId()); var wordTemplateResource = new ClassPathResource("templates/6464 appendix_b EFSA dRAR justification.docx"); var imageResource = new ClassPathResource("files/exampleImage.jpg"); - Dossier dossier = Dossier.builder().dossierName("dossierName").build(); - FileModel fileModel = FileModel.builder().filename("filename").build(); - var placeholders = buildPlaceHolderModel(Map.of("{{dossier.attribute.ActiveSubstance}}", "Aktive Substanz \n Test Return", "{{dossier.attribute.RapporteurMemberState}}", @@ -315,13 +333,15 @@ public class RedactionReportIntegrationTest { @SneakyThrows public void testExcelTemplateReportGenerationSingleFile() { + Dossier dossier = prepareDossier(); + FileModel fileModel = FileModel.builder().filename("filename").dossierId(dossier.getDossierId()).fileAttributes(Map.of("TestAttribute", "Lorem Ipsum")).build(); + RedactionLog redactionLog = objectMapper.readValue(new ClassPathResource("files/redactionLogWithManualRedactions.json").getInputStream(), RedactionLog.class); List legalBasisMapping = objectMapper.readValue(new ClassPathResource("files/legalBasisMapping.json").getInputStream(), new TypeReference<>() { }); Map mapOfEntityDisplayName = createEntityDisplayNames(redactionLog); - List reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping, mapOfEntityDisplayName, null); + List reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping, mapOfEntityDisplayName, dossier.getDossierId()); - FileModel fileModel = FileModel.builder().filename("filename").fileAttributes(Map.of("TestAttribute", "Lorem Ipsum")).build(); ClassPathResource templateResource = new ClassPathResource("templates/Excel Report.xlsx"); @@ -331,7 +351,7 @@ public class RedactionReportIntegrationTest { var excelModel = excelTemplateReportGenerationService.calculateExcelModel(readWorkbook.getSheetAt(0)); SXSSFWorkbook writeWorkbook = new SXSSFWorkbook(); writeWorkbook.createSheet("Sheet1"); - excelTemplateReportGenerationService.generateExcelReport(reportEntries, placeholders, "test", writeWorkbook, "dossierName", fileModel, excelModel, true); + excelTemplateReportGenerationService.generateExcelReport(reportEntries, placeholders, "test", writeWorkbook, dossier.getDossierName(), fileModel, excelModel, true); byte[] excelTemplateReport3 = excelTemplateReportGenerationService.toByteArray(writeWorkbook); try (FileOutputStream fileOutputStream = new FileOutputStream(getTemporaryDirectory() + "/Excel Report_justification.xlsx")) { @@ -345,11 +365,12 @@ public class RedactionReportIntegrationTest { @SneakyThrows public void testExcelTemplateReportGenerationMultiFile() { + Dossier dossier = prepareDossier(); RedactionLog redactionLog = objectMapper.readValue(new ClassPathResource("files/redactionLog.json").getInputStream(), RedactionLog.class); List legalBasisMapping = objectMapper.readValue(new ClassPathResource("files/legalBasisMapping.json").getInputStream(), new TypeReference<>() { }); Map mapOfEntityDisplayName = createEntityDisplayNames(redactionLog); - List reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping, mapOfEntityDisplayName, null); + List reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping, mapOfEntityDisplayName, dossier.getDossierId()); FileModel fileModel = FileModel.builder().filename("filename").build(); @@ -364,7 +385,7 @@ public class RedactionReportIntegrationTest { excelTemplateReportGenerationService.generateExcelReport(reportEntries, placeholders, "test", writeWorkbook, "dossierName", fileModel, excelModel, false); RedactionLog redactionLogSecondFile = objectMapper.readValue(new ClassPathResource("files/excelReportRedactionLog.json").getInputStream(), RedactionLog.class); - List reportEntriesSecondFile = redactionLogConverterService.convertAndSort(redactionLogSecondFile, legalBasisMapping, mapOfEntityDisplayName, null); + List reportEntriesSecondFile = redactionLogConverterService.convertAndSort(redactionLogSecondFile, legalBasisMapping, mapOfEntityDisplayName, dossier.getDossierId()); FileModel fileModelSecondFile = FileModel.builder().filename("secondFile").build(); excelTemplateReportGenerationService.generateExcelReport(reportEntriesSecondFile, placeholders, @@ -386,11 +407,12 @@ public class RedactionReportIntegrationTest { @SneakyThrows public void testExcelPlaceholders() { + Dossier dossier = prepareDossier(); RedactionLog redactionLog = objectMapper.readValue(new ClassPathResource("files/redactionLog.json").getInputStream(), RedactionLog.class); List legalBasisMapping = objectMapper.readValue(new ClassPathResource("files/legalBasisMapping.json").getInputStream(), new TypeReference<>() { }); Map mapOfEntityDisplayName = createEntityDisplayNames(redactionLog); - List reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping, mapOfEntityDisplayName, null); + List reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping, mapOfEntityDisplayName, dossier.getDossierId()); var imageResource = new ClassPathResource("files/exampleImage.jpg"); FileModel fileModel = FileModel.builder().filename("filename").build(); @@ -418,10 +440,13 @@ public class RedactionReportIntegrationTest { Type t1 = new Type(); t1.setLabel("Type 1"); + t1.setType("Type 1"); Type t2 = new Type(); t2.setLabel("Type 2"); + t2.setType("Type 2"); Type t3 = new Type(); t3.setLabel("Type 3"); + t3.setType("Type 3"); List ednList = new ArrayList<>(Arrays.asList(t1, t2, t3)); Mockito.when(dictionaryClient.getAllTypesForDossier(Mockito.anyString(), Mockito.anyBoolean())).thenReturn(ednList); Mockito.when(dictionaryClient.getAllTypesForDossierTemplate(Mockito.any(), Mockito.anyBoolean())).thenReturn(ednList); diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/test/java/com/iqser/red/service/redaction/report/v1/server/RedactionReportV2IntegrationTest.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/test/java/com/iqser/red/service/redaction/report/v1/server/RedactionReportV2IntegrationTest.java index f42c628..bcac01e 100644 --- a/redaction-report-service-v1/redaction-report-service-server-v1/src/test/java/com/iqser/red/service/redaction/report/v1/server/RedactionReportV2IntegrationTest.java +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/test/java/com/iqser/red/service/redaction/report/v1/server/RedactionReportV2IntegrationTest.java @@ -128,6 +128,7 @@ public class RedactionReportV2IntegrationTest { testDossier.setId("dossierId"); when(dossierClient.getDossierById("dossierId", true, false)).thenReturn(testDossier); + when(dossierClient.getDossierById("dossierId", false, false)).thenReturn(testDossier); var testDossierAttributes = new ArrayList(); testDossierAttributes.add(DossierAttribute.builder().dossierId("dossierId").dossierAttributeConfigId("testDossierAttribute").value("Dossier Attribute Value").build()); From 29c57a02b1f7812e65d99e1aee55bc793f9ec99f Mon Sep 17 00:00:00 2001 From: Ali Oezyetimoglu Date: Tue, 25 Apr 2023 22:58:44 +0200 Subject: [PATCH 9/9] RED-6098: removed logs for debugging --- .../server/service/RedactionLogConverterService.java | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/RedactionLogConverterService.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/RedactionLogConverterService.java index e031571..6b5d3ef 100644 --- a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/RedactionLogConverterService.java +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/RedactionLogConverterService.java @@ -29,9 +29,7 @@ import com.iqser.red.storage.commons.exception.StorageObjectDoesNotExist; import io.micrometer.core.annotation.Timed; import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -@Slf4j @Service @RequiredArgsConstructor public class RedactionLogConverterService { @@ -88,16 +86,9 @@ public class RedactionLogConverterService { List reportEntries = new ArrayList<>(); -// try { -// var dossier = dossierClient.getDossierById(dossierId, false, false); -// } catch (NullPointerException e) { -// throw new -// } var allTypes = dictionaryClient.getAllTypesForDossierTemplate(dossierClient.getDossierById(dossierId, false, false).getDossierTemplateId(), false); - log.info("AAAA: {}", allTypes); redactionLog.getRedactionLogEntry().forEach(entry -> { - log.info("BBBB: {}, {}", entry.getType(), allTypes); var isSkipped = !entry.isRedacted() && !entry.isHint() && !isHintType(allTypes, entry.getType()); if (entry.isRedacted() || isSkipped) { @@ -223,8 +214,6 @@ public class RedactionLogConverterService { var matchingTypes = getMatchingTypes(types, type); Optional foundType = matchingTypes.stream().findFirst(); - log.info("CCCC: {}, {}", foundType, matchingTypes); - log.info("DDDD: {}", foundType.map(Type::isHint).orElse(false)); return foundType.map(Type::isHint).orElse(false); }