From c65a93bf1b5b81c8b152e453928f628c043564db Mon Sep 17 00:00:00 2001 From: Kilian Schuettler Date: Mon, 23 Oct 2023 13:17:30 +0200 Subject: [PATCH 1/3] DM-285: flush add redaction removal * only remove add redactions --- .../service/DossierTemplateImportService.java | 6 +- .../ManualRedactionProviderService.java | 13 +- .../ManualRedactionService.java | 4 +- .../AddRedactionPersistenceService.java | 7 +- .../ForceRedactionPersistenceService.java | 2 + .../LegalBasisChangePersistenceService.java | 3 +- .../RecategorizationPersistenceService.java | 1 + .../RemoveRedactionPersistenceService.java | 2 +- .../ResizeRedactionPersistenceService.java | 1 + .../tests/ManualRedactionTest.java | 281 +++++++++++++++--- 10 files changed, 257 insertions(+), 63 deletions(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateImportService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateImportService.java index e76c7be4b..e0e467632 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateImportService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateImportService.java @@ -509,21 +509,21 @@ public class DossierTemplateImportService { } - private void setRulesWhenCompiled(ImportTemplateResult request, String dossierTemplateEntity) { + private void setRulesWhenCompiled(ImportTemplateResult request, String dossierTemplateId) { DroolsSyntaxValidation droolsSyntaxValidation = rulesValidationService.validateRules(RuleFileType.ENTITY, request.getRuleSet()); if (!droolsSyntaxValidation.isCompiled()) { droolsSyntaxValidation.getDroolsSyntaxErrorMessages().forEach(errorMessage -> log.error(errorMessage.getMessage())); throw new BadRequestException("The entity rules do not compile!"); } - rulesPersistenceService.setRules(request.getRuleSet(), dossierTemplateEntity, RuleFileType.ENTITY); + rulesPersistenceService.setRules(request.getRuleSet(), dossierTemplateId, RuleFileType.ENTITY); if (request.getComponentRuleSet() != null) { DroolsSyntaxValidation componentDroolsSyntaxValidation = rulesValidationService.validateRules(RuleFileType.COMPONENT, request.getComponentRuleSet()); if (!componentDroolsSyntaxValidation.isCompiled()) { componentDroolsSyntaxValidation.getDroolsSyntaxErrorMessages().forEach(errorMessage -> log.error(errorMessage.getMessage())); throw new BadRequestException("The component rules do not compile!"); } - rulesPersistenceService.setRules(request.getComponentRuleSet(), dossierTemplateEntity, RuleFileType.COMPONENT); + rulesPersistenceService.setRules(request.getComponentRuleSet(), dossierTemplateId, RuleFileType.COMPONENT); } } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionProviderService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionProviderService.java index 35b55aba0..ba268ed99 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionProviderService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionProviderService.java @@ -11,6 +11,7 @@ import java.util.stream.Collectors; import org.springframework.dao.EmptyResultDataAccessException; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.CommentEntity; @@ -50,11 +51,14 @@ public class ManualRedactionProviderService { private final LegalBasisChangePersistenceService legalBasisChangePersistenceService; private final ResizeRedactionPersistenceService resizeRedactionPersistenceService; + + @Transactional public ManualRedactions getManualRedactions(String fileId) { return getManualRedactions(fileId, false); } + @Transactional public ManualRedactions getManualRedactions(String fileId, boolean unprocessed) { @@ -98,20 +102,13 @@ public class ManualRedactionProviderService { } - @Transactional - public ManualRedactionEntry getAddRedaction(String fileId, String annotationId) { - - return convert(addRedactionPersistenceService.findAddRedaction(fileId, annotationId), ManualRedactionEntry.class, new ManualRedactionMapper()); - } - - private Set convertEntriesToAdd(List source) { return source.stream().map(entry -> convert(entry, ManualRedactionEntry.class, new ManualRedactionMapper())).collect(Collectors.toSet()); } - @Transactional(noRollbackFor = {EmptyResultDataAccessException.class}) + @Transactional(noRollbackFor = {EmptyResultDataAccessException.class}, propagation = Propagation.REQUIRES_NEW) public void hardDeleteManualRedactions(String fileId, String annotationId) { addRedactionPersistenceService.hardDelete(fileId, annotationId); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionService.java index 0f9dc70b6..c5b5c656a 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionService.java @@ -113,6 +113,8 @@ public class ManualRedactionService { manualRedactionDictionaryUpdateHandler.validateDictionariesForDelete(removeRedactionRequest, removeRedactionRequest.getTypeToRemove(), removeRedactionRequest.getDossierTemplateId()); + + log.info("add removeRedaction for file {} and annotation {}", fileId, removeRedactionRequest.getAnnotationId()); removeRedactionPersistenceService.insert(fileId, removeRedactionRequest); if (manualAddRedactionsContains(manualRedactions, removeRedactionRequest.getAnnotationId())) { @@ -121,8 +123,6 @@ public class ManualRedactionService { continue; } - log.info("add removeRedaction for file {} and annotation {}", fileId, removeRedactionRequest.getAnnotationId()); - Long commentId = commentService.addCommentAndGetId(fileId, removeRedactionRequest.getAnnotationId(), removeRedactionRequest.getComment(), diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/AddRedactionPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/AddRedactionPersistenceService.java index 20e219cee..90626b899 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/AddRedactionPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/AddRedactionPersistenceService.java @@ -58,7 +58,6 @@ public class AddRedactionPersistenceService { } - public ManualRedactionEntryEntity findAddRedaction(String fileId, String annotationId) { return manualRedactionRepository.findAddRedaction(new AnnotationEntityId(annotationId, fileId)) @@ -66,9 +65,6 @@ public class AddRedactionPersistenceService { } - - - public List findAddRedactions(String fileId, boolean includeDeletions) { return manualRedactionRepository.findByFileIdIncludeDeletions(fileId, includeDeletions); @@ -80,6 +76,7 @@ public class AddRedactionPersistenceService { return manualRedactionRepository.findAll(); } + public List findUnprocessedRedactions(String fileId) { return manualRedactionRepository.findByFileIdAndUnprocessed(fileId); @@ -113,6 +110,7 @@ public class AddRedactionPersistenceService { manualRedactionRepository.updateStatus(new AnnotationEntityId(annotationId, fileId), annotationStatus, processedDate); } + @Transactional public void updateStatus(String fileId, String annotationId, @@ -131,7 +129,6 @@ public class AddRedactionPersistenceService { } - @Transactional public void approveStatusForRequestedRedactionsWithSameValue(Set fileIds, String value) { diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/ForceRedactionPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/ForceRedactionPersistenceService.java index 161f234a4..ee72380f9 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/ForceRedactionPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/ForceRedactionPersistenceService.java @@ -77,11 +77,13 @@ public class ForceRedactionPersistenceService { return new HashSet<>(forceRedactionRepository.findByFileIdIncludeDeletions(fileId, includeDeletions)); } + public Set findUnprocessedForceRedactions(String fileId) { return new HashSet<>(forceRedactionRepository.findByFileIdAndUnprocessed(fileId)); } + @Transactional public void markAsProcessed(String annotationId, String fileId) { diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/LegalBasisChangePersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/LegalBasisChangePersistenceService.java index f768c5628..51a82bc34 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/LegalBasisChangePersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/LegalBasisChangePersistenceService.java @@ -4,7 +4,6 @@ import java.time.OffsetDateTime; import java.time.temporal.ChronoUnit; import java.util.HashSet; import java.util.Set; -import java.util.stream.Collectors; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; @@ -43,6 +42,7 @@ public class LegalBasisChangePersistenceService { } + private void checkSection(String section) { if (!StringUtils.isEmpty(section) && section.length() > SECTION_MAX_LENGTH) { @@ -91,6 +91,7 @@ public class LegalBasisChangePersistenceService { return new HashSet<>(legalBasisChangeRepository.findByFileIdIncludeDeletions(fileId, includeDeletions)); } + public Set findUnprocessedLegalBasisChanges(String fileId) { return new HashSet<>(legalBasisChangeRepository.findUnprocessedByFileId(fileId)); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/RecategorizationPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/RecategorizationPersistenceService.java index 91c048508..b34602d2d 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/RecategorizationPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/RecategorizationPersistenceService.java @@ -99,6 +99,7 @@ public class RecategorizationPersistenceService { return recategorizationRepository.findByFileIdIncludeDeletions(fileId, includeDeletions); } + public List findUnprocessedRecategorizations(String fileId) { return recategorizationRepository.findUnprocessedByFileId(fileId); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/RemoveRedactionPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/RemoveRedactionPersistenceService.java index 3fd1d50ce..446338865 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/RemoveRedactionPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/RemoveRedactionPersistenceService.java @@ -5,7 +5,6 @@ import java.time.temporal.ChronoUnit; import java.util.HashSet; import java.util.List; import java.util.Set; -import java.util.stream.Collectors; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -54,6 +53,7 @@ public class RemoveRedactionPersistenceService { return new HashSet<>(removeRedactionRepository.findByFileIdIncludeDeletions(fileId, includeDeletions)); } + public Set findUnprocessedRemoveRedactions(String fileId) { return new HashSet<>(removeRedactionRepository.findByFileIdAndUnprocessed(fileId)); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/ResizeRedactionPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/ResizeRedactionPersistenceService.java index 91fa27a08..39cc50982 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/ResizeRedactionPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/ResizeRedactionPersistenceService.java @@ -93,6 +93,7 @@ public class ResizeRedactionPersistenceService { return resizeRedactionRepository.findByFileIdIncludeDeletions(fileId, includeDeletions); } + public List findUnprocessedResizeRedactions(String fileId) { return resizeRedactionRepository.findUnprocessedByFileId(fileId); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ManualRedactionTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ManualRedactionTest.java index fde66ae37..d57ee8b8f 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ManualRedactionTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ManualRedactionTest.java @@ -49,6 +49,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.manual.Lega import com.iqser.red.service.persistence.service.v1.api.shared.model.manual.RecategorizationRequestModel; import com.iqser.red.service.persistence.service.v1.api.shared.model.manual.RemoveRedactionRequestModel; import com.iqser.red.service.persistence.service.v1.api.shared.model.manual.ResizeRedactionRequestModel; +import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.Point; import feign.FeignException; @@ -117,7 +118,14 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { var entityLog = new EntityLog(1, 1, - List.of(EntityLogEntry.builder().id("AnnotationId").type(type.getType()).value("Luke Skywalker").entryType(EntryType.ENTITY).state(EntryState.APPLIED).dictionaryEntry(true).build()), + List.of(EntityLogEntry.builder() + .id("AnnotationId") + .type(type.getType()) + .value("Luke Skywalker") + .entryType(EntryType.ENTITY) + .state(EntryState.APPLIED) + .dictionaryEntry(true) + .build()), null, 0, 0, @@ -266,7 +274,14 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { var entityLog = new EntityLog(1, 1, - List.of(EntityLogEntry.builder().id("AnnotationId").type("test").value("Luke Skywalker").entryType(EntryType.ENTITY).state(EntryState.APPLIED).dictionaryEntry(true).build()), + List.of(EntityLogEntry.builder() + .id("AnnotationId") + .type("test") + .value("Luke Skywalker") + .entryType(EntryType.ENTITY) + .state(EntryState.APPLIED) + .dictionaryEntry(true) + .build()), null, 0, 0, @@ -314,7 +329,14 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { var entityLog = new EntityLog(1, 1, - List.of(EntityLogEntry.builder().id("AnnotationId").type("test").value("Luke Skywalker").entryType(EntryType.ENTITY).state(EntryState.APPLIED).dictionaryEntry(true).build()), + List.of(EntityLogEntry.builder() + .id("AnnotationId") + .type("test") + .value("Luke Skywalker") + .entryType(EntryType.ENTITY) + .state(EntryState.APPLIED) + .dictionaryEntry(true) + .build()), null, 0, 0, @@ -355,7 +377,14 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { var entityLog = new EntityLog(1, 1, - List.of(EntityLogEntry.builder().id("AnnotationId").type("test").value("Luke Skywalker").entryType(EntryType.ENTITY).state(EntryState.APPLIED).dictionaryEntry(true).build()), + List.of(EntityLogEntry.builder() + .id("AnnotationId") + .type("test") + .value("Luke Skywalker") + .entryType(EntryType.ENTITY) + .state(EntryState.APPLIED) + .dictionaryEntry(true) + .build()), null, 0, 0, @@ -488,9 +517,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { assertThat(loadedRedactionsFile1.getResizeRedactions()).hasSize(1); assertThat(loadedRedactionsFile1.getResizeRedactions().stream().toList().get(0).getValue()).isEqualTo("test redaction in dossier dictionary"); - var dictEntries = dictionaryManagementService.getAllEntriesInDossierTemplate(dossierTemplate.getId(), - "test redaction in dossier dictionary", - DictionaryEntryType.ENTRY); + var dictEntries = dictionaryManagementService.getAllEntriesInDossierTemplate(dossierTemplate.getId(), "test redaction in dossier dictionary", DictionaryEntryType.ENTRY); assertThat(dictEntries.stream().filter(dictionaryEntry -> dictionaryEntry.getValue().equals("test redaction in dossier dictionary"))).isNotEmpty(); var dictionaryOfTypeDosDictInDossier1 = dictionaryClient.getDictionaryForType(typeDosDict.getType(), dossier1.getDossierTemplateId(), dossier1.getId()); @@ -643,16 +670,12 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { assertThat(loadedRedactionsFile1.getResizeRedactions()).hasSize(1); assertThat(loadedRedactionsFile1.getResizeRedactions().stream().toList().get(0).getValue()).isEqualTo("test redaction in dossier"); - var dictEntriesOldValue = dictionaryManagementService.getAllEntriesInDossierTemplate(dossierTemplate.getId(), - "test redaction in dossier yayy", - DictionaryEntryType.ENTRY); + var dictEntriesOldValue = dictionaryManagementService.getAllEntriesInDossierTemplate(dossierTemplate.getId(), "test redaction in dossier yayy", DictionaryEntryType.ENTRY); assertThat(dictEntriesOldValue.stream() .filter(dictionaryEntry -> dictionaryEntry.getValue().equals("test redaction in dossier yayy") && dictionaryEntry.isDeleted())).hasSize(1); assertThat(dictEntriesOldValue.stream() .filter(dictionaryEntry -> dictionaryEntry.getValue().equals("test redaction in dossier yayy") && !dictionaryEntry.isDeleted())).hasSize(1); - var dictEntriesNewValue = dictionaryManagementService.getAllEntriesInDossierTemplate(dossierTemplate.getId(), - "test redaction in dossier", - DictionaryEntryType.ENTRY); + var dictEntriesNewValue = dictionaryManagementService.getAllEntriesInDossierTemplate(dossierTemplate.getId(), "test redaction in dossier", DictionaryEntryType.ENTRY); assertThat(dictEntriesNewValue.stream().filter(dictionaryEntry -> dictionaryEntry.getValue().equals("test redaction in dossier"))).isNotEmpty(); var dictionaryOfTypeDosDictInDossier1 = dictionaryClient.getDictionaryForType(typeDosDict.getType(), dossier1.getDossierTemplateId(), dossier1.getId()); @@ -1040,7 +1063,14 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { var annotationId = "AnnotationId"; var entityLog = new EntityLog(1, 1, - List.of(EntityLogEntry.builder().id(annotationId).type(type.getType()).value(lukeSkywalker).dictionaryEntry(true).entryType(EntryType.ENTITY).state(EntryState.APPLIED).build()), + List.of(EntityLogEntry.builder() + .id(annotationId) + .type(type.getType()) + .value(lukeSkywalker) + .dictionaryEntry(true) + .entryType(EntryType.ENTITY) + .state(EntryState.APPLIED) + .build()), null, 0, 0, @@ -1110,7 +1140,14 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { var annotationId = "AnnotationId"; var entityLog = new EntityLog(1, 1, - List.of(EntityLogEntry.builder().id(annotationId).type(type.getType()).value(lukeSkywalker).dictionaryEntry(true).entryType(EntryType.ENTITY).state(EntryState.APPLIED).build()), + List.of(EntityLogEntry.builder() + .id(annotationId) + .type(type.getType()) + .value(lukeSkywalker) + .dictionaryEntry(true) + .entryType(EntryType.ENTITY) + .state(EntryState.APPLIED) + .build()), null, 0, 0, @@ -1147,6 +1184,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { assertThat(dossierDictionary2.getEntries()).isEmpty(); } + @Test public void testUnprocessedManualRedactionsAddRedaction() { @@ -1180,9 +1218,15 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { assertEquals(unprocessedManualRedactions.getEntriesToAdd().size(), 1); assertTrue(unprocessedManualRedactions.getEntriesToAdd().stream().anyMatch(entry -> entry.getValue().equals("Luke Skywalker"))); - fileProcessingClient.analysisSuccessful(dossier.getId(), file.getId(), AnalyzeResult.builder() - .manualRedactions(allManualRedactions) - .messageType(MessageType.ANALYSE).analysisVersion(0).fileId(file.getId()).dossierId(dossier.getId()).build()); + fileProcessingClient.analysisSuccessful(dossier.getId(), + file.getId(), + AnalyzeResult.builder() + .manualRedactions(allManualRedactions) + .messageType(MessageType.ANALYSE) + .analysisVersion(0) + .fileId(file.getId()) + .dossierId(dossier.getId()) + .build()); manualRedactionClient.addRedactionBulk(dossier.getId(), file.getId(), @@ -1209,9 +1253,15 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { assertTrue(unprocessedManualRedactions.getEntriesToAdd().stream().anyMatch(entry -> entry.getValue().equals("Skywalker Luke"))); assertTrue(unprocessedManualRedactions.getEntriesToAdd().stream().noneMatch(entry -> entry.getValue().equals("Luke Skywalker"))); - fileProcessingClient.analysisSuccessful(dossier.getId(), file.getId(), AnalyzeResult.builder() - .manualRedactions(allManualRedactions) - .messageType(MessageType.ANALYSE).analysisVersion(1).fileId(file.getId()).dossierId(dossier.getId()).build()); + fileProcessingClient.analysisSuccessful(dossier.getId(), + file.getId(), + AnalyzeResult.builder() + .manualRedactions(allManualRedactions) + .messageType(MessageType.ANALYSE) + .analysisVersion(1) + .fileId(file.getId()) + .dossierId(dossier.getId()) + .build()); allManualRedactions = manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false); assertEquals(allManualRedactions.getEntriesToAdd().size(), 2); @@ -1224,6 +1274,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("Luke Skywalker"), false, dossier.getId(), DictionaryEntryType.ENTRY); } + @Test public void testUnprocessedManualRedactionsRemoveRedaction() { @@ -1237,8 +1288,22 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { var entityLog = new EntityLog(1, 1, - List.of(EntityLogEntry.builder().id("AnnotationId").type(type.getType()).value("Anakin").entryType(EntryType.ENTITY).state(EntryState.APPLIED).dictionaryEntry(false).build(), - EntityLogEntry.builder().id("AnnotationId2").type(type.getType()).value("Anakin2").entryType(EntryType.ENTITY).state(EntryState.APPLIED).dictionaryEntry(false).build()), + List.of(EntityLogEntry.builder() + .id("AnnotationId") + .type(type.getType()) + .value("Anakin") + .entryType(EntryType.ENTITY) + .state(EntryState.APPLIED) + .dictionaryEntry(false) + .build(), + EntityLogEntry.builder() + .id("AnnotationId2") + .type(type.getType()) + .value("Anakin2") + .entryType(EntryType.ENTITY) + .state(EntryState.APPLIED) + .dictionaryEntry(false) + .build()), null, 0, 0, @@ -1262,7 +1327,13 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { fileProcessingClient.analysisSuccessful(dossier.getId(), file.getId(), - AnalyzeResult.builder().manualRedactions(allManualRedactions).messageType(MessageType.ANALYSE).analysisVersion(0).fileId(file.getId()).dossierId(dossier.getId()).build()); + AnalyzeResult.builder() + .manualRedactions(allManualRedactions) + .messageType(MessageType.ANALYSE) + .analysisVersion(0) + .fileId(file.getId()) + .dossierId(dossier.getId()) + .build()); manualRedactionClient.removeRedactionBulk(dossier.getId(), file.getId(), @@ -1280,7 +1351,13 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { fileProcessingClient.analysisSuccessful(dossier.getId(), file.getId(), - AnalyzeResult.builder().manualRedactions(allManualRedactions).messageType(MessageType.ANALYSE).analysisVersion(1).fileId(file.getId()).dossierId(dossier.getId()).build()); + AnalyzeResult.builder() + .manualRedactions(allManualRedactions) + .messageType(MessageType.ANALYSE) + .analysisVersion(1) + .fileId(file.getId()) + .dossierId(dossier.getId()) + .build()); allManualRedactions = manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false); assertEquals(allManualRedactions.getIdsToRemove().size(), 2); @@ -1291,6 +1368,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { assertTrue(unprocessedManualRedactions.getIdsToRemove().isEmpty()); } + @Test public void testUnprocessedManualRedactionsForceRedaction() { @@ -1312,7 +1390,13 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { fileProcessingClient.analysisSuccessful(dossier.getId(), file.getId(), - AnalyzeResult.builder().manualRedactions(allManualRedactions).messageType(MessageType.ANALYSE).analysisVersion(0).fileId(file.getId()).dossierId(dossier.getId()).build()); + AnalyzeResult.builder() + .manualRedactions(allManualRedactions) + .messageType(MessageType.ANALYSE) + .analysisVersion(0) + .fileId(file.getId()) + .dossierId(dossier.getId()) + .build()); manualRedactionClient.forceRedactionBulk(dossier.getId(), file.getId(), @@ -1330,7 +1414,13 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { fileProcessingClient.analysisSuccessful(dossier.getId(), file.getId(), - AnalyzeResult.builder().manualRedactions(allManualRedactions).messageType(MessageType.ANALYSE).analysisVersion(1).fileId(file.getId()).dossierId(dossier.getId()).build()); + AnalyzeResult.builder() + .manualRedactions(allManualRedactions) + .messageType(MessageType.ANALYSE) + .analysisVersion(1) + .fileId(file.getId()) + .dossierId(dossier.getId()) + .build()); allManualRedactions = manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false); assertEquals(allManualRedactions.getForceRedactions().size(), 2); @@ -1341,8 +1431,9 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { assertTrue(unprocessedManualRedactions.getForceRedactions().isEmpty()); } - @Test - public void testUnprocessedManualRedactionsRecategorizations() { + + @Test + public void testUnprocessedManualRedactionsRecategorizations() { var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate(); var dossier = dossierTesterAndProvider.provideTestDossier(dossierTemplate); @@ -1354,8 +1445,22 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { var entityLog = new EntityLog(1, 1, - List.of(EntityLogEntry.builder().id("dv").type(type.getType()).value("Darth Vader").entryType(EntryType.ENTITY).state(EntryState.APPLIED).dictionaryEntry(false).build(), - EntityLogEntry.builder().id("dv2").type(type.getType()).value("Vader Darth").entryType(EntryType.ENTITY).state(EntryState.APPLIED).dictionaryEntry(false).build()), + List.of(EntityLogEntry.builder() + .id("dv") + .type(type.getType()) + .value("Darth Vader") + .entryType(EntryType.ENTITY) + .state(EntryState.APPLIED) + .dictionaryEntry(false) + .build(), + EntityLogEntry.builder() + .id("dv2") + .type(type.getType()) + .value("Vader Darth") + .entryType(EntryType.ENTITY) + .state(EntryState.APPLIED) + .dictionaryEntry(false) + .build()), null, 0, 0, @@ -1365,9 +1470,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { when(entityLogService.getEntityLog(Mockito.any(), Mockito.any())).thenReturn(entityLog); - manualRedactionClient.recategorizeBulk(dossier.getId(), - file.getId(), - Set.of(RecategorizationRequestModel.builder().annotationId("dv").build())); + manualRedactionClient.recategorizeBulk(dossier.getId(), file.getId(), Set.of(RecategorizationRequestModel.builder().annotationId("dv").build())); var allManualRedactions = manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false); assertEquals(allManualRedactions.getRecategorizations().size(), 1); @@ -1379,11 +1482,15 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { fileProcessingClient.analysisSuccessful(dossier.getId(), file.getId(), - AnalyzeResult.builder().manualRedactions(allManualRedactions).messageType(MessageType.ANALYSE).analysisVersion(0).fileId(file.getId()).dossierId(dossier.getId()).build()); + AnalyzeResult.builder() + .manualRedactions(allManualRedactions) + .messageType(MessageType.ANALYSE) + .analysisVersion(0) + .fileId(file.getId()) + .dossierId(dossier.getId()) + .build()); - manualRedactionClient.recategorizeBulk(dossier.getId(), - file.getId(), - Set.of(RecategorizationRequestModel.builder().annotationId("dv2").build())); + manualRedactionClient.recategorizeBulk(dossier.getId(), file.getId(), Set.of(RecategorizationRequestModel.builder().annotationId("dv2").build())); allManualRedactions = manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false); assertEquals(allManualRedactions.getRecategorizations().size(), 2); @@ -1397,7 +1504,13 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { fileProcessingClient.analysisSuccessful(dossier.getId(), file.getId(), - AnalyzeResult.builder().manualRedactions(allManualRedactions).messageType(MessageType.ANALYSE).analysisVersion(1).fileId(file.getId()).dossierId(dossier.getId()).build()); + AnalyzeResult.builder() + .manualRedactions(allManualRedactions) + .messageType(MessageType.ANALYSE) + .analysisVersion(1) + .fileId(file.getId()) + .dossierId(dossier.getId()) + .build()); allManualRedactions = manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false); assertEquals(allManualRedactions.getRecategorizations().size(), 2); @@ -1408,6 +1521,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { assertTrue(unprocessedManualRedactions.getRecategorizations().isEmpty()); } + @Test public void testUnprocessedManualRedactionsLegalBasisChanges() { @@ -1421,8 +1535,22 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { var entityLog = new EntityLog(1, 1, - List.of(EntityLogEntry.builder().id("AnnotationId").type(type.getType()).value("Luke Skywalker").entryType(EntryType.ENTITY).state(EntryState.APPLIED).dictionaryEntry(false).build(), - EntityLogEntry.builder().id("AnnotationId2").type(type.getType()).value("Skywalker Luke").entryType(EntryType.ENTITY).state(EntryState.APPLIED).dictionaryEntry(false).build()), + List.of(EntityLogEntry.builder() + .id("AnnotationId") + .type(type.getType()) + .value("Luke Skywalker") + .entryType(EntryType.ENTITY) + .state(EntryState.APPLIED) + .dictionaryEntry(false) + .build(), + EntityLogEntry.builder() + .id("AnnotationId2") + .type(type.getType()) + .value("Skywalker Luke") + .entryType(EntryType.ENTITY) + .state(EntryState.APPLIED) + .dictionaryEntry(false) + .build()), null, 0, 0, @@ -1446,7 +1574,13 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { fileProcessingClient.analysisSuccessful(dossier.getId(), file.getId(), - AnalyzeResult.builder().manualRedactions(allManualRedactions).messageType(MessageType.ANALYSE).analysisVersion(0).fileId(file.getId()).dossierId(dossier.getId()).build()); + AnalyzeResult.builder() + .manualRedactions(allManualRedactions) + .messageType(MessageType.ANALYSE) + .analysisVersion(0) + .fileId(file.getId()) + .dossierId(dossier.getId()) + .build()); manualRedactionClient.legalBasisChangeBulk(dossier.getId(), file.getId(), @@ -1464,7 +1598,13 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { fileProcessingClient.analysisSuccessful(dossier.getId(), file.getId(), - AnalyzeResult.builder().manualRedactions(allManualRedactions).messageType(MessageType.ANALYSE).analysisVersion(1).fileId(file.getId()).dossierId(dossier.getId()).build()); + AnalyzeResult.builder() + .manualRedactions(allManualRedactions) + .messageType(MessageType.ANALYSE) + .analysisVersion(1) + .fileId(file.getId()) + .dossierId(dossier.getId()) + .build()); allManualRedactions = manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false); assertEquals(allManualRedactions.getLegalBasisChanges().size(), 2); @@ -1475,4 +1615,59 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { assertTrue(unprocessedManualRedactions.getResizeRedactions().isEmpty()); } + + @Test + public void testRemoveManualRedactionEntityRemovesAllManualRedactions() { + + var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate(); + var dossier = dossierTesterAndProvider.provideTestDossier(dossierTemplate); + var file = fileTesterAndProvider.testAndProvideFile(dossier); + String type = "manual"; + String value = "Luke Skywalker"; + var manualAddResponse = manualRedactionClient.addRedactionBulk(dossier.getId(), + file.getId(), + Set.of(AddRedactionRequestModel.builder() + .sourceId("sourceId") + .type(type) + .value(value) + .reason("Reason") + .positions(List.of(new Rectangle(new Point(0, 0), 100, 100, 0))) + .build())).get(0); + String annotationId = manualAddResponse.getAnnotationId(); + var entityLog = new EntityLog(1, + 1, + List.of(EntityLogEntry.builder().id(annotationId).type(type).value(value).entryType(EntryType.ENTITY).state(EntryState.APPLIED).dictionaryEntry(false).build()), + null, + 0, + 0, + 0, + 0); + fileManagementStorageService.storeJSONObject(dossier.getId(), file.getId(), FileType.ENTITY_LOG, entityLog); + + when(entityLogService.getEntityLog(Mockito.any(), Mockito.any())).thenReturn(entityLog); + + assertEquals(1, manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false).getEntriesToAdd().size()); + assertEquals(annotationId, + manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false).getEntriesToAdd().stream().findFirst().orElseThrow().getAnnotationId()); + manualRedactionClient.legalBasisChangeBulk(dossier.getId(), + file.getId(), + Set.of(LegalBasisChangeRequestModel.builder().annotationId(annotationId).legalBasis("some legal basis").build())); + manualRedactionClient.forceRedactionBulk(dossier.getId(), file.getId(), Set.of(ForceRedactionRequestModel.builder().annotationId(annotationId).build())); + manualRedactionClient.recategorizeBulk(dossier.getId(), file.getId(), Set.of(RecategorizationRequestModel.builder().annotationId(annotationId).type("other type").build())); + manualRedactionClient.resizeRedactionBulk(dossier.getId(), + file.getId(), + Set.of(ResizeRedactionRequestModel.builder() + .annotationId(annotationId) + .value("Luke Skywalker and some more text") + .positions(List.of(new Rectangle(new Point(10, 10), 100, 100, 1))) + .build())); + manualRedactionClient.removeRedactionBulk(dossier.getId(), file.getId(), Set.of(RemoveRedactionRequestModel.builder().annotationId(annotationId).build())); + assertTrue(manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false).getEntriesToAdd().isEmpty()); + assertTrue(manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false).getLegalBasisChanges().isEmpty()); + assertTrue(manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false).getForceRedactions().isEmpty()); + assertTrue(manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false).getRecategorizations().isEmpty()); + assertTrue(manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false).getResizeRedactions().isEmpty()); + assertEquals(1, manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false).getIdsToRemove().size()); + } + } -- 2.47.2 From 58e66f920caf161f1b1e05e45f612b4f464fedc7 Mon Sep 17 00:00:00 2001 From: Kilian Schuettler Date: Mon, 23 Oct 2023 13:54:26 +0200 Subject: [PATCH 2/3] DM-285: change fields of comments --- .../v1/processor/service/CommentService.java | 11 ++++++++++- .../ManualRedactionProviderService.java | 15 ++++++--------- .../v1/api/shared/model/annotations/Comment.java | 3 +-- 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/CommentService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/CommentService.java index 6288f59c7..667b22792 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/CommentService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/CommentService.java @@ -4,6 +4,7 @@ import java.time.OffsetDateTime; import java.time.temporal.ChronoUnit; import java.util.List; import java.util.Map; +import java.util.function.BiConsumer; import java.util.stream.Collectors; import org.apache.commons.lang3.StringUtils; @@ -66,7 +67,13 @@ public class CommentService { return new Comments(commentPersistenceService.findCommentsByFileID(fileId, false) .entrySet() .stream() - .collect(Collectors.toMap(Map.Entry::getKey, entry -> MagicConverter.convert(entry.getValue(), Comment.class)))); + .collect(Collectors.toMap(Map.Entry::getKey, entry -> MagicConverter.convert(entry.getValue(), Comment.class, getDeltaMapper())))); + } + + + private static BiConsumer getDeltaMapper() { + + return (c1, c2) -> c2.setUserId(c1.getUser()); } @@ -96,6 +103,7 @@ public class CommentService { return createdComment; } + private void checkComment(String text) { if (!StringUtils.isEmpty(text) && text.length() > COMMENT_MAX_LENGTH) { @@ -103,6 +111,7 @@ public class CommentService { } } + public Long addCommentAndGetId(String fileId, String annotationId, String comment, String user) { if (comment == null) { diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionProviderService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionProviderService.java index ba268ed99..130dd4eac 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionProviderService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionProviderService.java @@ -2,10 +2,8 @@ package com.iqser.red.service.persistence.management.v1.processor.service.manual import static com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter.convert; -import java.util.HashMap; import java.util.HashSet; import java.util.List; -import java.util.Map; import java.util.Set; import java.util.stream.Collectors; @@ -14,8 +12,8 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; -import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.CommentEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualRedactionEntryEntity; +import com.iqser.red.service.persistence.management.v1.processor.service.CommentService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.annotations.AddRedactionPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.annotations.CommentPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.annotations.ForceRedactionPersistenceService; @@ -26,7 +24,7 @@ import com.iqser.red.service.persistence.management.v1.processor.service.persist import com.iqser.red.service.persistence.management.v1.processor.utils.ManualImageRecategorizationMapper; import com.iqser.red.service.persistence.management.v1.processor.utils.ManualRedactionMapper; import com.iqser.red.service.persistence.management.v1.processor.utils.ManualResizeRedactionMapper; -import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.Comment; +import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.Comments; import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.ManualRedactions; import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.IdRemoval; import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualForceRedaction; @@ -47,6 +45,7 @@ public class ManualRedactionProviderService { private final RemoveRedactionPersistenceService removeRedactionPersistenceService; private final ForceRedactionPersistenceService forceRedactionPersistenceService; private final CommentPersistenceService commentPersistenceService; + private final CommentService commentService; private final RecategorizationPersistenceService recategorizationPersistenceService; private final LegalBasisChangePersistenceService legalBasisChangePersistenceService; private final ResizeRedactionPersistenceService resizeRedactionPersistenceService; @@ -93,12 +92,10 @@ public class ManualRedactionProviderService { new ManualResizeRedactionMapper())); } - Map> commentEntities = commentPersistenceService.findCommentsByFileID(fileId, false); + // deprecated anyway, remove as soon as UI uses EntityLog + Comments comments = commentService.getComments(fileId); - Map> comments = new HashMap<>(); - commentEntities.forEach((s, c) -> comments.put(s, convert(c, Comment.class))); - - return new ManualRedactions(removals, entriesToAdd, forceRedactions, recategorizations, legalBasisChanges, resizeRedactions, comments); + return new ManualRedactions(removals, entriesToAdd, forceRedactions, recategorizations, legalBasisChanges, resizeRedactions, comments.getComments()); } diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/annotations/Comment.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/annotations/Comment.java index c19d853a8..e57b29464 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/annotations/Comment.java +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/annotations/Comment.java @@ -15,10 +15,9 @@ public class Comment { private long id; private String fileId; - private String annotationId; private OffsetDateTime date; private String text; - private String user; + private String userId; private OffsetDateTime softDeletedTime; } -- 2.47.2 From c831eb70256292b8126358351b4c87049f202def Mon Sep 17 00:00:00 2001 From: Kilian Schuettler Date: Mon, 23 Oct 2023 14:10:46 +0200 Subject: [PATCH 3/3] DM-285: resolve circular dependecies --- .../management/v1/processor/service/CommentService.java | 8 ++++++-- .../manualredactions/ManualRedactionProviderService.java | 4 +--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/CommentService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/CommentService.java index 667b22792..aab36449d 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/CommentService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/CommentService.java @@ -31,8 +31,6 @@ public class CommentService { CommentPersistenceService commentPersistenceService; FileStatusPersistenceService fileStatusPersistenceService; - FileStatusService fileStatusService; - FileManagementStorageService fileManagementStorageService; private final int COMMENT_MAX_LENGTH = 4000; @@ -137,6 +135,12 @@ public class CommentService { .build()); } + + public void hardDelete(String fileId, String annotationId) { + + commentPersistenceService.hardDelete(fileId, annotationId); + } + // // private void reprocess(String dossierId, String fileId) { // diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionProviderService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionProviderService.java index 130dd4eac..aea854c40 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionProviderService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionProviderService.java @@ -15,7 +15,6 @@ import org.springframework.transaction.annotation.Transactional; import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualRedactionEntryEntity; import com.iqser.red.service.persistence.management.v1.processor.service.CommentService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.annotations.AddRedactionPersistenceService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.annotations.CommentPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.annotations.ForceRedactionPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.annotations.LegalBasisChangePersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.annotations.RecategorizationPersistenceService; @@ -44,7 +43,6 @@ public class ManualRedactionProviderService { private final AddRedactionPersistenceService addRedactionPersistenceService; private final RemoveRedactionPersistenceService removeRedactionPersistenceService; private final ForceRedactionPersistenceService forceRedactionPersistenceService; - private final CommentPersistenceService commentPersistenceService; private final CommentService commentService; private final RecategorizationPersistenceService recategorizationPersistenceService; private final LegalBasisChangePersistenceService legalBasisChangePersistenceService; @@ -114,7 +112,7 @@ public class ManualRedactionProviderService { recategorizationPersistenceService.hardDelete(fileId, annotationId); legalBasisChangePersistenceService.hardDelete(fileId, annotationId); resizeRedactionPersistenceService.hardDelete(fileId, annotationId); - commentPersistenceService.hardDelete(fileId, annotationId); + commentService.hardDelete(fileId, annotationId); } } -- 2.47.2