Pull request #7: RED-2228: Adapt to redactionlog changes

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

* commit '3677cfc786030e9b72387a578f0de8af91785aea':
  RED-2228: Adapt to redactionlog changes
This commit is contained in:
Dominique Eiflaender 2021-09-23 13:11:50 +02:00
commit 6c1ce6e8a3
6 changed files with 10 additions and 170 deletions

View File

@ -11,8 +11,8 @@ import com.iqser.red.service.persistence.management.v1.processor.service.persist
import com.iqser.red.service.persistence.service.v1.api.model.BinaryFileRequest;
import com.iqser.red.service.persistence.service.v1.api.model.FileType;
import com.iqser.red.service.persistence.service.v1.api.model.JSONPrimitive;
import com.iqser.red.service.persistence.service.v1.api.model.data.annotations.AnnotationStatus;
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.File;
import com.iqser.red.service.redaction.v1.model.Status;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@ -53,7 +53,7 @@ public class FileService {
var existingStatus = retrieveStatus(fileId);
if (existingStatus != null) {
if (existingStatus.getStatus().name().equals(Status.APPROVED.name())) {
if (existingStatus.getStatus().name().equals(AnnotationStatus.APPROVED.name())) {
throw new ConflictException("File already exists in status APPROVED");
}

View File

@ -216,7 +216,7 @@ public class FileStatusService {
.dossierId(dossierId)
.sectionsToReanalyse(sectionsToReanalyse)
.fileId(fileId)
.manualRedactions(ManualRedactionsConverter.convert(manualRedactionProviderService.getManualRedactions(fileId)))
.manualRedactions(manualRedactionProviderService.getManualRedactions(fileId))
.dossierTemplateId(dossier.getDossierTemplateId())
.lastProcessed(fileStatus.getLastProcessed())
//TODO

View File

@ -348,12 +348,12 @@ public class ManualRedactionService {
.get();
if (annotationStatus == AnnotationStatus.APPROVED) {
removeFromDictionary(redactionLogEntry.getType(), redactionLogEntry.getValue(), dossierId, fileId);
removeFromDictionary(redactionLogEntry.getTypeId(), redactionLogEntry.getValue(), dossierId, fileId);
} else if (annotationStatus == AnnotationStatus.DECLINED) {
// if it was previously approved, revert the delete
if (idRemoval.getStatus() == AnnotationStatus.APPROVED) {
addToDictionary(redactionLogEntry.getType(), redactionLogEntry.getValue(), dossierId, fileId);
addToDictionary(redactionLogEntry.getTypeId(), redactionLogEntry.getValue(), dossierId, fileId);
}
}
}
@ -466,9 +466,9 @@ public class ManualRedactionService {
.findFirst()
.get();
if (revert) {
addToDictionary(redactionLogEntry.getType(), redactionLogEntry.getValue(), dossierId, fileId);
addToDictionary(redactionLogEntry.getTypeId(), redactionLogEntry.getValue(), dossierId, fileId);
} else {
removeFromDictionary(redactionLogEntry.getType(), redactionLogEntry.getValue(), dossierId, fileId);
removeFromDictionary(redactionLogEntry.getTypeId(), redactionLogEntry.getValue(), dossierId, fileId);
}
}
removeRedactionPersistenceService.updateStatus(fileId, annotationId, status, removeFromDictionary);

View File

@ -1,160 +0,0 @@
package com.iqser.red.service.peristence.v1.server.service;
import com.iqser.red.service.persistence.service.v1.api.model.ManualRedactions;
import com.iqser.red.service.persistence.service.v1.api.model.data.annotations.Comment;
import com.iqser.red.service.persistence.service.v1.api.model.data.annotations.ManualImageRecategorization;
import com.iqser.red.service.persistence.service.v1.api.model.data.annotations.ManualLegalBasisChange;
import com.iqser.red.service.persistence.service.v1.api.model.data.annotations.ManualRedactionEntry;
import com.iqser.red.service.persistence.service.v1.api.model.data.annotations.IdRemoval;
import com.iqser.red.service.persistence.service.v1.api.model.data.annotations.ManualForceRedaction;
import com.iqser.red.service.redaction.v1.model.Point;
import com.iqser.red.service.redaction.v1.model.Rectangle;
import javax.net.ssl.SSLEngineResult;
import java.util.*;
import java.util.stream.Collectors;
public class ManualRedactionsConverter {
//TODO Conversions
public static com.iqser.red.service.redaction.v1.model.ManualRedactions convert(ManualRedactions manualRedactions) {
return com.iqser.red.service.redaction.v1.model.ManualRedactions.builder()
.comments(convertComments(manualRedactions.getComments()))
.entriesToAdd(convertManualRedactionEntries(manualRedactions.getEntriesToAdd()))
.idsToRemove(convertRemovalIds(manualRedactions.getIdsToRemove()))
.forceRedacts(convertForceRedacts(manualRedactions.getForceRedactions()))
.manualLegalBasisChanges(convertLegalBasisChanges(manualRedactions.getLegalBasisChanges()))
.imageRecategorizations(convertImageRecategorizations(manualRedactions.getImageRecategorization()))
.build();
}
public static Map<String, List<com.iqser.red.service.redaction.v1.model.Comment>> convertComments(Map<String, List<Comment>> comments) {
Map<String, List<com.iqser.red.service.redaction.v1.model.Comment>> commentsMap = new HashMap<>();
comments.forEach((key, value) -> commentsMap.put(key, convertComment(value)));
return commentsMap;
}
public static List<com.iqser.red.service.redaction.v1.model.Comment> convertComment(List<Comment> comments) {
return comments.stream().map(comment -> com.iqser.red.service.redaction.v1.model.Comment.builder()
.id(String.valueOf(comment.getId()))
.user(comment.getUser())
.date(comment.getDate())
.text(comment.getText())
.build())
.collect(Collectors.toList());
}
public static Set<com.iqser.red.service.redaction.v1.model.ManualRedactionEntry> convertManualRedactionEntries(
Set<ManualRedactionEntry> manualRedactionEntries) {
return manualRedactionEntries.stream()
.map(entry -> com.iqser.red.service.redaction.v1.model.ManualRedactionEntry.builder()
.id(entry.getId().getId())
.user(entry.getUser())
.type(entry.getTypeId())
.value(entry.getValue())
.reason(entry.getReason())
.legalBasis(entry.getLegalBasis())
.positions(convertRectangles(entry.getPositions()))
.processedDate(entry.getProcessedDate())
.requestDate(entry.getRequestDate())
.softDeletedTime(entry.getSoftDeletedTime())
.status(com.iqser.red.service.redaction.v1.model.Status.valueOf(entry.getStatus().name()))
.addToDictionary(entry.isAddToDictionary())
.build())
.collect(Collectors.toSet());
}
private static List<Rectangle> convertRectangles(List<com.iqser.red.service.persistence.service.v1.api.model.data.annotations.Rectangle> positions) {
List<Rectangle> result = new ArrayList<>();
positions.forEach(p ->{
var rectangle = new Rectangle();
rectangle.setPage(p.getPage());
rectangle.setWidth(p.getWidth());
rectangle.setHeight(p.getHeight());
var point = new Point();
point.setX(p.getTopLeftX());
point.setY(p.getTopLeftY());
rectangle.setTopLeft(point);
result.add(rectangle);
});
return result;
}
public static Set<com.iqser.red.service.redaction.v1.model.IdRemoval> convertRemovalIds(Set<IdRemoval> idsToRemove) {
return idsToRemove.stream()
.map(idRemoval -> com.iqser.red.service.redaction.v1.model.IdRemoval.builder()
.id(idRemoval.getId().getId())
.user(idRemoval.getUser())
.status(com.iqser.red.service.redaction.v1.model.Status.valueOf(idRemoval.getStatus().name()))
.processedDate(idRemoval.getProcessedDate())
.requestDate(idRemoval.getRequestDate())
.softDeletedTime(idRemoval.getSoftDeletedTime())
.removeFromDictionary(idRemoval.isRemoveFromDictionary())
.build())
.collect(Collectors.toSet());
}
public static Set<com.iqser.red.service.redaction.v1.model.ManualForceRedact> convertForceRedacts(
Set<ManualForceRedaction> forceRedactions) {
return forceRedactions.stream()
.map(forceRedact -> com.iqser.red.service.redaction.v1.model.ManualForceRedact.builder()
.id(forceRedact.getId().getId())
.user(forceRedact.getUser())
.status(com.iqser.red.service.redaction.v1.model.Status.valueOf(forceRedact.getStatus().name()))
.processedDate(forceRedact.getProcessedDate())
.requestDate(forceRedact.getRequestDate())
.softDeletedTime(forceRedact.getSoftDeletedTime())
.legalBasis(forceRedact.getLegalBasis())
.build())
.collect(Collectors.toSet());
}
public static Set<com.iqser.red.service.redaction.v1.model.ManualLegalBasisChange> convertLegalBasisChanges(
Set<ManualLegalBasisChange> legalBasisChanges) {
return legalBasisChanges.stream()
.map(legalBasisChange -> com.iqser.red.service.redaction.v1.model.ManualLegalBasisChange.builder()
.id(legalBasisChange.getId().getId())
.user(legalBasisChange.getUser())
.status(com.iqser.red.service.redaction.v1.model.Status.valueOf(legalBasisChange.getStatus().name()))
.processedDate(legalBasisChange.getProcessedDate())
.requestDate(legalBasisChange.getRequestDate())
.softDeletedTime(legalBasisChange.getSoftDeletedTime())
.legalBasis(legalBasisChange.getLegalBasis())
.build())
.collect(Collectors.toSet());
}
public static Set<com.iqser.red.service.redaction.v1.model.ManualImageRecategorization> convertImageRecategorizations(
Set<ManualImageRecategorization> manualImageRecategorizations) {
return manualImageRecategorizations.stream()
.map(recategorization -> com.iqser.red.service.redaction.v1.model.ManualImageRecategorization.builder()
.id(recategorization.getId().getId())
.user(recategorization.getUser())
.status(com.iqser.red.service.redaction.v1.model.Status.valueOf(recategorization.getStatus().name()))
.type(recategorization.getType())
.processedDate(recategorization.getProcessedDate())
.requestDate(recategorization.getRequestDate())
.softDeletedTime(recategorization.getSoftDeletedTime())
.build())
.collect(Collectors.toSet());
}
}

View File

@ -25,12 +25,12 @@ public class RedactionLogService {
if (withManualRedactions) {
var dossier = dossierPersistenceService.getAndValidateDossier(dossierId);
var convertedManualRedactions = ManualRedactionsConverter.convert(manualRedactionService.getManualRedactions(fileId));
var manualRedactions = manualRedactionService.getManualRedactions(fileId);
var fileStatus = fileStatusService.getStatus( fileId);
return redactionClient.getRedactionLog(RedactionRequest.builder()
.dossierId(dossierId)
.fileId(fileId)
.manualRedactions(convertedManualRedactions)
.manualRedactions(manualRedactions)
.dossierTemplateId(dossier.getDossierTemplateId())
.excludedPages(fileStatus.getExcludedPages())
.build());

View File

@ -35,7 +35,7 @@
<dependency>
<groupId>com.iqser.red.service</groupId>
<artifactId>redaction-service-api-v1</artifactId>
<version>2.67.0</version>
<version>3.1.0</version>
</dependency>
</dependencies>
</dependencyManagement>