From 3145195d63b3a5c7b4ad00baf59bc289eeb33d73 Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Tue, 21 Dec 2021 11:05:47 +0200 Subject: [PATCH] skip remove from dict entries from merge --- .../service/RedactionLogMergeService.java | 77 ++++++++----------- 1 file changed, 31 insertions(+), 46 deletions(-) diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/RedactionLogMergeService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/RedactionLogMergeService.java index 175947eb..c08b16ed 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/RedactionLogMergeService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/RedactionLogMergeService.java @@ -1,36 +1,17 @@ package com.iqser.red.service.redaction.v1.server.redaction.service; -import java.time.OffsetDateTime; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.stream.Collectors; - -import org.springframework.stereotype.Service; - -import com.iqser.red.service.persistence.service.v1.api.model.annotations.AnnotationStatus; -import com.iqser.red.service.persistence.service.v1.api.model.annotations.Comment; -import com.iqser.red.service.persistence.service.v1.api.model.annotations.IdRemoval; -import com.iqser.red.service.persistence.service.v1.api.model.annotations.ManualForceRedaction; -import com.iqser.red.service.persistence.service.v1.api.model.annotations.ManualImageRecategorization; -import com.iqser.red.service.persistence.service.v1.api.model.annotations.ManualLegalBasisChange; -import com.iqser.red.service.persistence.service.v1.api.model.annotations.ManualRedactionEntry; -import com.iqser.red.service.persistence.service.v1.api.model.annotations.ManualRedactions; -import com.iqser.red.service.persistence.service.v1.api.model.annotations.ManualResizeRedaction; -import com.iqser.red.service.redaction.v1.model.ManualRedactionType; -import com.iqser.red.service.redaction.v1.model.Point; +import com.iqser.red.service.persistence.service.v1.api.model.annotations.*; import com.iqser.red.service.redaction.v1.model.Rectangle; -import com.iqser.red.service.redaction.v1.model.RedactionLog; -import com.iqser.red.service.redaction.v1.model.RedactionLogEntry; -import com.iqser.red.service.redaction.v1.model.SectionGrid; - +import com.iqser.red.service.redaction.v1.model.*; import lombok.AllArgsConstructor; import lombok.Data; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.time.OffsetDateTime; +import java.util.*; +import java.util.stream.Collectors; @Slf4j @Service @@ -166,28 +147,32 @@ public class RedactionLogMergeService { if (mrw.getItem() instanceof IdRemoval) { var manualRemoval = (IdRemoval) mrw.getItem(); - String manualOverrideReason = null; - if (manualRemoval.getStatus().equals(AnnotationStatus.APPROVED)) { - redactionLogEntry.setRedacted(false); - redactionLogEntry.setStatus(AnnotationStatus.APPROVED); - manualOverrideReason = mergeReasonIfNecessary(redactionLogEntry.getReason(), ", removed by manual override"); - redactionLogEntry.setColor(getColor(redactionLogEntry.getType(), dossierTemplateId, false, redactionLogEntry.isRedacted(), true)); - redactionLogEntry.setHint(false); - redactionLogEntry.setHasBeenRemovedByManualOverride(true); - } else if (manualRemoval.getStatus().equals(AnnotationStatus.REQUESTED)) { - manualOverrideReason = mergeReasonIfNecessary(redactionLogEntry.getReason(), ", requested to remove"); - redactionLogEntry.setStatus(AnnotationStatus.REQUESTED); - redactionLogEntry.setColor(getColor(redactionLogEntry.getType(), dossierTemplateId, true, redactionLogEntry.isRedacted(), false)); + if (manualRemoval.getStatus().equals(AnnotationStatus.APPROVED) && (manualRemoval.isRemoveFromDictionary() || (manualRemoval.isRemoveFromDictionary()))) { + log.info("Skipping merge for dictionary-modifying entry"); } else { - redactionLogEntry.setStatus(AnnotationStatus.DECLINED); - } + String manualOverrideReason = null; + if (manualRemoval.getStatus().equals(AnnotationStatus.APPROVED)) { + redactionLogEntry.setRedacted(false); + redactionLogEntry.setStatus(AnnotationStatus.APPROVED); + manualOverrideReason = mergeReasonIfNecessary(redactionLogEntry.getReason(), ", removed by manual override"); + redactionLogEntry.setColor(getColor(redactionLogEntry.getType(), dossierTemplateId, false, redactionLogEntry.isRedacted(), true)); + redactionLogEntry.setHint(false); + redactionLogEntry.setHasBeenRemovedByManualOverride(true); + } else if (manualRemoval.getStatus().equals(AnnotationStatus.REQUESTED)) { + manualOverrideReason = mergeReasonIfNecessary(redactionLogEntry.getReason(), ", requested to remove"); + redactionLogEntry.setStatus(AnnotationStatus.REQUESTED); + redactionLogEntry.setColor(getColor(redactionLogEntry.getType(), dossierTemplateId, true, redactionLogEntry.isRedacted(), false)); + } else { + redactionLogEntry.setStatus(AnnotationStatus.DECLINED); + } - redactionLogEntry.setReason(manualOverrideReason); - redactionLogEntry.setManual(true); - redactionLogEntry.setManualRedactionUserId(manualRemoval.getUser()); - redactionLogEntry.setManualRedactionType(ManualRedactionType.REMOVE); - redactionLogEntry.setDictionaryEntry(manualRemoval.isRemoveFromDictionary()); - redactionLogEntry.setDossierDictionaryEntry(manualRemoval.isRemoveFromDictionary()); + redactionLogEntry.setReason(manualOverrideReason); + redactionLogEntry.setManual(true); + redactionLogEntry.setManualRedactionUserId(manualRemoval.getUser()); + redactionLogEntry.setManualRedactionType(ManualRedactionType.REMOVE); + redactionLogEntry.setDictionaryEntry(manualRemoval.isRemoveFromDictionary()); + redactionLogEntry.setDossierDictionaryEntry(manualRemoval.isRemoveFromDictionary()); + } } if (mrw.getItem() instanceof ManualForceRedaction) {