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:
commit
6c1ce6e8a3
@ -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");
|
||||
}
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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());
|
||||
}
|
||||
|
||||
}
|
||||
@ -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());
|
||||
|
||||
@ -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>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user