Pull request #139: RED-3574: Rejected manual redaction requests are displayed in redacted-report

Merge in RED/redaction-report-service from RED-3574-rrs1 to master

* commit '1081386b68eb7761944111a6dd0d5df7fbfd9b40':
  RED-3574: Rejected manual redaction requests are displayed in redacted-report
This commit is contained in:
Ali Oezyetimoglu 2022-03-08 19:18:24 +01:00
commit ee4a9869a2

View File

@ -1,5 +1,6 @@
package com.iqser.red.service.redaction.report.v1.server.service;
import com.iqser.red.service.persistence.service.v1.api.model.annotations.AnnotationStatus;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplate;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.Dossier;
import com.iqser.red.service.redaction.report.v1.api.model.ReportRequestMessage;
@ -12,7 +13,9 @@ import com.iqser.red.service.redaction.report.v1.server.client.ReportTemplateCli
import com.iqser.red.service.redaction.report.v1.server.model.MultiFileWorkbook;
import com.iqser.red.service.redaction.report.v1.server.model.ReportRedactionEntry;
import com.iqser.red.service.redaction.report.v1.server.storage.ReportStorageService;
import com.iqser.red.service.redaction.v1.model.ManualChange;
import com.iqser.red.service.redaction.v1.model.RedactionLog;
import com.iqser.red.service.redaction.v1.model.RedactionLogEntry;
import com.iqser.red.storage.commons.exception.StorageObjectDoesNotExist;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -22,6 +25,7 @@ import org.springframework.stereotype.Service;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
@Slf4j
@ -129,6 +133,17 @@ public class ReportGenerationService {
RedactionLog redactionLog;
try {
redactionLog = redactionLogClient.getRedactionLog(dossierId, fileId, true);
//filter DECLINED redactions out, they should not be in reports
Iterator<RedactionLogEntry> iter = redactionLog.getRedactionLogEntry().iterator();
while(iter.hasNext()) {
RedactionLogEntry redactionLogEntry = iter.next();
for(ManualChange manualChange : redactionLogEntry.getManualChanges()) {
if(manualChange.getAnnotationStatus().equals(AnnotationStatus.DECLINED)) {
iter.remove();
}
}
}
} catch (StorageObjectDoesNotExist e) {
return new ArrayList<>();
}