Merge branch 'RED-8114' into 'master'
RED-8114 - Allow editing of unprocessed manual changes Closes RED-8114 See merge request redactmanager/persistence-service!282
This commit is contained in:
commit
92bfe44d03
@ -74,11 +74,14 @@ public class ManualRedactionController implements ManualRedactionResource {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@PreAuthorize("hasAuthority('" + DELETE_MANUAL_REDACTION + "')")
|
@PreAuthorize("hasAuthority('" + DELETE_MANUAL_REDACTION + "')")
|
||||||
public void undo(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody Set<String> annotationIds) {
|
public void undo(@PathVariable(DOSSIER_ID) String dossierId,
|
||||||
|
@PathVariable(FILE_ID) String fileId,
|
||||||
|
@RequestBody Set<String> annotationIds,
|
||||||
|
@RequestParam(value = "includeUnprocessed", required = false, defaultValue = FALSE) boolean includeUnprocessed) {
|
||||||
|
|
||||||
accessControlService.verifyFileIsNotApproved(dossierId, fileId);
|
accessControlService.verifyFileIsNotApproved(dossierId, fileId);
|
||||||
accessControlService.verifyUserIsApprover(dossierId);
|
accessControlService.verifyUserIsApprover(dossierId);
|
||||||
manualRedactionUndoService.undo(dossierId, fileId, annotationIds);
|
manualRedactionUndoService.undo(dossierId, fileId, annotationIds, includeUnprocessed);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -184,7 +187,8 @@ public class ManualRedactionController implements ManualRedactionResource {
|
|||||||
@PreAuthorize("hasAuthority('" + DO_MANUAL_REDACTION + "')")
|
@PreAuthorize("hasAuthority('" + DO_MANUAL_REDACTION + "')")
|
||||||
public List<ManualAddResponse> removeRedactionBulk(@PathVariable(DOSSIER_ID) String dossierId,
|
public List<ManualAddResponse> removeRedactionBulk(@PathVariable(DOSSIER_ID) String dossierId,
|
||||||
@PathVariable(FILE_ID) String fileId,
|
@PathVariable(FILE_ID) String fileId,
|
||||||
@RequestBody Set<RemoveRedactionRequestModel> removeRedactionRequests) {
|
@RequestBody Set<RemoveRedactionRequestModel> removeRedactionRequests,
|
||||||
|
@RequestParam(value = "includeUnprocessed", required = false, defaultValue = FALSE) boolean includeUnprocessed) {
|
||||||
|
|
||||||
var dossier = dossierManagementService.getDossierById(dossierId, false, false);
|
var dossier = dossierManagementService.getDossierById(dossierId, false, false);
|
||||||
accessControlService.verifyFileIsNotApproved(dossierId, fileId);
|
accessControlService.verifyFileIsNotApproved(dossierId, fileId);
|
||||||
@ -194,7 +198,7 @@ public class ManualRedactionController implements ManualRedactionResource {
|
|||||||
accessControlService.verifyUserIsMemberOrApprover(dossierId);
|
accessControlService.verifyUserIsMemberOrApprover(dossierId);
|
||||||
}
|
}
|
||||||
|
|
||||||
List<RemoveRedactionRequest> requests = manualRedactionMapper.toRemoveRedactionRequestList(dossierId, fileId, dossier.getDossierTemplateId(), removeRedactionRequests);
|
List<RemoveRedactionRequest> requests = manualRedactionMapper.toRemoveRedactionRequestList(dossierId, fileId, dossier.getDossierTemplateId(), removeRedactionRequests, includeUnprocessed);
|
||||||
List<ManualAddResponse> responseList = manualRedactionService.addRemoveRedaction(dossierId, fileId, requests);
|
List<ManualAddResponse> responseList = manualRedactionService.addRemoveRedaction(dossierId, fileId, requests);
|
||||||
|
|
||||||
responseList.forEach(response -> auditPersistenceService.audit(AuditRequest.builder()
|
responseList.forEach(response -> auditPersistenceService.audit(AuditRequest.builder()
|
||||||
@ -259,13 +263,14 @@ public class ManualRedactionController implements ManualRedactionResource {
|
|||||||
@PreAuthorize("hasAuthority('" + DO_MANUAL_REDACTION + "')")
|
@PreAuthorize("hasAuthority('" + DO_MANUAL_REDACTION + "')")
|
||||||
public List<ManualAddResponse> recategorizeBulk(@PathVariable(DOSSIER_ID) String dossierId,
|
public List<ManualAddResponse> recategorizeBulk(@PathVariable(DOSSIER_ID) String dossierId,
|
||||||
@PathVariable(FILE_ID) String fileId,
|
@PathVariable(FILE_ID) String fileId,
|
||||||
@RequestBody Set<RecategorizationRequestModel> recategorizationRequests) {
|
@RequestBody Set<RecategorizationRequestModel> recategorizationRequests,
|
||||||
|
@RequestParam(value = "includeUnprocessed", required = false, defaultValue = FALSE) boolean includeUnprocessed) {
|
||||||
|
|
||||||
var dossier = dossierManagementService.getDossierById(dossierId, false, false);
|
var dossier = dossierManagementService.getDossierById(dossierId, false, false);
|
||||||
accessControlService.verifyFileIsNotApproved(dossierId, fileId);
|
accessControlService.verifyFileIsNotApproved(dossierId, fileId);
|
||||||
accessControlService.verifyUserIsMemberOrApprover(dossierId);
|
accessControlService.verifyUserIsMemberOrApprover(dossierId);
|
||||||
|
|
||||||
List<RecategorizationRequest> requests = manualRedactionMapper.toRecategorizationRequestList(dossierId, fileId, dossier.getDossierTemplateId(), recategorizationRequests);
|
List<RecategorizationRequest> requests = manualRedactionMapper.toRecategorizationRequestList(dossierId, fileId, dossier.getDossierTemplateId(), recategorizationRequests, includeUnprocessed);
|
||||||
|
|
||||||
List<ManualAddResponse> responseList = manualRedactionService.addRecategorization(dossierId, fileId, requests);
|
List<ManualAddResponse> responseList = manualRedactionService.addRecategorization(dossierId, fileId, requests);
|
||||||
|
|
||||||
@ -284,13 +289,14 @@ public class ManualRedactionController implements ManualRedactionResource {
|
|||||||
@PreAuthorize("hasAuthority('" + DO_MANUAL_REDACTION + "')")
|
@PreAuthorize("hasAuthority('" + DO_MANUAL_REDACTION + "')")
|
||||||
public List<ManualAddResponse> resizeRedactionBulk(@PathVariable(DOSSIER_ID) String dossierId,
|
public List<ManualAddResponse> resizeRedactionBulk(@PathVariable(DOSSIER_ID) String dossierId,
|
||||||
@PathVariable(FILE_ID) String fileId,
|
@PathVariable(FILE_ID) String fileId,
|
||||||
@RequestBody Set<ResizeRedactionRequestModel> resizeRedactionRequests) {
|
@RequestBody Set<ResizeRedactionRequestModel> resizeRedactionRequests,
|
||||||
|
@RequestParam(value = "includeUnprocessed", required = false, defaultValue = FALSE) boolean includeUnprocessed) {
|
||||||
|
|
||||||
accessControlService.verifyFileIsNotApproved(dossierId, fileId);
|
accessControlService.verifyFileIsNotApproved(dossierId, fileId);
|
||||||
accessControlService.verifyUserIsMemberOrApprover(dossierId);
|
accessControlService.verifyUserIsMemberOrApprover(dossierId);
|
||||||
|
|
||||||
List<ResizeRedactionRequest> requests = manualRedactionMapper.toResizeRedactionRequestList(resizeRedactionRequests);
|
List<ResizeRedactionRequest> requests = manualRedactionMapper.toResizeRedactionRequestList(resizeRedactionRequests);
|
||||||
List<ManualAddResponse> responseList = manualRedactionService.addResizeRedaction(dossierId, fileId, requests);
|
List<ManualAddResponse> responseList = manualRedactionService.addResizeRedaction(dossierId, fileId, requests, includeUnprocessed);
|
||||||
|
|
||||||
responseList.forEach(response -> auditPersistenceService.audit(AuditRequest.builder()
|
responseList.forEach(response -> auditPersistenceService.audit(AuditRequest.builder()
|
||||||
.userId(KeycloakSecurity.getUserId())
|
.userId(KeycloakSecurity.getUserId())
|
||||||
|
|||||||
@ -52,7 +52,10 @@ public interface ManualRedactionResource {
|
|||||||
@DeleteMapping(MANUAL_REDACTION_REST_PATH + "/bulk/undo" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE)
|
@DeleteMapping(MANUAL_REDACTION_REST_PATH + "/bulk/undo" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE)
|
||||||
@Operation(summary = "Undo a list of manual requests or redactions", description = "Can only be done be the " + "user who added the request/redaction.")
|
@Operation(summary = "Undo a list of manual requests or redactions", description = "Can only be done be the " + "user who added the request/redaction.")
|
||||||
@ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")})
|
@ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")})
|
||||||
void undo(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody Set<String> annotationIds);
|
void undo(@PathVariable(DOSSIER_ID) String dossierId,
|
||||||
|
@PathVariable(FILE_ID) String fileId,
|
||||||
|
@RequestBody Set<String> annotationIds,
|
||||||
|
@RequestParam(value = "includeUnprocessed", required = false, defaultValue = FALSE) boolean includeUnprocessed);
|
||||||
|
|
||||||
|
|
||||||
@ResponseStatus(value = HttpStatus.OK)
|
@ResponseStatus(value = HttpStatus.OK)
|
||||||
@ -90,7 +93,8 @@ public interface ManualRedactionResource {
|
|||||||
@ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")})
|
@ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")})
|
||||||
List<ManualAddResponse> removeRedactionBulk(@PathVariable(DOSSIER_ID) String dossierId,
|
List<ManualAddResponse> removeRedactionBulk(@PathVariable(DOSSIER_ID) String dossierId,
|
||||||
@PathVariable(FILE_ID) String fileId,
|
@PathVariable(FILE_ID) String fileId,
|
||||||
@RequestBody Set<RemoveRedactionRequestModel> removeRedactionRequests);
|
@RequestBody Set<RemoveRedactionRequestModel> removeRedactionRequests,
|
||||||
|
@RequestParam(value = "includeUnprocessed", required = false, defaultValue = FALSE) boolean includeUnprocessed);
|
||||||
|
|
||||||
|
|
||||||
@ResponseStatus(value = HttpStatus.OK)
|
@ResponseStatus(value = HttpStatus.OK)
|
||||||
@ -117,7 +121,8 @@ public interface ManualRedactionResource {
|
|||||||
@ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")})
|
@ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")})
|
||||||
List<ManualAddResponse> recategorizeBulk(@PathVariable(DOSSIER_ID) String dossierId,
|
List<ManualAddResponse> recategorizeBulk(@PathVariable(DOSSIER_ID) String dossierId,
|
||||||
@PathVariable(FILE_ID) String fileId,
|
@PathVariable(FILE_ID) String fileId,
|
||||||
@RequestBody Set<RecategorizationRequestModel> recategorizationRequests);
|
@RequestBody Set<RecategorizationRequestModel> recategorizationRequests,
|
||||||
|
@RequestParam(value = "includeUnprocessed", required = false, defaultValue = FALSE) boolean includeUnprocessed);
|
||||||
|
|
||||||
|
|
||||||
@ResponseStatus(value = HttpStatus.OK)
|
@ResponseStatus(value = HttpStatus.OK)
|
||||||
@ -126,7 +131,8 @@ public interface ManualRedactionResource {
|
|||||||
@ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")})
|
@ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")})
|
||||||
List<ManualAddResponse> resizeRedactionBulk(@PathVariable(DOSSIER_ID) String dossierId,
|
List<ManualAddResponse> resizeRedactionBulk(@PathVariable(DOSSIER_ID) String dossierId,
|
||||||
@PathVariable(FILE_ID) String fileId,
|
@PathVariable(FILE_ID) String fileId,
|
||||||
@RequestBody Set<ResizeRedactionRequestModel> resizeRedactionRequests);
|
@RequestBody Set<ResizeRedactionRequestModel> resizeRedactionRequests,
|
||||||
|
@RequestParam(value = "includeUnprocessed", required = false, defaultValue = FALSE) boolean includeUnprocessed);
|
||||||
|
|
||||||
|
|
||||||
@ResponseStatus(value = HttpStatus.OK)
|
@ResponseStatus(value = HttpStatus.OK)
|
||||||
|
|||||||
@ -103,16 +103,6 @@ public class EntityLogMergeService {
|
|||||||
return Optional.empty();
|
return Optional.empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
List<Change> changes = new ArrayList<>();
|
|
||||||
|
|
||||||
changes.add(Change.builder()
|
|
||||||
.analysisNumber(entityLog.getAnalysisNumber())
|
|
||||||
.dateTime(manualRedactionEntry.getRequestDate())
|
|
||||||
.type(ChangeType.ADDED)
|
|
||||||
.build());
|
|
||||||
|
|
||||||
boolean isHint = isHint(manualRedactionEntry.getType(), dossier);
|
|
||||||
|
|
||||||
if (isFalsePositive(manualRedactionEntry)) {
|
if (isFalsePositive(manualRedactionEntry)) {
|
||||||
var matchingEntities = entityLog.getEntityLogEntry().stream()
|
var matchingEntities = entityLog.getEntityLogEntry().stream()
|
||||||
.filter(entityLogEntry -> equalPosition(manualRedactionEntry.getPositions().get(0), entityLogEntry.getPositions().get(0)))
|
.filter(entityLogEntry -> equalPosition(manualRedactionEntry.getPositions().get(0), entityLogEntry.getPositions().get(0)))
|
||||||
@ -121,6 +111,24 @@ public class EntityLogMergeService {
|
|||||||
return Optional.empty();
|
return Optional.empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
List<ManualChange> manualChanges = new ArrayList<>();
|
||||||
|
manualChanges.add(ManualChange.builder()
|
||||||
|
.manualRedactionType(calculateManualRedactionType(manualRedactionEntry))
|
||||||
|
.requestedDate(manualRedactionEntry.getRequestDate())
|
||||||
|
.processedDate(null)
|
||||||
|
.userId(manualRedactionEntry.getUser())
|
||||||
|
.propertyChanges(Map.of("value", manualRedactionEntry.getValue()))
|
||||||
|
.build());
|
||||||
|
|
||||||
|
List<Change> changes = new ArrayList<>();
|
||||||
|
changes.add(Change.builder()
|
||||||
|
.analysisNumber(entityLog.getAnalysisNumber())
|
||||||
|
.dateTime(manualRedactionEntry.getRequestDate())
|
||||||
|
.type(ChangeType.ADDED)
|
||||||
|
.build());
|
||||||
|
|
||||||
|
boolean isHint = isHint(manualRedactionEntry.getType(), dossier);
|
||||||
|
|
||||||
EntityLogEntry entityLogEntry = EntityLogEntry.builder()
|
EntityLogEntry entityLogEntry = EntityLogEntry.builder()
|
||||||
.id(manualRedactionEntry.getAnnotationId())
|
.id(manualRedactionEntry.getAnnotationId())
|
||||||
.type(manualRedactionEntry.getType())
|
.type(manualRedactionEntry.getType())
|
||||||
@ -140,13 +148,7 @@ public class EntityLogMergeService {
|
|||||||
.dossierDictionaryEntry(manualRedactionEntry.isAddToDossierDictionary())
|
.dossierDictionaryEntry(manualRedactionEntry.isAddToDossierDictionary())
|
||||||
.excluded(false)
|
.excluded(false)
|
||||||
.changes(changes)
|
.changes(changes)
|
||||||
.manualChanges(List.of(ManualChange.builder()
|
.manualChanges(manualChanges)
|
||||||
.manualRedactionType(calculateManualRedactionType(manualRedactionEntry))
|
|
||||||
.requestedDate(manualRedactionEntry.getRequestDate())
|
|
||||||
.processedDate(null)
|
|
||||||
.userId(manualRedactionEntry.getUser())
|
|
||||||
.propertyChanges(Map.of("value", manualRedactionEntry.getValue()))
|
|
||||||
.build()))
|
|
||||||
.engines(new HashSet<>())
|
.engines(new HashSet<>())
|
||||||
.reference(new HashSet<>())
|
.reference(new HashSet<>())
|
||||||
.importedRedactionIntersections(new HashSet<>())
|
.importedRedactionIntersections(new HashSet<>())
|
||||||
|
|||||||
@ -3,11 +3,11 @@ package com.iqser.red.service.persistence.management.v1.processor.service.manual
|
|||||||
import static com.iqser.red.service.persistence.management.v1.processor.utils.TypeIdUtils.toTypeId;
|
import static com.iqser.red.service.persistence.management.v1.processor.utils.TypeIdUtils.toTypeId;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
|
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
|
||||||
@ -78,10 +78,10 @@ public class ManualRedactionMapper {
|
|||||||
public List<RemoveRedactionRequest> toRemoveRedactionRequestList(String dossierId,
|
public List<RemoveRedactionRequest> toRemoveRedactionRequestList(String dossierId,
|
||||||
String fileId,
|
String fileId,
|
||||||
String dossierTemplateId,
|
String dossierTemplateId,
|
||||||
Set<RemoveRedactionRequestModel> removeRedactionRequests) {
|
Set<RemoveRedactionRequestModel> removeRedactionRequests, boolean includeUnprocessed) {
|
||||||
|
|
||||||
List<RemoveRedactionRequest> requests = new ArrayList<>();
|
List<RemoveRedactionRequest> requests = new ArrayList<>();
|
||||||
EntityLog entityLog = entityLogService.getEntityLog(dossierId, fileId);
|
EntityLog entityLog = entityLogService.getEntityLog(dossierId, fileId, Collections.emptyList(), includeUnprocessed);
|
||||||
for (var removeRedactionRequest : removeRedactionRequests) {
|
for (var removeRedactionRequest : removeRedactionRequests) {
|
||||||
EntityLogEntry entityLogEntry = getEntityLogEntry(entityLog, removeRedactionRequest.getAnnotationId());
|
EntityLogEntry entityLogEntry = getEntityLogEntry(entityLog, removeRedactionRequest.getAnnotationId());
|
||||||
var removeRedactionRequestBuilder = RemoveRedactionRequest.builder()
|
var removeRedactionRequestBuilder = RemoveRedactionRequest.builder()
|
||||||
@ -139,9 +139,10 @@ public class ManualRedactionMapper {
|
|||||||
public List<RecategorizationRequest> toRecategorizationRequestList(String dossierId,
|
public List<RecategorizationRequest> toRecategorizationRequestList(String dossierId,
|
||||||
String fileId,
|
String fileId,
|
||||||
String dossierTemplateId,
|
String dossierTemplateId,
|
||||||
Set<RecategorizationRequestModel> recategorizationRequests) {
|
Set<RecategorizationRequestModel> recategorizationRequests,
|
||||||
|
boolean includeUnprocessed) {
|
||||||
|
|
||||||
EntityLog entityLog = entityLogService.getEntityLog(dossierId, fileId);
|
EntityLog entityLog = entityLogService.getEntityLog(dossierId, fileId, Collections.emptyList(), includeUnprocessed);
|
||||||
List<RecategorizationRequest> requests = new ArrayList<>();
|
List<RecategorizationRequest> requests = new ArrayList<>();
|
||||||
for (RecategorizationRequestModel recategorizationRequest : recategorizationRequests) {
|
for (RecategorizationRequestModel recategorizationRequest : recategorizationRequests) {
|
||||||
EntityLogEntry entityLogEntry = getEntityLogEntry(entityLog, recategorizationRequest.getAnnotationId());
|
EntityLogEntry entityLogEntry = getEntityLogEntry(entityLog, recategorizationRequest.getAnnotationId());
|
||||||
|
|||||||
@ -2,6 +2,7 @@ package com.iqser.red.service.persistence.management.v1.processor.service.manual
|
|||||||
|
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
@ -249,11 +250,11 @@ public class ManualRedactionService {
|
|||||||
|
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public List<ManualAddResponse> addResizeRedaction(String dossierId, String fileId, List<ResizeRedactionRequest> resizeRedactionRequests) {
|
public List<ManualAddResponse> addResizeRedaction(String dossierId, String fileId, List<ResizeRedactionRequest> resizeRedactionRequests, boolean includeUnprocessed) {
|
||||||
|
|
||||||
List<ManualAddResponse> response = new ArrayList<>();
|
List<ManualAddResponse> response = new ArrayList<>();
|
||||||
Set<ManualResizeRedactionEntity> manualResizeRedactionEntities = new HashSet<>();
|
Set<ManualResizeRedactionEntity> manualResizeRedactionEntities = new HashSet<>();
|
||||||
EntityLog entityLog = entityLogService.getEntityLog(dossierId, fileId);
|
EntityLog entityLog = entityLogService.getEntityLog(dossierId, fileId, Collections.emptyList(), includeUnprocessed);
|
||||||
|
|
||||||
for (ResizeRedactionRequest resizeRedactionRequest : resizeRedactionRequests) {
|
for (ResizeRedactionRequest resizeRedactionRequest : resizeRedactionRequests) {
|
||||||
|
|
||||||
|
|||||||
@ -73,7 +73,7 @@ public class ManualRedactionUndoService {
|
|||||||
|
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public void undo(String dossierId, String fileId, Set<String> annotationIds) {
|
public void undo(String dossierId, String fileId, Set<String> annotationIds, boolean includeUnprocessed) {
|
||||||
|
|
||||||
// undo the latest manual redaction for each annotationId
|
// undo the latest manual redaction for each annotationId
|
||||||
ManualRedactions manualRedactions = getManualRedactions(fileId);
|
ManualRedactions manualRedactions = getManualRedactions(fileId);
|
||||||
@ -87,7 +87,7 @@ public class ManualRedactionUndoService {
|
|||||||
undoManualRedactionEntries(dossierId, fileId, manualRedactionWrappers);
|
undoManualRedactionEntries(dossierId, fileId, manualRedactionWrappers);
|
||||||
undoIdRemovals(dossierId, fileId, manualRedactionWrappers);
|
undoIdRemovals(dossierId, fileId, manualRedactionWrappers);
|
||||||
undoForceRedactions(dossierId, fileId, manualRedactionWrappers);
|
undoForceRedactions(dossierId, fileId, manualRedactionWrappers);
|
||||||
undoRecategorization(dossierId, fileId, manualRedactionWrappers);
|
undoRecategorization(dossierId, fileId, manualRedactionWrappers, includeUnprocessed);
|
||||||
undoLegalBasisChange(dossierId, fileId, manualRedactionWrappers);
|
undoLegalBasisChange(dossierId, fileId, manualRedactionWrappers);
|
||||||
undoResize(dossierId, fileId, manualRedactionWrappers);
|
undoResize(dossierId, fileId, manualRedactionWrappers);
|
||||||
reprocess(dossierId, fileId);
|
reprocess(dossierId, fileId);
|
||||||
@ -167,7 +167,7 @@ public class ManualRedactionUndoService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void undoRecategorization(String dossierId, String fileId, Map<String, ManualRedactionWrapperModel> manualRedactionWrappers) {
|
private void undoRecategorization(String dossierId, String fileId, Map<String, ManualRedactionWrapperModel> manualRedactionWrappers, boolean includeUnprocessed) {
|
||||||
|
|
||||||
List<String> manualImageRecategorizations = manualRedactionWrappers.values()
|
List<String> manualImageRecategorizations = manualRedactionWrappers.values()
|
||||||
.stream()
|
.stream()
|
||||||
@ -176,7 +176,7 @@ public class ManualRedactionUndoService {
|
|||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
if (!manualImageRecategorizations.isEmpty()) {
|
if (!manualImageRecategorizations.isEmpty()) {
|
||||||
|
|
||||||
deleteRecategorization(dossierId, fileId, manualImageRecategorizations);
|
deleteRecategorization(dossierId, fileId, manualImageRecategorizations, includeUnprocessed);
|
||||||
manualImageRecategorizations.forEach(annotationId -> auditPersistenceService.audit(AuditRequest.builder()
|
manualImageRecategorizations.forEach(annotationId -> auditPersistenceService.audit(AuditRequest.builder()
|
||||||
.userId(KeycloakSecurity.getUserId())
|
.userId(KeycloakSecurity.getUserId())
|
||||||
.objectId(fileId)
|
.objectId(fileId)
|
||||||
@ -188,10 +188,10 @@ public class ManualRedactionUndoService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void deleteRecategorization(String dossierId, String fileId, List<String> annotationIds) {
|
private void deleteRecategorization(String dossierId, String fileId, List<String> annotationIds, boolean includeUnprocessed) {
|
||||||
|
|
||||||
dossierPersistenceService.getAndValidateDossier(dossierId);
|
dossierPersistenceService.getAndValidateDossier(dossierId);
|
||||||
EntityLog entityLog = entityLogService.getEntityLog(dossierId, fileId);
|
EntityLog entityLog = entityLogService.getEntityLog(dossierId, fileId, Collections.emptyList(), includeUnprocessed);
|
||||||
|
|
||||||
for (var annotationId : annotationIds) {
|
for (var annotationId : annotationIds) {
|
||||||
ManualRecategorizationEntity recategorizationEntity = recategorizationPersistenceService.findRecategorization(fileId, annotationId);
|
ManualRecategorizationEntity recategorizationEntity = recategorizationPersistenceService.findRecategorization(fileId, annotationId);
|
||||||
@ -265,7 +265,7 @@ public class ManualRedactionUndoService {
|
|||||||
private void deleteRemoveRedaction(String dossierId, String fileId, List<String> annotationIds) {
|
private void deleteRemoveRedaction(String dossierId, String fileId, List<String> annotationIds) {
|
||||||
|
|
||||||
dossierPersistenceService.getAndValidateDossier(dossierId);
|
dossierPersistenceService.getAndValidateDossier(dossierId);
|
||||||
EntityLog entityLog = entityLogService.getEntityLog(dossierId, fileId);
|
EntityLog entityLog = entityLogService.getEntityLog(dossierId, fileId, Collections.emptyList(), true);
|
||||||
|
|
||||||
for (String annotationId : annotationIds) {
|
for (String annotationId : annotationIds) {
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,8 @@
|
|||||||
package com.iqser.red.service.peristence.v1.server.integration.tests;
|
package com.iqser.red.service.peristence.v1.server.integration.tests;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
|
import static org.mockito.ArgumentMatchers.anyBoolean;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
@ -361,7 +363,7 @@ public class FileTest extends AbstractPersistenceServerServiceTest {
|
|||||||
EntityLog entityLog = new EntityLog(1, 1,
|
EntityLog entityLog = new EntityLog(1, 1,
|
||||||
List.of(EntityLogEntry.builder().id(annotationId).type(type.getType()).value("value entry").state(EntryState.APPLIED).entryType(EntryType.ENTITY).build()), null, 0, 0, 0, 0);
|
List.of(EntityLogEntry.builder().id(annotationId).type(type.getType()).value("value entry").state(EntryState.APPLIED).entryType(EntryType.ENTITY).build()), null, 0, 0, 0, 0);
|
||||||
|
|
||||||
when(entityLogService.getEntityLog(Mockito.any(), Mockito.any())).thenReturn(entityLog);
|
when(entityLogService.getEntityLog(Mockito.any(), Mockito.any(), any(), anyBoolean())).thenReturn(entityLog);
|
||||||
|
|
||||||
assertThat(fileClient.getDossierStatus(dossier.getId()).size()).isEqualTo(1);
|
assertThat(fileClient.getDossierStatus(dossier.getId()).size()).isEqualTo(1);
|
||||||
|
|
||||||
@ -378,7 +380,8 @@ public class FileTest extends AbstractPersistenceServerServiceTest {
|
|||||||
|
|
||||||
manualRedactionClient.removeRedactionBulk(dossierId,
|
manualRedactionClient.removeRedactionBulk(dossierId,
|
||||||
fileId,
|
fileId,
|
||||||
Set.of(RemoveRedactionRequestModel.builder().annotationId(annotationId).comment("comment").removeFromDictionary(false).build()));
|
Set.of(RemoveRedactionRequestModel.builder().annotationId(annotationId).comment("comment").removeFromDictionary(false).build()),
|
||||||
|
false);
|
||||||
manualRedactionClient.forceRedactionBulk(dossierId,
|
manualRedactionClient.forceRedactionBulk(dossierId,
|
||||||
fileId,
|
fileId,
|
||||||
Set.of(ForceRedactionRequestModel.builder().annotationId("forceRedactionAnnotation").comment("comment").legalBasis("1").build()));
|
Set.of(ForceRedactionRequestModel.builder().annotationId("forceRedactionAnnotation").comment("comment").legalBasis("1").build()));
|
||||||
@ -387,7 +390,8 @@ public class FileTest extends AbstractPersistenceServerServiceTest {
|
|||||||
Set.of(LegalBasisChangeRequestModel.builder().annotationId("legalBasisChangeAnnotation").comment("comment").legalBasis("1").build()));
|
Set.of(LegalBasisChangeRequestModel.builder().annotationId("legalBasisChangeAnnotation").comment("comment").legalBasis("1").build()));
|
||||||
manualRedactionClient.recategorizeBulk(dossierId,
|
manualRedactionClient.recategorizeBulk(dossierId,
|
||||||
fileId,
|
fileId,
|
||||||
Set.of(RecategorizationRequestModel.builder().annotationId(annotationId).comment("comment").type("new-type").build()));
|
Set.of(RecategorizationRequestModel.builder().annotationId(annotationId).comment("comment").type("new-type").build()),
|
||||||
|
false);
|
||||||
|
|
||||||
var loadedFile = fileClient.getFileStatus(dossierId, fileId);
|
var loadedFile = fileClient.getFileStatus(dossierId, fileId);
|
||||||
|
|
||||||
|
|||||||
@ -4,6 +4,9 @@ import static com.iqser.red.service.persistence.management.v1.processor.utils.Ty
|
|||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
|
import static org.mockito.ArgumentMatchers.anyBoolean;
|
||||||
|
import static org.mockito.ArgumentMatchers.eq;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@ -12,6 +15,7 @@ import java.util.Set;
|
|||||||
|
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.mockito.Mock;
|
||||||
import org.mockito.Mockito;
|
import org.mockito.Mockito;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|
||||||
@ -133,12 +137,12 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
|
|||||||
0);
|
0);
|
||||||
fileManagementStorageService.storeJSONObject(dossier.getId(), file.getId(), FileType.ENTITY_LOG, entityLog);
|
fileManagementStorageService.storeJSONObject(dossier.getId(), file.getId(), FileType.ENTITY_LOG, entityLog);
|
||||||
|
|
||||||
when(entityLogService.getEntityLog(Mockito.any(), Mockito.any())).thenReturn(entityLog);
|
when(entityLogService.getEntityLog(Mockito.any(), Mockito.any(), Mockito.any(), Mockito.anyBoolean())).thenReturn(entityLog);
|
||||||
|
|
||||||
Assertions.assertThrows(FeignException.Forbidden.class,
|
Assertions.assertThrows(FeignException.Forbidden.class,
|
||||||
() -> manualRedactionClient.removeRedactionBulk(dossier.getId(),
|
() -> manualRedactionClient.removeRedactionBulk(dossier.getId(),
|
||||||
file.getId(),
|
file.getId(),
|
||||||
Set.of(RemoveRedactionRequestModel.builder().annotationId("AnnotationId").removeFromDictionary(true).removeFromAllDossiers(true).build())));//.get(0);
|
Set.of(RemoveRedactionRequestModel.builder().annotationId("AnnotationId").removeFromDictionary(true).removeFromAllDossiers(true).build()), false));//.get(0);
|
||||||
|
|
||||||
var dossierTemplateDictionary = internalDictionaryClient.getDictionaryForType(toTypeId(type.getType(), dossierTemplate.getId()), null);
|
var dossierTemplateDictionary = internalDictionaryClient.getDictionaryForType(toTypeId(type.getType(), dossierTemplate.getId()), null);
|
||||||
assertThat(dossierTemplateDictionary.getEntries().size()).isZero();
|
assertThat(dossierTemplateDictionary.getEntries().size()).isZero();
|
||||||
@ -289,18 +293,18 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
|
|||||||
0);
|
0);
|
||||||
fileManagementStorageService.storeJSONObject(dossier.getId(), file.getId(), FileType.ENTITY_LOG, entityLog);
|
fileManagementStorageService.storeJSONObject(dossier.getId(), file.getId(), FileType.ENTITY_LOG, entityLog);
|
||||||
|
|
||||||
when(entityLogService.getEntityLog(Mockito.any(), Mockito.any())).thenReturn(entityLog);
|
when(entityLogService.getEntityLog(Mockito.any(), Mockito.any(), any(), anyBoolean())).thenReturn(entityLog);
|
||||||
|
|
||||||
manualRedactionClient.removeRedactionBulk(dossier.getId(),
|
manualRedactionClient.removeRedactionBulk(dossier.getId(),
|
||||||
file.getId(),
|
file.getId(),
|
||||||
Set.of(RemoveRedactionRequestModel.builder().annotationId("AnnotationId").removeFromDictionary(true).removeFromAllDossiers(true).build()));
|
Set.of(RemoveRedactionRequestModel.builder().annotationId("AnnotationId").removeFromDictionary(true).removeFromAllDossiers(true).build()), false);
|
||||||
|
|
||||||
dossierTemplateDictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null);
|
dossierTemplateDictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null);
|
||||||
assertThat(dossierTemplateDictionary.getEntries()).containsExactlyInAnyOrder("Darth Vader");
|
assertThat(dossierTemplateDictionary.getEntries()).containsExactlyInAnyOrder("Darth Vader");
|
||||||
dossierDictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), dossier.getId());
|
dossierDictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), dossier.getId());
|
||||||
assertThat(dossierDictionary.getEntries()).isEmpty();
|
assertThat(dossierDictionary.getEntries()).isEmpty();
|
||||||
|
|
||||||
manualRedactionClient.undo(dossier.getId(), file.getFileId(), Set.of("AnnotationId"));
|
manualRedactionClient.undo(dossier.getId(), file.getFileId(), Set.of("AnnotationId"), false);
|
||||||
|
|
||||||
dossierTemplateDictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null);
|
dossierTemplateDictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null);
|
||||||
assertThat(dossierTemplateDictionary.getEntries()).containsExactlyInAnyOrder("Luke Skywalker", "Darth Vader");
|
assertThat(dossierTemplateDictionary.getEntries()).containsExactlyInAnyOrder("Luke Skywalker", "Darth Vader");
|
||||||
@ -344,11 +348,11 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
|
|||||||
0);
|
0);
|
||||||
fileManagementStorageService.storeJSONObject(dossier.getId(), file.getId(), FileType.ENTITY_LOG, entityLog);
|
fileManagementStorageService.storeJSONObject(dossier.getId(), file.getId(), FileType.ENTITY_LOG, entityLog);
|
||||||
|
|
||||||
when(entityLogService.getEntityLog(Mockito.any(), Mockito.any())).thenReturn(entityLog);
|
when(entityLogService.getEntityLog(Mockito.any(), Mockito.any(), any(), anyBoolean())).thenReturn(entityLog);
|
||||||
|
|
||||||
manualRedactionClient.removeRedactionBulk(dossier.getId(),
|
manualRedactionClient.removeRedactionBulk(dossier.getId(),
|
||||||
file.getId(),
|
file.getId(),
|
||||||
Set.of(RemoveRedactionRequestModel.builder().annotationId("AnnotationId").removeFromDictionary(true).build())).get(0);
|
Set.of(RemoveRedactionRequestModel.builder().annotationId("AnnotationId").removeFromDictionary(true).build()), false).get(0);
|
||||||
|
|
||||||
var dossierDictionary = internalDictionaryClient.getDictionaryForType(toTypeId(type.getType(), dossierTemplate.getId(), dossier.getId()), null);
|
var dossierDictionary = internalDictionaryClient.getDictionaryForType(toTypeId(type.getType(), dossierTemplate.getId(), dossier.getId()), null);
|
||||||
|
|
||||||
@ -392,11 +396,11 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
|
|||||||
0);
|
0);
|
||||||
fileManagementStorageService.storeJSONObject(dossier.getId(), file.getId(), FileType.ENTITY_LOG, entityLog);
|
fileManagementStorageService.storeJSONObject(dossier.getId(), file.getId(), FileType.ENTITY_LOG, entityLog);
|
||||||
|
|
||||||
when(entityLogService.getEntityLog(Mockito.any(), Mockito.any())).thenReturn(entityLog);
|
when(entityLogService.getEntityLog(Mockito.any(), Mockito.any(), any(), anyBoolean())).thenReturn(entityLog);
|
||||||
|
|
||||||
manualRedactionClient.removeRedactionBulk(dossier.getId(),
|
manualRedactionClient.removeRedactionBulk(dossier.getId(),
|
||||||
file.getId(),
|
file.getId(),
|
||||||
Set.of(RemoveRedactionRequestModel.builder().annotationId("AnnotationId").removeFromDictionary(true).removeFromAllDossiers(true).build())).get(0);
|
Set.of(RemoveRedactionRequestModel.builder().annotationId("AnnotationId").removeFromDictionary(true).removeFromAllDossiers(true).build()), false).get(0);
|
||||||
|
|
||||||
var dossierDictionary = internalDictionaryClient.getDictionaryForType(toTypeId(type.getType(), dossierTemplate.getId(), dossier.getId()), null);
|
var dossierDictionary = internalDictionaryClient.getDictionaryForType(toTypeId(type.getType(), dossierTemplate.getId(), dossier.getId()), null);
|
||||||
assertThat(dossierDictionary.getEntries().size()).isEqualTo(1);
|
assertThat(dossierDictionary.getEntries().size()).isEqualTo(1);
|
||||||
@ -480,7 +484,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
|
|||||||
0);
|
0);
|
||||||
fileManagementStorageService.storeJSONObject(dossier1.getId(), file1.getId(), FileType.ENTITY_LOG, entityLog1);
|
fileManagementStorageService.storeJSONObject(dossier1.getId(), file1.getId(), FileType.ENTITY_LOG, entityLog1);
|
||||||
var redactionRequest1 = RedactionRequest.builder().dossierId(file1.getDossierId()).fileId(file1.getFileId()).dossierTemplateId(file1.getDossierTemplateId()).build();
|
var redactionRequest1 = RedactionRequest.builder().dossierId(file1.getDossierId()).fileId(file1.getFileId()).dossierTemplateId(file1.getDossierTemplateId()).build();
|
||||||
when(entityLogService.getEntityLog(file1.getDossierId(), file1.getFileId())).thenReturn(entityLog1);
|
when(entityLogService.getEntityLog(eq(file1.getDossierId()), eq(file1.getFileId()), any(), anyBoolean())).thenReturn(entityLog1);
|
||||||
|
|
||||||
var entityLog2 = new EntityLog(1,
|
var entityLog2 = new EntityLog(1,
|
||||||
1,
|
1,
|
||||||
@ -499,7 +503,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
|
|||||||
0);
|
0);
|
||||||
fileManagementStorageService.storeJSONObject(dossier2.getId(), file2.getId(), FileType.ENTITY_LOG, entityLog2);
|
fileManagementStorageService.storeJSONObject(dossier2.getId(), file2.getId(), FileType.ENTITY_LOG, entityLog2);
|
||||||
var redactionRequest2 = RedactionRequest.builder().dossierId(file2.getDossierId()).fileId(file2.getFileId()).dossierTemplateId(file2.getDossierTemplateId()).build();
|
var redactionRequest2 = RedactionRequest.builder().dossierId(file2.getDossierId()).fileId(file2.getFileId()).dossierTemplateId(file2.getDossierTemplateId()).build();
|
||||||
when(entityLogService.getEntityLog(file2.getDossierId(), file2.getFileId())).thenReturn(entityLog2);
|
when(entityLogService.getEntityLog(eq(file2.getDossierId()), eq(file2.getFileId()), any(), anyBoolean())).thenReturn(entityLog2);
|
||||||
|
|
||||||
// resize redaction in dossier 1
|
// resize redaction in dossier 1
|
||||||
var resizeRedactionDosAndAddToAllDos = ResizeRedactionRequestModel.builder()
|
var resizeRedactionDosAndAddToAllDos = ResizeRedactionRequestModel.builder()
|
||||||
@ -510,7 +514,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
|
|||||||
.addToAllDossiers(true)
|
.addToAllDossiers(true)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
manualRedactionClient.resizeRedactionBulk(dossier1.getId(), file1.getFileId(), Set.of(resizeRedactionDosAndAddToAllDos));
|
manualRedactionClient.resizeRedactionBulk(dossier1.getId(), file1.getFileId(), Set.of(resizeRedactionDosAndAddToAllDos), false);
|
||||||
|
|
||||||
loadedRedactionsFile1 = manualRedactionClient.getManualRedactions(file1.getDossierId(), file1.getFileId(), false);
|
loadedRedactionsFile1 = manualRedactionClient.getManualRedactions(file1.getDossierId(), file1.getFileId(), false);
|
||||||
|
|
||||||
@ -633,7 +637,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
|
|||||||
0);
|
0);
|
||||||
fileManagementStorageService.storeJSONObject(dossier1.getId(), file1.getId(), FileType.ENTITY_LOG, entityLog1);
|
fileManagementStorageService.storeJSONObject(dossier1.getId(), file1.getId(), FileType.ENTITY_LOG, entityLog1);
|
||||||
var redactionRequest1 = RedactionRequest.builder().dossierId(file1.getDossierId()).fileId(file1.getFileId()).dossierTemplateId(file1.getDossierTemplateId()).build();
|
var redactionRequest1 = RedactionRequest.builder().dossierId(file1.getDossierId()).fileId(file1.getFileId()).dossierTemplateId(file1.getDossierTemplateId()).build();
|
||||||
when(entityLogService.getEntityLog(file1.getDossierId(), file1.getFileId())).thenReturn(entityLog1);
|
when(entityLogService.getEntityLog(eq(file1.getDossierId()), eq(file1.getFileId()), any(), anyBoolean())).thenReturn(entityLog1);
|
||||||
|
|
||||||
var entityLog2 = new EntityLog(1,
|
var entityLog2 = new EntityLog(1,
|
||||||
1,
|
1,
|
||||||
@ -652,7 +656,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
|
|||||||
0);
|
0);
|
||||||
fileManagementStorageService.storeJSONObject(dossier2.getId(), file2.getId(), FileType.ENTITY_LOG, entityLog2);
|
fileManagementStorageService.storeJSONObject(dossier2.getId(), file2.getId(), FileType.ENTITY_LOG, entityLog2);
|
||||||
var redactionRequest2 = RedactionRequest.builder().dossierId(file2.getDossierId()).fileId(file2.getFileId()).dossierTemplateId(file2.getDossierTemplateId()).build();
|
var redactionRequest2 = RedactionRequest.builder().dossierId(file2.getDossierId()).fileId(file2.getFileId()).dossierTemplateId(file2.getDossierTemplateId()).build();
|
||||||
when(entityLogService.getEntityLog(file2.getDossierId(), file2.getFileId())).thenReturn(entityLog2);
|
when(entityLogService.getEntityLog(eq(file2.getDossierId()), eq(file2.getFileId()), any(), anyBoolean())).thenReturn(entityLog2);
|
||||||
|
|
||||||
// resize redaction in dossier 1
|
// resize redaction in dossier 1
|
||||||
var resizeRedactionDosAndAddToAllDos = ResizeRedactionRequestModel.builder()
|
var resizeRedactionDosAndAddToAllDos = ResizeRedactionRequestModel.builder()
|
||||||
@ -663,7 +667,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
|
|||||||
.addToAllDossiers(true)
|
.addToAllDossiers(true)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
manualRedactionClient.resizeRedactionBulk(dossier1.getId(), file1.getFileId(), Set.of(resizeRedactionDosAndAddToAllDos));
|
manualRedactionClient.resizeRedactionBulk(dossier1.getId(), file1.getFileId(), Set.of(resizeRedactionDosAndAddToAllDos), false);
|
||||||
|
|
||||||
loadedRedactionsFile1 = manualRedactionClient.getManualRedactions(file1.getDossierId(), file1.getFileId(), false);
|
loadedRedactionsFile1 = manualRedactionClient.getManualRedactions(file1.getDossierId(), file1.getFileId(), false);
|
||||||
|
|
||||||
@ -809,7 +813,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
|
|||||||
0);
|
0);
|
||||||
fileManagementStorageService.storeJSONObject(dossier2.getId(), file2.getId(), FileType.ENTITY_LOG, entityLog2);
|
fileManagementStorageService.storeJSONObject(dossier2.getId(), file2.getId(), FileType.ENTITY_LOG, entityLog2);
|
||||||
var redactionRequest2 = RedactionRequest.builder().dossierId(file2.getDossierId()).fileId(file2.getFileId()).dossierTemplateId(file2.getDossierTemplateId()).build();
|
var redactionRequest2 = RedactionRequest.builder().dossierId(file2.getDossierId()).fileId(file2.getFileId()).dossierTemplateId(file2.getDossierTemplateId()).build();
|
||||||
when(entityLogService.getEntityLog(file2.getDossierId(), file2.getFileId())).thenReturn(entityLog2);
|
when(entityLogService.getEntityLog(eq(file2.getDossierId()), eq(file2.getFileId()), any(), anyBoolean())).thenReturn(entityLog2);
|
||||||
|
|
||||||
// resize redaction in dossier dict
|
// resize redaction in dossier dict
|
||||||
var resizeRedactionDosTemp = ResizeRedactionRequestModel.builder()
|
var resizeRedactionDosTemp = ResizeRedactionRequestModel.builder()
|
||||||
@ -820,7 +824,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
|
|||||||
.addToAllDossiers(true)
|
.addToAllDossiers(true)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
var resizeRedactions = manualRedactionClient.resizeRedactionBulk(dossier2.getId(), file2.getFileId(), Set.of(resizeRedactionDosTemp));
|
var resizeRedactions = manualRedactionClient.resizeRedactionBulk(dossier2.getId(), file2.getFileId(), Set.of(resizeRedactionDosTemp), false);
|
||||||
|
|
||||||
var loadedRedactionsFile2 = manualRedactionClient.getManualRedactions(file2.getDossierId(), file2.getFileId(), false);
|
var loadedRedactionsFile2 = manualRedactionClient.getManualRedactions(file2.getDossierId(), file2.getFileId(), false);
|
||||||
|
|
||||||
@ -963,7 +967,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
|
|||||||
0);
|
0);
|
||||||
fileManagementStorageService.storeJSONObject(dossier2.getId(), file2.getId(), FileType.ENTITY_LOG, entityLog2);
|
fileManagementStorageService.storeJSONObject(dossier2.getId(), file2.getId(), FileType.ENTITY_LOG, entityLog2);
|
||||||
var redactionRequest2 = RedactionRequest.builder().dossierId(file2.getDossierId()).fileId(file2.getFileId()).dossierTemplateId(file2.getDossierTemplateId()).build();
|
var redactionRequest2 = RedactionRequest.builder().dossierId(file2.getDossierId()).fileId(file2.getFileId()).dossierTemplateId(file2.getDossierTemplateId()).build();
|
||||||
when(entityLogService.getEntityLog(file2.getDossierId(), file2.getFileId())).thenReturn(entityLog2);
|
when(entityLogService.getEntityLog(eq(file2.getDossierId()), eq(file2.getFileId()), any(), anyBoolean())).thenReturn(entityLog2);
|
||||||
|
|
||||||
// resize redaction in dossier dict
|
// resize redaction in dossier dict
|
||||||
var resizeRedactionDosTemp = ResizeRedactionRequestModel.builder()
|
var resizeRedactionDosTemp = ResizeRedactionRequestModel.builder()
|
||||||
@ -974,7 +978,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
|
|||||||
.addToAllDossiers(true)
|
.addToAllDossiers(true)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
var resizeRedactions = manualRedactionClient.resizeRedactionBulk(dossier2.getId(), file2.getFileId(), Set.of(resizeRedactionDosTemp));
|
var resizeRedactions = manualRedactionClient.resizeRedactionBulk(dossier2.getId(), file2.getFileId(), Set.of(resizeRedactionDosTemp), false);
|
||||||
|
|
||||||
var loadedRedactionsFile2 = manualRedactionClient.getManualRedactions(file2.getDossierId(), file2.getFileId(), false);
|
var loadedRedactionsFile2 = manualRedactionClient.getManualRedactions(file2.getDossierId(), file2.getFileId(), false);
|
||||||
|
|
||||||
@ -1078,11 +1082,12 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
|
|||||||
0);
|
0);
|
||||||
fileManagementStorageService.storeJSONObject(dossier.getId(), file.getId(), FileType.ENTITY_LOG, entityLog);
|
fileManagementStorageService.storeJSONObject(dossier.getId(), file.getId(), FileType.ENTITY_LOG, entityLog);
|
||||||
|
|
||||||
when(entityLogService.getEntityLog(Mockito.any(), Mockito.any())).thenReturn(entityLog);
|
when(entityLogService.getEntityLog(Mockito.any(), Mockito.any(), any(), anyBoolean())).thenReturn(entityLog);
|
||||||
|
|
||||||
manualRedactionClient.recategorizeBulk(dossier.getId(),
|
manualRedactionClient.recategorizeBulk(dossier.getId(),
|
||||||
file.getId(),
|
file.getId(),
|
||||||
Set.of(RecategorizationRequestModel.builder().type(type2.getType()).annotationId(annotationId).addToDictionary(true).addToAllDossiers(true).build()));
|
Set.of(RecategorizationRequestModel.builder().type(type2.getType()).annotationId(annotationId).addToDictionary(true).addToAllDossiers(true).build()),
|
||||||
|
false);
|
||||||
|
|
||||||
dossierTemplateDictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null);
|
dossierTemplateDictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null);
|
||||||
assertThat(dossierTemplateDictionary.getEntries()).containsExactlyInAnyOrder(darthVader);
|
assertThat(dossierTemplateDictionary.getEntries()).containsExactlyInAnyOrder(darthVader);
|
||||||
@ -1094,7 +1099,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
|
|||||||
dossierDictionary2 = dictionaryClient.getDictionaryForType(type2.getType(), type.getDossierTemplateId(), dossier.getId());
|
dossierDictionary2 = dictionaryClient.getDictionaryForType(type2.getType(), type.getDossierTemplateId(), dossier.getId());
|
||||||
assertThat(dossierDictionary2.getEntries()).isEmpty();
|
assertThat(dossierDictionary2.getEntries()).isEmpty();
|
||||||
|
|
||||||
manualRedactionClient.undo(dossier.getId(), file.getFileId(), Set.of(annotationId));
|
manualRedactionClient.undo(dossier.getId(), file.getFileId(), Set.of(annotationId), false);
|
||||||
|
|
||||||
dossierTemplateDictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null);
|
dossierTemplateDictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null);
|
||||||
assertThat(dossierTemplateDictionary.getEntries()).containsExactlyInAnyOrder(lukeSkywalker, darthVader);
|
assertThat(dossierTemplateDictionary.getEntries()).containsExactlyInAnyOrder(lukeSkywalker, darthVader);
|
||||||
@ -1155,11 +1160,12 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
|
|||||||
0);
|
0);
|
||||||
fileManagementStorageService.storeJSONObject(dossier.getId(), file.getId(), FileType.ENTITY_LOG, entityLog);
|
fileManagementStorageService.storeJSONObject(dossier.getId(), file.getId(), FileType.ENTITY_LOG, entityLog);
|
||||||
|
|
||||||
when(entityLogService.getEntityLog(Mockito.any(), Mockito.any())).thenReturn(entityLog);
|
when(entityLogService.getEntityLog(Mockito.any(), Mockito.any(), any(), anyBoolean())).thenReturn(entityLog);
|
||||||
|
|
||||||
manualRedactionClient.recategorizeBulk(dossier.getId(),
|
manualRedactionClient.recategorizeBulk(dossier.getId(),
|
||||||
file.getId(),
|
file.getId(),
|
||||||
Set.of(RecategorizationRequestModel.builder().type(type2.getType()).annotationId(annotationId).addToDictionary(true).addToAllDossiers(false).build()));
|
Set.of(RecategorizationRequestModel.builder().type(type2.getType()).annotationId(annotationId).addToDictionary(true).addToAllDossiers(false).build()),
|
||||||
|
false);
|
||||||
|
|
||||||
dossierTemplateDictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null);
|
dossierTemplateDictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null);
|
||||||
assertThat(dossierTemplateDictionary.getEntries()).isEmpty();
|
assertThat(dossierTemplateDictionary.getEntries()).isEmpty();
|
||||||
@ -1171,7 +1177,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
|
|||||||
dossierDictionary2 = dictionaryClient.getDictionaryForType(type2.getType(), type.getDossierTemplateId(), dossier.getId());
|
dossierDictionary2 = dictionaryClient.getDictionaryForType(type2.getType(), type.getDossierTemplateId(), dossier.getId());
|
||||||
assertThat(dossierDictionary2.getEntries()).containsExactlyInAnyOrder(lukeSkywalker);
|
assertThat(dossierDictionary2.getEntries()).containsExactlyInAnyOrder(lukeSkywalker);
|
||||||
|
|
||||||
manualRedactionClient.undo(dossier.getId(), file.getFileId(), Set.of(annotationId));
|
manualRedactionClient.undo(dossier.getId(), file.getFileId(), Set.of(annotationId), false);
|
||||||
|
|
||||||
dossierTemplateDictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null);
|
dossierTemplateDictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null);
|
||||||
assertThat(dossierTemplateDictionary.getEntries()).isEmpty();
|
assertThat(dossierTemplateDictionary.getEntries()).isEmpty();
|
||||||
@ -1311,11 +1317,11 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
|
|||||||
0);
|
0);
|
||||||
fileManagementStorageService.storeJSONObject(dossier.getId(), file.getId(), FileType.ENTITY_LOG, entityLog);
|
fileManagementStorageService.storeJSONObject(dossier.getId(), file.getId(), FileType.ENTITY_LOG, entityLog);
|
||||||
|
|
||||||
when(entityLogService.getEntityLog(Mockito.any(), Mockito.any())).thenReturn(entityLog);
|
when(entityLogService.getEntityLog(Mockito.any(), Mockito.any(), any(), anyBoolean())).thenReturn(entityLog);
|
||||||
|
|
||||||
manualRedactionClient.removeRedactionBulk(dossier.getId(),
|
manualRedactionClient.removeRedactionBulk(dossier.getId(),
|
||||||
file.getId(),
|
file.getId(),
|
||||||
Set.of(RemoveRedactionRequestModel.builder().annotationId("AnnotationId").removeFromDictionary(true).removeFromAllDossiers(true).build()));
|
Set.of(RemoveRedactionRequestModel.builder().annotationId("AnnotationId").removeFromDictionary(true).removeFromAllDossiers(true).build()), false);
|
||||||
|
|
||||||
var allManualRedactions = manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false);
|
var allManualRedactions = manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false);
|
||||||
assertEquals(allManualRedactions.getIdsToRemove().size(), 1);
|
assertEquals(allManualRedactions.getIdsToRemove().size(), 1);
|
||||||
@ -1337,7 +1343,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
|
|||||||
|
|
||||||
manualRedactionClient.removeRedactionBulk(dossier.getId(),
|
manualRedactionClient.removeRedactionBulk(dossier.getId(),
|
||||||
file.getId(),
|
file.getId(),
|
||||||
Set.of(RemoveRedactionRequestModel.builder().annotationId("AnnotationId2").removeFromDictionary(true).removeFromAllDossiers(true).build()));
|
Set.of(RemoveRedactionRequestModel.builder().annotationId("AnnotationId2").removeFromDictionary(true).removeFromAllDossiers(true).build()), false);
|
||||||
|
|
||||||
allManualRedactions = manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false);
|
allManualRedactions = manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false);
|
||||||
assertEquals(allManualRedactions.getIdsToRemove().size(), 2);
|
assertEquals(allManualRedactions.getIdsToRemove().size(), 2);
|
||||||
@ -1468,9 +1474,10 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
|
|||||||
0);
|
0);
|
||||||
fileManagementStorageService.storeJSONObject(dossier.getId(), file.getId(), FileType.ENTITY_LOG, entityLog);
|
fileManagementStorageService.storeJSONObject(dossier.getId(), file.getId(), FileType.ENTITY_LOG, entityLog);
|
||||||
|
|
||||||
when(entityLogService.getEntityLog(Mockito.any(), Mockito.any())).thenReturn(entityLog);
|
when(entityLogService.getEntityLog(Mockito.any(), Mockito.any(), any(), anyBoolean())).thenReturn(entityLog);
|
||||||
|
|
||||||
manualRedactionClient.recategorizeBulk(dossier.getId(), file.getId(), Set.of(RecategorizationRequestModel.builder().annotationId("dv").build()));
|
manualRedactionClient.recategorizeBulk(dossier.getId(), file.getId(), Set.of(RecategorizationRequestModel.builder().annotationId("dv").build()),
|
||||||
|
false);
|
||||||
|
|
||||||
var allManualRedactions = manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false);
|
var allManualRedactions = manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false);
|
||||||
assertEquals(allManualRedactions.getRecategorizations().size(), 1);
|
assertEquals(allManualRedactions.getRecategorizations().size(), 1);
|
||||||
@ -1490,7 +1497,8 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
|
|||||||
.dossierId(dossier.getId())
|
.dossierId(dossier.getId())
|
||||||
.build());
|
.build());
|
||||||
|
|
||||||
manualRedactionClient.recategorizeBulk(dossier.getId(), file.getId(), Set.of(RecategorizationRequestModel.builder().annotationId("dv2").build()));
|
manualRedactionClient.recategorizeBulk(dossier.getId(), file.getId(), Set.of(RecategorizationRequestModel.builder().annotationId("dv2").build()),
|
||||||
|
false);
|
||||||
|
|
||||||
allManualRedactions = manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false);
|
allManualRedactions = manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false);
|
||||||
assertEquals(allManualRedactions.getRecategorizations().size(), 2);
|
assertEquals(allManualRedactions.getRecategorizations().size(), 2);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user