From ae52b2b4aa4697802ce87d07dd0418917a6150cf Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Mon, 6 Dec 2021 14:10:59 +0200 Subject: [PATCH] force redact fix --- .../v1/server/redaction/service/ReanalyzeService.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/ReanalyzeService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/ReanalyzeService.java index 172cae85..661fe4d1 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/ReanalyzeService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/ReanalyzeService.java @@ -215,7 +215,15 @@ public class ReanalyzeService { if (!local && analyzeRequest.getManualRedactions() != null) { - var idsToRemove = analyzeRequest.getManualRedactions().getIdsToRemove().stream().map(IdRemoval::getId).collect(Collectors.toSet()); + + var approvedForceRedactions = analyzeRequest.getManualRedactions().getForceRedacts().stream().filter(fr -> fr.getStatus() == Status.APPROVED).collect(Collectors.toList()); + // only approved id removals, that haven't been forced back afterwards + var idsToRemove = analyzeRequest.getManualRedactions().getIdsToRemove().stream() + .filter(idr -> idr.getStatus() == Status.APPROVED) + .filter(idr -> approvedForceRedactions.stream().noneMatch(forceRedact -> forceRedact.getRequestDate().isAfter(idr.getRequestDate()))) + .map(IdRemoval::getId).collect(Collectors.toSet()); + + log.info("Removed Ids: {}", idsToRemove); if (reanalysisSection.getImages() != null && !reanalysisSection.getImages().isEmpty() && analyzeRequest.getManualRedactions().getImageRecategorizations() != null) { for (Image image : reanalysisSection.getImages()) {