Merge branch 'RED-8615' into 'master'

RED-8615: fix for state PENDING

Closes RED-8615

See merge request redactmanager/redaction-report-service!55
This commit is contained in:
Kilian Schüttler 2024-03-04 15:26:22 +01:00
commit 9c1320a03e
2 changed files with 13 additions and 36 deletions

View File

@ -6,7 +6,6 @@ import java.util.HashSet;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@ -15,8 +14,6 @@ import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.Change;
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.ChangeType;
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntityLog;
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntityLogEntry;
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntityLogLegalBasis;
@ -31,7 +28,6 @@ import com.iqser.red.service.redaction.report.v1.server.client.DossierClient;
import com.iqser.red.service.redaction.report.v1.server.client.EntityLogClient;
import com.iqser.red.service.redaction.report.v1.server.model.ReportRedactionEntry;
import com.iqser.red.service.redaction.report.v1.server.settings.ReportTemplateSettings;
import com.iqser.red.service.redaction.report.v1.server.storage.ReportStorageService;
import com.iqser.red.storage.commons.exception.StorageObjectDoesNotExist;
import io.micrometer.core.annotation.Timed;
@ -47,8 +43,6 @@ public class EntityLogConverterService {
private final DictionaryClient dictionaryClient;
private final ReportStorageService reportStorageService;
private final EntityLogClient entityLogClient;
private final ReportTemplateSettings settings;
@ -102,7 +96,7 @@ public class EntityLogConverterService {
entityLog.getEntityLogEntry()
.forEach(entry -> {
if (entry.getState().equals(EntryState.REMOVED)) {
if (!entry.getState().equals(EntryState.APPLIED)) {
return;
}
@ -122,21 +116,11 @@ public class EntityLogConverterService {
return;
}
// This is due to recategorize on images leading to a wrong legal basis.
if (!entry.getManualChanges().isEmpty()
&& (entry.getEntryType() == EntryType.IMAGE || entry.getEntryType() == EntryType.IMAGE_HINT)
&& entry.getManualChanges()
.get(entry.getManualChanges().size() - 1).getProcessedDate() == null
&& entry.getManualChanges()
.get(entry.getManualChanges().size() - 1).getManualRedactionType().equals(ManualRedactionType.RECATEGORIZE)) {
return;
}
if (!entry.getManualChanges().isEmpty()
&& (entry.isDictionaryEntry() || entry.isDossierDictionaryEntry())
&& entry.getManualChanges()
.get(entry.getManualChanges().size() - 1).getProcessedDate() == null
&& entry.getManualChanges()
.get(entry.getManualChanges().size() - 1).getManualRedactionType().equals(ManualRedactionType.ADD_TO_DICTIONARY)) {
&& getLastManualChange(entry).getProcessedDate() == null
&& getLastManualChange(entry).getManualRedactionType().equals(ManualRedactionType.RECATEGORIZE)) {
return;
}
@ -207,11 +191,17 @@ public class EntityLogConverterService {
}
private static ManualChange getLastManualChange(EntityLogEntry entry) {
return entry.getManualChanges()
.get(entry.getManualChanges().size() - 1);
}
private String determineValue(EntityLogEntry entry) {
if (entry.getManualChanges() != null && !entry.getManualChanges().isEmpty()) {
ManualChange lastChange = entry.getManualChanges()
.get(entry.getManualChanges().size() - 1);
ManualChange lastChange = getLastManualChange(entry);
if ((lastChange.getManualRedactionType().equals(ManualRedactionType.RESIZE) || lastChange.getManualRedactionType().equals(ManualRedactionType.RESIZE_IN_DICTIONARY))
&& lastChange.getPropertyChanges() != null) {
return lastChange.getPropertyChanges()
@ -267,17 +257,4 @@ public class EntityLogConverterService {
}
private boolean lastChangeIsRemoved(List<Change> changes) {
return last(changes).map(c -> c.getType() == ChangeType.REMOVED)
.orElse(false);
}
private <T> Optional<T> last(List<T> list) {
return list == null || list.isEmpty() ? Optional.empty() : Optional.of(list.get(list.size() - 1));
}
}

View File

@ -78,7 +78,7 @@ public class EntityLogConverterServiceTest {
assertNotNull(reportEntries);
assertFalse(reportEntries.isEmpty());
assertEquals(reportEntries.size(), 62);
assertEquals(reportEntries.size(), 61);
assertEquals(reportEntries.get(0).getPage(), 1);
assertEquals(reportEntries.get(0).getSection(), "[1]: Section: Rule 1/2: Redact CBI");
assertEquals(reportEntries.get(0).getJustification(), "Article 39(e)(3) of Regulation (EC) No 178/2002 ");