Pull request #508: RED-4901: Return empty redactionLog for excluded files

Merge in RED/persistence-service from RED-4901 to master

* commit '526111280facf86a459fc2d65f0096d295cadf92':
  RED-4901: Return empty redactionLog for excluded files
This commit is contained in:
Dominique Eiflaender 2022-08-03 15:58:49 +02:00
commit ebe540b7c8

View File

@ -1,5 +1,13 @@
package com.iqser.red.service.peristence.v1.server.service;
import java.time.OffsetDateTime;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import com.iqser.red.service.peristence.v1.server.client.RedactionClient;
import com.iqser.red.service.peristence.v1.server.controller.DictionaryController;
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
@ -9,14 +17,9 @@ 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.RedactionRequest;
import com.iqser.red.service.redaction.v1.model.SectionGrid;
import feign.FeignException;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import java.time.OffsetDateTime;
import java.util.Iterator;
import java.util.List;
@Service
@RequiredArgsConstructor
@ -30,13 +33,15 @@ public class RedactionLogService {
private final DictionaryController dictionaryController;
public RedactionLog getRedactionLog(String dossierId, String fileId, boolean withManualRedactions, boolean includeFalsePositives) {
public RedactionLog getRedactionLog(String dossierId, String fileId, boolean withManualRedactions,
boolean includeFalsePositives) {
return getRedactionLog(dossierId, fileId, null, withManualRedactions, includeFalsePositives);
}
public RedactionLog getRedactionLog(String dossierId, String fileId, List<String> excludedTypes, boolean withManualRedactions, boolean includeFalsePositives) {
public RedactionLog getRedactionLog(String dossierId, String fileId, List<String> excludedTypes,
boolean withManualRedactions, boolean includeFalsePositives) {
var fileStatus = fileStatusService.getStatus(fileId);
@ -71,6 +76,10 @@ public class RedactionLogService {
redactionLog = fileManagementStorageService.getRedactionLog(dossierId, fileId);
}
if (fileStatus.isExcluded()) {
redactionLog.setRedactionLogEntry(new ArrayList<>());
}
if (excludedTypes != null) {
redactionLog.getRedactionLogEntry().removeIf(nextEntry -> excludedTypes.contains(nextEntry.getType()));
}
@ -85,7 +94,8 @@ public class RedactionLogService {
}
public RedactionLog getFilteredRedactionLog(String dossierId, String fileId, FilteredRedactionLogRequest filteredRedactionLogRequest) {
public RedactionLog getFilteredRedactionLog(String dossierId, String fileId,
FilteredRedactionLogRequest filteredRedactionLogRequest) {
if (filteredRedactionLogRequest.getSpecifiedDate() == null) {
filteredRedactionLogRequest.setSpecifiedDate(OffsetDateTime.MIN);
@ -99,19 +109,24 @@ public class RedactionLogService {
var redactionLogEntry = it.next();
boolean isAfterSpecifiedDate = false;
for (var change : redactionLogEntry.getChanges()) {
if (change.getDateTime() != null && change.getDateTime().isAfter(filteredRedactionLogRequest.getSpecifiedDate())) {
if (change.getDateTime() != null && change.getDateTime()
.isAfter(filteredRedactionLogRequest.getSpecifiedDate())) {
isAfterSpecifiedDate = true;
}
}
for (var manualChange : redactionLogEntry.getManualChanges()) {
if (manualChange.getProcessedDate() != null && manualChange.getProcessedDate().isAfter(filteredRedactionLogRequest.getSpecifiedDate()) || manualChange.getRequestedDate() != null && manualChange.getRequestedDate().isAfter(filteredRedactionLogRequest.getSpecifiedDate())) {
if (manualChange.getProcessedDate() != null && manualChange.getProcessedDate()
.isAfter(filteredRedactionLogRequest.getSpecifiedDate()) || manualChange.getRequestedDate() != null && manualChange.getRequestedDate()
.isAfter(filteredRedactionLogRequest.getSpecifiedDate())) {
isAfterSpecifiedDate = true;
}
}
var comments = redactionLogEntry.getComments();
if (comments != null) {
for (var comment : comments) {
if (comment.getSoftDeletedTime() != null && comment.getSoftDeletedTime().isAfter(filteredRedactionLogRequest.getSpecifiedDate()) || comment.getDate() != null && comment.getDate().isAfter(filteredRedactionLogRequest.getSpecifiedDate())) {
if (comment.getSoftDeletedTime() != null && comment.getSoftDeletedTime()
.isAfter(filteredRedactionLogRequest.getSpecifiedDate()) || comment.getDate() != null && comment.getDate()
.isAfter(filteredRedactionLogRequest.getSpecifiedDate())) {
isAfterSpecifiedDate = true;
}
}
@ -126,5 +141,4 @@ public class RedactionLogService {
return redactionLog;
}
}