RED-7384: deprecate AnnotationStatus

This commit is contained in:
Kilian Schüttler 2024-01-29 10:04:15 +01:00
parent 4cfe7d9c95
commit f3b2620df7
40 changed files with 254 additions and 243 deletions

View File

@ -9,7 +9,10 @@ public interface IBaseAnnotation {
AnnotationEntityId getId();
AnnotationStatus getStatus();
@Deprecated(forRemoval = true)
default AnnotationStatus getStatus() {
return AnnotationStatus.APPROVED;
}
OffsetDateTime getRequestDate();

View File

@ -4,22 +4,18 @@ import java.time.OffsetDateTime;
import java.util.HashSet;
import java.util.Set;
import jakarta.persistence.Column;
import jakarta.persistence.ElementCollection;
import jakarta.persistence.EmbeddedId;
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.FetchType;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.AnnotationStatus;
import jakarta.persistence.Column;
import jakarta.persistence.ElementCollection;
import jakarta.persistence.EmbeddedId;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@ -38,9 +34,6 @@ public class IdRemovalEntity implements IBaseAnnotation {
@Column(name = "user_id")
private String user;
@Column
@Enumerated(EnumType.STRING)
private AnnotationStatus status;
@Column
private boolean removeFromDictionary;
@Column
private boolean removeFromAllDossiers;

View File

@ -2,17 +2,13 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.annotat
import java.time.OffsetDateTime;
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity;
import jakarta.persistence.Column;
import jakarta.persistence.EmbeddedId;
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.AnnotationStatus;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@ -30,9 +26,6 @@ public class ManualForceRedactionEntity implements IBaseAnnotation {
private AnnotationEntityId id;
@Column(name = "user_id")
private String user;
@Column
@Enumerated(EnumType.STRING)
private AnnotationStatus status;
@Column(length = 4000)
private String legalBasis;
@Column

View File

@ -2,17 +2,13 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.annotat
import java.time.OffsetDateTime;
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity;
import jakarta.persistence.Column;
import jakarta.persistence.EmbeddedId;
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.AnnotationStatus;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@ -32,9 +28,6 @@ public class ManualLegalBasisChangeEntity implements IBaseAnnotation {
@Column(name = "user_id")
private String user;
@Column
@Enumerated(EnumType.STRING)
private AnnotationStatus status;
@Column
private String section;
@Column
private String value;

View File

@ -8,15 +8,12 @@ import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.AnnotationStatus;
import jakarta.persistence.CollectionTable;
import jakarta.persistence.Column;
import jakarta.persistence.ElementCollection;
import jakarta.persistence.EmbeddedId;
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.AllArgsConstructor;
@ -37,9 +34,6 @@ public class ManualRecategorizationEntity implements IBaseAnnotation {
@Column(name = "user_id")
private String user;
@Column
@Enumerated(EnumType.STRING)
private AnnotationStatus status;
@Column
private String typeId;
@Column
private OffsetDateTime requestDate;

View File

@ -6,6 +6,12 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity;
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.DictionaryEntryType;
import jakarta.persistence.Column;
import jakarta.persistence.ElementCollection;
import jakarta.persistence.EmbeddedId;
@ -15,14 +21,6 @@ import jakarta.persistence.Enumerated;
import jakarta.persistence.FetchType;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.AnnotationStatus;
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.DictionaryEntryType;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@ -49,9 +47,6 @@ public class ManualRedactionEntryEntity implements IBaseAnnotation {
@Column
private String legalBasis;
@Column
@Enumerated(EnumType.STRING)
private AnnotationStatus status;
@Column
private String section;
@Column
private boolean rectangle;

View File

@ -10,14 +10,11 @@ import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.AnnotationStatus;
import jakarta.persistence.Column;
import jakarta.persistence.ElementCollection;
import jakarta.persistence.EmbeddedId;
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.FetchType;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
@ -39,9 +36,6 @@ public class ManualResizeRedactionEntity implements IBaseAnnotation {
@Column(name = "user_id")
private String user;
@Column
@Enumerated(EnumType.STRING)
private AnnotationStatus status;
@Column
private OffsetDateTime requestDate;
@Column
private OffsetDateTime processedDate;

View File

@ -25,7 +25,6 @@ import com.iqser.red.service.persistence.management.v1.processor.service.persist
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.annotations.ResizeRedactionPersistenceService;
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.EntryType;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.AnnotationStatus;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.ManualRequestWithAddToDictionary;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.ManualRequestWithRemoveFromDictionary;
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.WorkflowStatus;
@ -137,7 +136,7 @@ public class ManualRedactionDictionaryUpdateHandler {
public Set<String> updateDictionaryForResizeRedactions(String dossierId, String fileId, ManualResizeRedactionEntity resizeRedaction, EntityLogEntry entityLogEntry) {
if (resizeRedaction.getUpdateDictionary() != null && resizeRedaction.getUpdateDictionary() && resizeRedaction.getStatus().equals(AnnotationStatus.APPROVED)) {
if (resizeRedaction.getUpdateDictionary() != null && resizeRedaction.getUpdateDictionary()) {
var dossier = dossierPersistenceService.findByDossierId(dossierId);
@ -297,7 +296,7 @@ public class ManualRedactionDictionaryUpdateHandler {
private void removeResizeRedactionsWithAddToDictionary(String dossierTemplateId, String entityLogEntryValue) {
var resizeRedactionsWithSameValue = resizeRedactionPersistenceService.findByAnnotationStatusAndValue(AnnotationStatus.APPROVED, entityLogEntryValue);
var resizeRedactionsWithSameValue = resizeRedactionPersistenceService.findByValue(entityLogEntryValue);
resizeRedactionsWithSameValue.forEach(resizeRedaction -> {
var file = fileStatusPersistenceService.getStatus(resizeRedaction.getId().getFileId());
var dossierForResizeRedaction = dossierPersistenceService.findByDossierId(file.getDossierId());

View File

@ -16,7 +16,6 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog
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.EntryType;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.AddRedactionRequest;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.AnnotationStatus;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.ForceRedactionRequest;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.LegalBasisChangeRequest;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.RecategorizationRequest;
@ -63,7 +62,6 @@ public class ManualRedactionMapper {
.dossierTemplateTypeId(toTypeId(addRedactionRequest.getType(), dossierTemplateId))
.reason(addRedactionRequest.getReason())
.addToDictionary(addRedactionRequest.isAddToDictionary())
.status(AnnotationStatus.APPROVED)
.comment(addRedactionRequest.getComment() != null ? addRedactionRequest.getComment().getText() : null)
.section(addRedactionRequest.getSection())
.rectangle(addRedactionRequest.isRectangle())
@ -80,7 +78,8 @@ public class ManualRedactionMapper {
public List<RemoveRedactionRequest> toRemoveRedactionRequestList(String dossierId,
String fileId,
String dossierTemplateId,
Set<RemoveRedactionRequestModel> removeRedactionRequests, boolean includeUnprocessed) {
Set<RemoveRedactionRequestModel> removeRedactionRequests,
boolean includeUnprocessed) {
List<RemoveRedactionRequest> requests = new ArrayList<>();
EntityLog entityLog = entityLogService.getEntityLog(dossierId, fileId, Collections.emptyList(), includeUnprocessed);
@ -89,7 +88,6 @@ public class ManualRedactionMapper {
var removeRedactionRequestBuilder = RemoveRedactionRequest.builder()
.annotationId(removeRedactionRequest.getAnnotationId())
.user(KeycloakSecurity.getUserId())
.status(AnnotationStatus.APPROVED)
.removeFromDictionary(removeRedactionRequest.isRemoveFromDictionary())
.removeFromAllDossiers(removeRedactionRequest.isRemoveFromAllDossiers())
.value(entityLogEntry.getValue())
@ -114,7 +112,6 @@ public class ManualRedactionMapper {
.map(forceRedactionRequest -> ForceRedactionRequest.builder()
.annotationId(forceRedactionRequest.getAnnotationId())
.user(KeycloakSecurity.getUserId())
.status(AnnotationStatus.APPROVED)
.legalBasis(forceRedactionRequest.getLegalBasis())
.comment(forceRedactionRequest.getComment())
.build())
@ -128,7 +125,6 @@ public class ManualRedactionMapper {
.map(legalBasisChangeRequest -> LegalBasisChangeRequest.builder()
.annotationId(legalBasisChangeRequest.getAnnotationId())
.user(KeycloakSecurity.getUserId())
.status(AnnotationStatus.APPROVED)
.section(legalBasisChangeRequest.getSection())
.legalBasis(legalBasisChangeRequest.getLegalBasis())
.comment(legalBasisChangeRequest.getComment())
@ -151,7 +147,6 @@ public class ManualRedactionMapper {
RecategorizationRequest build = RecategorizationRequest.builder()
.annotationId(recategorizationRequest.getAnnotationId())
.user(KeycloakSecurity.getUserId())
.status(AnnotationStatus.APPROVED)
.dossierTemplateId(dossierTemplateId)
.comment(recategorizationRequest.getComment())
.dossierId(dossierId)
@ -175,7 +170,6 @@ public class ManualRedactionMapper {
.map(resizeRedactionRequest -> ResizeRedactionRequest.builder()
.annotationId(resizeRedactionRequest.getAnnotationId())
.user(KeycloakSecurity.getUserId())
.status(AnnotationStatus.APPROVED)
.positions(resizeRedactionRequest.getPositions())
.value(resizeRedactionRequest.getValue() == null ? "" : StringCleaningUtility.cleanString(resizeRedactionRequest.getValue()))
.comment(resizeRedactionRequest.getComment())

View File

@ -19,7 +19,6 @@ import com.iqser.red.service.persistence.management.v1.processor.entity.annotati
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualResizeRedactionEntity;
import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException;
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
import com.iqser.red.service.persistence.management.v1.processor.service.AnalysisFlagsCalculationService;
import com.iqser.red.service.persistence.management.v1.processor.service.CommentService;
import com.iqser.red.service.persistence.management.v1.processor.service.EntityLogMergeService;
import com.iqser.red.service.persistence.management.v1.processor.service.EntityLogService;
@ -37,7 +36,6 @@ import com.iqser.red.service.persistence.management.v1.processor.utils.ManualRes
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.annotations.AddRedactionRequest;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.AnnotationStatus;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.ForceRedactionRequest;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.LegalBasisChangeRequest;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.ManualAddResponse;
@ -99,11 +97,7 @@ public class ManualRedactionService {
addRedactionRequest.getValue(),
addRedactionRequest);
addRedactionPersistenceService.updateStatus(fileId,
annotationId,
addRedactionRequest.getStatus(),
!typeIdsOfModifiedDictionaries.isEmpty(),
typeIdsOfModifiedDictionaries);
addRedactionPersistenceService.updateModifiedDictionaries(fileId, annotationId, !typeIdsOfModifiedDictionaries.isEmpty(), typeIdsOfModifiedDictionaries);
Long commentId = commentService.addCommentAndGetId(fileId, annotationId, addRedactionRequest.getComment(), addRedactionRequest.getUser());
@ -156,9 +150,8 @@ public class ManualRedactionService {
boolean removedFromDictionary = !typeIdsOfModifiedDictionaries.isEmpty();
removeRedactionPersistenceService.updateStatus(fileId,
removeRedactionPersistenceService.updateModifiedDictionaries(fileId,
removeRedactionRequest.getAnnotationId(),
removeRedactionRequest.getStatus(),
removedFromDictionary,
typeIdsOfModifiedDictionaries);
@ -239,9 +232,8 @@ public class ManualRedactionService {
Set<String> typeIdsOfDictionariesWithDelete = manualRedactionDictionaryUpdateHandler.handleRemoveFromDictionaryAndReturnModifiedTypeIds(fileId,
recategorizationRequest);
recategorizationPersistenceService.updateStatus(fileId,
recategorizationPersistenceService.updateModifiedDictionaries(fileId,
recategorizationRequest.getAnnotationId(),
AnnotationStatus.APPROVED,
typeIdsOfDictionariesWithAdd,
typeIdsOfDictionariesWithDelete);
@ -286,10 +278,7 @@ public class ManualRedactionService {
resizeRedaction,
getEntityLogEntry(entityLog, resizeRedaction.getId().getAnnotationId()));
resizeRedactionPersistenceService.updateStatus(resizeRedaction.getId().getFileId(),
resizeRedaction.getId().getAnnotationId(),
resizeRedaction.getStatus(),
typeIdsOfModifiedDictionaries);
resizeRedactionPersistenceService.updateModifiedDictionaries(resizeRedaction.getId().getFileId(), resizeRedaction.getId().getAnnotationId(), typeIdsOfModifiedDictionaries);
}
manualResizeRedactionEntities = manualResizeRedactionEntities.stream()
@ -352,42 +341,42 @@ public class ManualRedactionService {
if (manualRedactions.getEntriesToAdd() != null) {
manualRedactions.getEntriesToAdd().forEach(e -> {
if (!e.getStatus().equals(AnnotationStatus.REQUESTED) && e.getProcessedDate() == null) {
if (e.getProcessedDate() == null) {
addRedactionPersistenceService.markAsProcessed(e);
}
});
}
if (manualRedactions.getIdsToRemove() != null) {
manualRedactions.getIdsToRemove().forEach(e -> {
if (!e.getStatus().equals(AnnotationStatus.REQUESTED) && e.getProcessedDate() == null) {
if (e.getProcessedDate() == null) {
removeRedactionPersistenceService.markAsProcessed(e);
}
});
}
if (manualRedactions.getForceRedactions() != null) {
manualRedactions.getForceRedactions().forEach(e -> {
if (!e.getStatus().equals(AnnotationStatus.REQUESTED) && e.getProcessedDate() == null) {
if (e.getProcessedDate() == null) {
forceRedactionPersistenceService.markAsProcessed(e.getAnnotationId(), e.getFileId());
}
});
}
if (manualRedactions.getRecategorizations() != null) {
manualRedactions.getRecategorizations().forEach(e -> {
if (!e.getStatus().equals(AnnotationStatus.REQUESTED) && e.getProcessedDate() == null) {
if (e.getProcessedDate() == null) {
recategorizationPersistenceService.markAsProcessed(e.getAnnotationId(), e.getFileId());
}
});
}
if (manualRedactions.getResizeRedactions() != null) {
manualRedactions.getResizeRedactions().forEach(e -> {
if (!e.getStatus().equals(AnnotationStatus.REQUESTED) && e.getProcessedDate() == null) {
if (e.getProcessedDate() == null) {
resizeRedactionPersistenceService.markAsProcessed(e.getAnnotationId(), e.getFileId());
}
});
}
if (manualRedactions.getLegalBasisChanges() != null) {
manualRedactions.getLegalBasisChanges().forEach(e -> {
if (!e.getStatus().equals(AnnotationStatus.REQUESTED) && e.getProcessedDate() == null) {
if (e.getProcessedDate() == null) {
legalBasisChangePersistenceService.markAsProcessed(e.getAnnotationId(), e.getFileId());
}
});

View File

@ -35,7 +35,6 @@ import com.iqser.red.service.persistence.management.v1.processor.service.persist
import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory;
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.annotations.AnnotationStatus;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.ManualRedactions;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.IdRemoval;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualForceRedaction;
@ -202,7 +201,7 @@ public class ManualRedactionUndoService {
fileId,
dossierId,
recategorizationEntity.getTypeIdsOfDictionariesWithAdd());
recategorizationPersistenceService.updateStatus(fileId, annotationId, AnnotationStatus.APPROVED, Collections.emptySet(), Collections.emptySet());
recategorizationPersistenceService.updateModifiedDictionaries(fileId, annotationId, Collections.emptySet(), Collections.emptySet());
recategorizationPersistenceService.softDelete(fileId, annotationId, OffsetDateTime.now());
}
@ -271,7 +270,7 @@ public class ManualRedactionUndoService {
IdRemovalEntity removeRedaction = removeRedactionPersistenceService.findRemoveRedaction(fileId, annotationId);
String originalValue = getEntityLogEntry(entityLog, annotationId).getValue();
boolean dictionaryChanged = manualRedactionDictionaryUpdateHandler.revertRemoveFromDictionary(originalValue, dossierId, fileId, removeRedaction);
removeRedactionPersistenceService.updateStatus(fileId, annotationId, removeRedaction.getStatus(), dictionaryChanged, Collections.emptySet());
removeRedactionPersistenceService.updateModifiedDictionaries(fileId, annotationId, dictionaryChanged, Collections.emptySet());
removeRedactionPersistenceService.softDelete(fileId, annotationId, OffsetDateTime.now());
}
@ -307,7 +306,7 @@ public class ManualRedactionUndoService {
ManualRedactionEntryEntity addRedaction = addRedactionPersistenceService.findAddRedaction(fileId, annotationId);
boolean dictionaryChanged = manualRedactionDictionaryUpdateHandler.revertAddToDictionary(fileId, dossier.getId(), addRedaction);
addRedactionPersistenceService.updateStatus(fileId, annotationId, AnnotationStatus.APPROVED, dictionaryChanged, null);
addRedactionPersistenceService.updateModifiedDictionaries(fileId, annotationId, dictionaryChanged, null);
addRedactionPersistenceService.softDelete(fileId, annotationId, OffsetDateTime.now());
}

View File

@ -71,7 +71,6 @@ public class RulesPersistenceService {
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualForceRedaction;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualRecategorization;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualLegalBasisChange;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.AnnotationStatus;
global Document document
global EntityCreationService entityCreationService

View File

@ -17,7 +17,6 @@ import com.iqser.red.service.persistence.management.v1.processor.entity.annotati
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.annotationentity.ManualRedactionRepository;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.AddRedactionRequest;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.AnnotationStatus;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.Rectangle;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualRedactionEntry;
@ -47,11 +46,13 @@ public class AddRedactionPersistenceService {
}
public Optional<ManualRedactionEntryEntity> findById(String annotationId, String fileId) {
return manualRedactionRepository.findById(new AnnotationEntityId(annotationId, fileId));
}
private List<RectangleEntity> convert(List<Rectangle> positions) {
List<RectangleEntity> rectangleEntities = new ArrayList<>();
@ -109,14 +110,6 @@ public class AddRedactionPersistenceService {
manualRedactionRepository.updateSoftDelete(new AnnotationEntityId(annotationId, fileId), null);
}
@Transactional
public void updateStatus(String fileId, String annotationId, AnnotationStatus annotationStatus, OffsetDateTime processedDate) {
manualRedactionRepository.updateStatus(new AnnotationEntityId(annotationId, fileId), annotationStatus, processedDate);
}
@Transactional
public void update(ManualRedactionEntryEntity manualRedactionEntry) {
@ -125,16 +118,11 @@ public class AddRedactionPersistenceService {
@Transactional
public void updateStatus(String fileId,
String annotationId,
AnnotationStatus annotationStatus,
boolean isAddOrRemoveFromDictionary,
Set<String> typeIdsOfModifiedDictionaries) {
public void updateModifiedDictionaries(String fileId, String annotationId, boolean isAddOrRemoveFromDictionary, Set<String> typeIdsOfModifiedDictionaries) {
ManualRedactionEntryEntity addRedaction = manualRedactionRepository.findById(new AnnotationEntityId(annotationId, fileId))
.orElseThrow(() -> new NotFoundException("Unknown file/annotation combination: " + fileId + "/" + annotationId));
addRedaction.setStatus(annotationStatus);
addRedaction.setAddToDictionary(isAddOrRemoveFromDictionary);
addRedaction.setTypeIdsOfModifiedDictionaries(typeIdsOfModifiedDictionaries);
@ -142,13 +130,6 @@ public class AddRedactionPersistenceService {
}
@Transactional
public void approveStatusForRequestedRedactionsWithSameValue(Set<String> fileIds, String value) {
manualRedactionRepository.updateStatus(fileIds, value, AnnotationStatus.REQUESTED, AnnotationStatus.APPROVED, OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS));
}
@Transactional
public void markAsProcessed(ManualRedactionEntry e) {

View File

@ -13,7 +13,6 @@ import com.iqser.red.service.persistence.management.v1.processor.entity.annotati
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualForceRedactionEntity;
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.annotationentity.ForceRedactionRepository;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.AnnotationStatus;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.ForceRedactionRequest;
import lombok.RequiredArgsConstructor;
@ -37,13 +36,6 @@ public class ForceRedactionPersistenceService {
}
@Transactional
public void updateStatus(String fileId, String annotationId, AnnotationStatus annotationStatus) {
forceRedactionRepository.updateStatus(new AnnotationEntityId(annotationId, fileId), annotationStatus);
}
@Transactional
public void hardDelete(String fileId, String annotationId) {

View File

@ -15,7 +15,6 @@ import com.iqser.red.service.persistence.management.v1.processor.entity.annotati
import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException;
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.annotationentity.LegalBasisChangeRepository;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.AnnotationStatus;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.LegalBasisChangeRequest;
import lombok.RequiredArgsConstructor;
@ -72,13 +71,6 @@ public class LegalBasisChangePersistenceService {
}
@Transactional
public void updateStatus(String fileId, String annotationId, AnnotationStatus annotationStatus) {
legalBasisChangeRepository.updateStatus(new AnnotationEntityId(annotationId, fileId), annotationStatus, OffsetDateTime.now());
}
public ManualLegalBasisChangeEntity findLegalBasisChange(String fileId, String annotationId) {
return legalBasisChangeRepository.findByIdAndNotSoftDeleted(new AnnotationEntityId(annotationId, fileId))

View File

@ -13,7 +13,6 @@ import com.iqser.red.service.persistence.management.v1.processor.entity.annotati
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualRecategorizationEntity;
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.annotationentity.RecategorizationRepository;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.AnnotationStatus;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.RecategorizationRequest;
import lombok.RequiredArgsConstructor;
@ -39,24 +38,15 @@ public class RecategorizationPersistenceService {
}
@Transactional
public void updateStatus(String fileId, String annotationId, AnnotationStatus annotationStatus) {
recategorizationRepository.updateStatus(new AnnotationEntityId(annotationId, fileId), annotationStatus);
}
@Transactional
public void updateStatus(String fileId,
String annotationId,
AnnotationStatus annotationStatus,
Set<String> typeIdsOfDictionaryWithAdd,
Set<String> typeIdsOfDictionaryWithDelete) {
public void updateModifiedDictionaries(String fileId,
String annotationId, Set<String> typeIdsOfDictionaryWithAdd,
Set<String> typeIdsOfDictionaryWithDelete) {
ManualRecategorizationEntity addRedaction = recategorizationRepository.findById(new AnnotationEntityId(annotationId, fileId))
.orElseThrow(() -> new NotFoundException("Unknown file/annotation combination: " + fileId + "/" + annotationId));
addRedaction.setStatus(annotationStatus);
addRedaction.setTypeIdsOfDictionariesWithAdd(typeIdsOfDictionaryWithAdd);
addRedaction.setTypeIdsOfDictionariesWithDelete(typeIdsOfDictionaryWithDelete);

View File

@ -14,7 +14,6 @@ import com.iqser.red.service.persistence.management.v1.processor.entity.annotati
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.IdRemovalEntity;
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.annotationentity.RemoveRedactionRepository;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.AnnotationStatus;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.RemoveRedactionRequest;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.IdRemoval;
@ -88,23 +87,11 @@ public class RemoveRedactionPersistenceService {
@Transactional
public void updateStatus(String fileId, String annotationId, AnnotationStatus annotationStatus) {
removeRedactionRepository.updateStatus(new AnnotationEntityId(annotationId, fileId), annotationStatus);
}
@Transactional
public void updateStatus(String fileId,
String annotationId,
AnnotationStatus annotationStatus,
boolean isAddOrRemoveFromDictionary,
Set<String> typeIdsOfModifiedDictionaries) {
public void updateModifiedDictionaries(String fileId, String annotationId, boolean isAddOrRemoveFromDictionary, Set<String> typeIdsOfModifiedDictionaries) {
var idRemoval = removeRedactionRepository.findByIdAndNotSoftDeleted(new AnnotationEntityId(annotationId, fileId))
.orElseThrow(() -> new NotFoundException("Unknown file/annotation combination: " + fileId + "/" + annotationId));
idRemoval.setStatus(annotationStatus);
idRemoval.setRemoveFromDictionary(isAddOrRemoveFromDictionary);
idRemoval.setTypeIdsOfModifiedDictionaries(typeIdsOfModifiedDictionaries);

View File

@ -15,7 +15,6 @@ import com.iqser.red.service.persistence.management.v1.processor.entity.annotati
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.RectangleEntity;
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.annotationentity.ResizeRedactionRepository;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.AnnotationStatus;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.ResizeRedactionRequest;
import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter;
@ -51,12 +50,11 @@ public class ResizeRedactionPersistenceService {
@Transactional
public void updateStatus(String fileId, String annotationId, AnnotationStatus annotationStatus, Set<String> typeIdsOfModifiedDictionaries) {
public void updateModifiedDictionaries(String fileId, String annotationId, Set<String> typeIdsOfModifiedDictionaries) {
var resizeRedaction = resizeRedactionRepository.findById(new AnnotationEntityId(annotationId, fileId))
.orElseThrow(() -> new NotFoundException("Unknown file/annotation combination: " + fileId + "/" + annotationId));
resizeRedaction.setStatus(annotationStatus);
resizeRedaction.setTypeIdsOfModifiedDictionaries(typeIdsOfModifiedDictionaries);
}
@ -106,9 +104,9 @@ public class ResizeRedactionPersistenceService {
}
public List<ManualResizeRedactionEntity> findByAnnotationStatusAndValue(AnnotationStatus status, String value) {
public List<ManualResizeRedactionEntity> findByValue(String value) {
return resizeRedactionRepository.findByStatusAndValue(status, value);
return resizeRedactionRepository.findByValue(value);
}

View File

@ -11,27 +11,26 @@ import org.springframework.data.repository.query.Param;
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.AnnotationEntityId;
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualForceRedactionEntity;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.AnnotationStatus;
public interface ForceRedactionRepository extends JpaRepository<ManualForceRedactionEntity, AnnotationEntityId>, AnnotationEntityRepository {
@Modifying(clearAutomatically = true)
@Query("update ManualForceRedactionEntity mfr set mfr.status = :annotationStatus where mfr.id = :annotationEntityId")
void updateStatus(@Param("annotationEntityId") AnnotationEntityId annotationEntityId, @Param("annotationStatus") AnnotationStatus annotationStatus);
@Modifying
@Query("update ManualForceRedactionEntity mfr set mfr.softDeletedTime = :softDeletedTime where mfr.id = :annotationEntityId")
void updateSoftDelete(@Param("annotationEntityId") AnnotationEntityId annotationEntityId, @Param("softDeletedTime") OffsetDateTime softDeletedTime);
@Query("select mfr from ManualForceRedactionEntity mfr where mfr.id = :annotationEntityId and mfr.softDeletedTime is null")
Optional<ManualForceRedactionEntity> findByIdAndNotSoftDeleted(@Param("annotationEntityId") AnnotationEntityId annotationEntityId);
@Query("select mfr from ManualForceRedactionEntity mfr where mfr.id.fileId = :fileId and (:includeDeletions = true or mfr.softDeletedTime is null)")
List<ManualForceRedactionEntity> findByFileIdIncludeDeletions(@Param("fileId") String fileId, @Param("includeDeletions") boolean includeDeletions);
@Query("select mfr from ManualForceRedactionEntity mfr where mfr.id.fileId = :fileId and mfr.processedDate is null")
List<ManualForceRedactionEntity> findByFileIdAndUnprocessed(@Param("fileId") String fileId);
@Modifying
@Query("update ManualForceRedactionEntity mfr set mfr.processedDate = :processedDate where mfr.id = :annotationEntityId")
void markAsProcessed(@Param("annotationEntityId") AnnotationEntityId annotationEntityId, @Param("processedDate") OffsetDateTime processedDate);

View File

@ -11,27 +11,26 @@ import org.springframework.data.repository.query.Param;
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.AnnotationEntityId;
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualLegalBasisChangeEntity;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.AnnotationStatus;
public interface LegalBasisChangeRepository extends JpaRepository<ManualLegalBasisChangeEntity, AnnotationEntityId>, AnnotationEntityRepository {
@Modifying(clearAutomatically = true)
@Query("update ManualLegalBasisChangeEntity mlbc set mlbc.status = :annotationStatus, mlbc.processedDate = :processedDate where mlbc.id = :annotationEntityId")
void updateStatus(@Param("annotationEntityId") AnnotationEntityId annotationEntityId, @Param("annotationStatus") AnnotationStatus annotationStatus, @Param("processedDate") OffsetDateTime processedDate);
@Modifying
@Query("update ManualLegalBasisChangeEntity mlbc set mlbc.softDeletedTime = :softDeletedTime where mlbc.id = :annotationEntityId")
void updateSoftDelete(@Param("annotationEntityId") AnnotationEntityId annotationEntityId, @Param("softDeletedTime") OffsetDateTime softDeletedTime);
@Query("select mlbc from ManualLegalBasisChangeEntity mlbc where mlbc.id = :annotationEntityId and mlbc.softDeletedTime is null")
Optional<ManualLegalBasisChangeEntity> findByIdAndNotSoftDeleted(@Param("annotationEntityId") AnnotationEntityId annotationEntityId);
@Query("select mlbc from ManualLegalBasisChangeEntity mlbc where mlbc.id.fileId = :fileId and (:includeDeletions = true or mlbc.softDeletedTime is null)")
List<ManualLegalBasisChangeEntity> findByFileIdIncludeDeletions(@Param("fileId") String fileId, @Param("includeDeletions") boolean includeDeletions);
@Query("select mlbc from ManualLegalBasisChangeEntity mlbc where mlbc.id.fileId = :fileId and mlbc.processedDate is null")
List<ManualLegalBasisChangeEntity> findUnprocessedByFileId(@Param("fileId") String fileId);
@Modifying
@Query("update ManualLegalBasisChangeEntity mlbc set mlbc.processedDate = :processedDate where mlbc.id = :annotationEntityId")
void markAsProcessed(@Param("annotationEntityId") AnnotationEntityId annotationEntityId, @Param("processedDate") OffsetDateTime processedDate);

View File

@ -3,7 +3,6 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persis
import java.time.OffsetDateTime;
import java.util.List;
import java.util.Optional;
import java.util.Set;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
@ -12,7 +11,6 @@ import org.springframework.data.repository.query.Param;
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.AnnotationEntityId;
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualRedactionEntryEntity;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.AnnotationStatus;
public interface ManualRedactionRepository extends JpaRepository<ManualRedactionEntryEntity, AnnotationEntityId>, AnnotationEntityRepository {
@ -20,26 +18,24 @@ public interface ManualRedactionRepository extends JpaRepository<ManualRedaction
@Query("update ManualRedactionEntryEntity m set m.softDeletedTime = :softDeleteTime where m.id = :id")
void updateSoftDelete(@Param("id") AnnotationEntityId id, @Param("softDeleteTime") OffsetDateTime softDeleteTime);
@Modifying(clearAutomatically = true)
@Query("update ManualRedactionEntryEntity m set m.status = :annotationStatus, m.processedDate = :processedDate where m.id = :id")
void updateStatus(@Param("id") AnnotationEntityId id, @Param("annotationStatus") AnnotationStatus annotationStatus, @Param("processedDate") OffsetDateTime processedDate);
@Modifying
@Query("update ManualRedactionEntryEntity m set m.status = :annotationStatus, m.addToDictionary = :isAddOrRemoveFromDictionary, m.addToDossierDictionary = :isAddOrRemoveFromDossierDictionary where m.id = :id")
void updateStatus(@Param("id") AnnotationEntityId id, @Param("annotationStatus") AnnotationStatus annotationStatus, @Param("isAddOrRemoveFromDictionary") boolean isAddOrRemoveFromDictionary, @Param("isAddOrRemoveFromDossierDictionary") boolean isAddOrRemoveFromDossierDictionary);
@Query("update ManualRedactionEntryEntity m set m.addToDictionary = :isAddOrRemoveFromDictionary, m.addToDossierDictionary = :isAddOrRemoveFromDossierDictionary where m.id = :id")
void updateStatus(@Param("id") AnnotationEntityId id,
@Param("isAddOrRemoveFromDictionary") boolean isAddOrRemoveFromDictionary,
@Param("isAddOrRemoveFromDossierDictionary") boolean isAddOrRemoveFromDossierDictionary);
@Query("select m from ManualRedactionEntryEntity m where m.id = :id and m.softDeletedTime is null")
Optional<ManualRedactionEntryEntity> findAddRedaction(@Param("id") AnnotationEntityId id);
@Query("select m from ManualRedactionEntryEntity m where m.id.fileId = :fileId and (:includeDeletions = true or m.softDeletedTime is null)")
List<ManualRedactionEntryEntity> findByFileIdIncludeDeletions(@Param("fileId") String fileId, @Param("includeDeletions") boolean includeDeletions);
@Query("select m from ManualRedactionEntryEntity m where m.id.fileId = :fileId and m.processedDate is null")
List<ManualRedactionEntryEntity> findByFileIdAndUnprocessed(@Param("fileId") String fileId);
@Modifying
@Query("update ManualRedactionEntryEntity m set m.status = :newStatus, m.processedDate = :processedDate where m.id.fileId in :fileIds and m.value = :filterValue and m.addToDictionary = true and m.status = :filterStatus")
void updateStatus(@Param("fileIds") Set<String> fileIds, @Param("filterValue") String filterValue, @Param("filterStatus") AnnotationStatus filterStatus, @Param("newStatus") AnnotationStatus newStatus, @Param("processedDate") OffsetDateTime processedDate);
@Modifying
@Query("update ManualRedactionEntryEntity m set m.processedDate = :processedDate where m.id = :annotationEntityId")

View File

@ -11,14 +11,9 @@ import org.springframework.data.repository.query.Param;
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.AnnotationEntityId;
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualRecategorizationEntity;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.AnnotationStatus;
public interface RecategorizationRepository extends JpaRepository<ManualRecategorizationEntity, AnnotationEntityId>, AnnotationEntityRepository {
@Modifying(clearAutomatically = true)
@Query("update ManualRecategorizationEntity mir set mir.status = :annotationStatus where mir.id = :annotationEntityId")
void updateStatus(@Param("annotationEntityId") AnnotationEntityId annotationEntityId, @Param("annotationStatus") AnnotationStatus annotationStatus);
@Modifying
@Query("update ManualRecategorizationEntity mir set mir.softDeletedTime = :softDeletedTime where mir.id = :annotationEntityId")
void updateSoftDelete(@Param("annotationEntityId") AnnotationEntityId annotationEntityId, @Param("softDeletedTime") OffsetDateTime softDeletedTime);

View File

@ -11,7 +11,6 @@ import org.springframework.data.repository.query.Param;
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.AnnotationEntityId;
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.IdRemovalEntity;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.AnnotationStatus;
public interface RemoveRedactionRepository extends JpaRepository<IdRemovalEntity, AnnotationEntityId>, AnnotationEntityRepository {
@ -19,10 +18,6 @@ public interface RemoveRedactionRepository extends JpaRepository<IdRemovalEntity
@Query("update IdRemovalEntity idr set idr.softDeletedTime = :softDeletedTime where idr.id = :annotationEntityId")
void updateSoftDelete(@Param("annotationEntityId") AnnotationEntityId annotationEntityId, @Param("softDeletedTime") OffsetDateTime softDeletedTime);
@Modifying(clearAutomatically = true)
@Query("update IdRemovalEntity idr set idr.status = :annotationStatus where idr.id = :annotationEntityId")
void updateStatus(@Param("annotationEntityId") AnnotationEntityId annotationEntityId, @Param("annotationStatus") AnnotationStatus annotationStatus);
@Query("select idr from IdRemovalEntity idr where idr.id = :annotationEntityId and idr.softDeletedTime is null")
Optional<IdRemovalEntity> findByIdAndNotSoftDeleted(@Param("annotationEntityId") AnnotationEntityId annotationEntityId);

View File

@ -11,32 +11,33 @@ import org.springframework.data.repository.query.Param;
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.AnnotationEntityId;
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualResizeRedactionEntity;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.AnnotationStatus;
public interface ResizeRedactionRepository extends JpaRepository<ManualResizeRedactionEntity, AnnotationEntityId>, AnnotationEntityRepository {
@Modifying(clearAutomatically = true)
@Query("update ManualResizeRedactionEntity mrd set mrd.status = :annotationStatus, mrd.processedDate = :processedDate where mrd.id = :annotationEntityId")
void updateStatus(@Param("annotationEntityId") AnnotationEntityId annotationEntityId, @Param("annotationStatus") AnnotationStatus annotationStatus, @Param("processedDate") OffsetDateTime processedDate);
@Modifying
@Query("update ManualResizeRedactionEntity mrd set mrd.softDeletedTime = :softDeletedTime where mrd.id = :annotationEntityId")
void updateSoftDelete(@Param("annotationEntityId") AnnotationEntityId annotationEntityId, @Param("softDeletedTime") OffsetDateTime softDeletedTime);
@Query("select mrd from ManualResizeRedactionEntity mrd where mrd.id = :annotationEntityId and mrd.softDeletedTime is null")
Optional<ManualResizeRedactionEntity> findByIdAndNotSoftDeleted(@Param("annotationEntityId") AnnotationEntityId annotationEntityId);
@Query("select mrd from ManualResizeRedactionEntity mrd where mrd.id.fileId = :fileId and (:includeDeletions = true or mrd.softDeletedTime is null)")
List<ManualResizeRedactionEntity> findByFileIdIncludeDeletions(@Param("fileId") String fileId, @Param("includeDeletions") boolean includeDeletions);
@Query("select mrd from ManualResizeRedactionEntity mrd where mrd.id.fileId = :fileId and mrd.processedDate is null")
List<ManualResizeRedactionEntity> findUnprocessedByFileId(@Param("fileId") String fileId);
@Modifying
@Query("update ManualResizeRedactionEntity m set m.textBefore = :textBefore, m.textAfter = :textAfter where m.id = :id")
void updateSurroundingText(@Param("id") AnnotationEntityId id, @Param("textBefore") String textBefore, @Param("textAfter") String textAfter);
List<ManualResizeRedactionEntity> findByStatusAndValue(@Param("status") AnnotationStatus status, @Param("value") String value);
List<ManualResizeRedactionEntity> findByValue(@Param("value") String value);
@Modifying
@Query("update ManualResizeRedactionEntity mir set mir.processedDate = :processedDate where mir.id = :annotationEntityId")

View File

@ -177,3 +177,5 @@ databaseChangeLog:
file: db/changelog/tenant/117-add-download-status-error-cause.yaml
- include:
file: db/changelog/tenant/117-add-last-flag-calculation-date-to-file.yaml
- include:
file: db/changelog/tenant/118-delete-unapproved-manual-changes-and-drop-column-status.yaml

View File

@ -0,0 +1,156 @@
databaseChangeLog:
- changeSet:
id: modify_fk_constraints_of_manual_changes_to_cascade_delete
author: kilian
changes:
- dropForeignKeyConstraint:
baseTableName: id_removal_entity_type_ids_of_modified_dictionaries # id_removal -> modified dictionaries
constraintName: fk64e6qfq7tqad3lknqmqpzzz
- dropForeignKeyConstraint:
baseTableName: manual_recategorization_type_ids_of_dictionaries_with_add # recategorization -> modified dictionaries (add)
constraintName: fk_manual_recategorization_to_dictionary_add
- dropForeignKeyConstraint:
baseTableName: manual_recategorization_type_ids_of_dictionaries_with_delete # recategorization -> modified dictionaries (delete)
constraintName: fk_manual_recategorization_to_dictionary_delete
- dropForeignKeyConstraint:
baseTableName: manual_redaction_entry_entity_positions # manual_redaction -> positions
constraintName: fkol1r7vwjc1uvu36p5ju7cj28h
- dropForeignKeyConstraint:
baseTableName: manual_redaction_entry_entity_type_ids_of_modified_dictionaries # manual_redaction -> modified dictionaries
constraintName: fk64e6qfq7tqad3lknqmqpzaa
- dropForeignKeyConstraint:
baseTableName: manual_resize_redaction_entity_positions # resize -> positions
constraintName: fkf0yltiuicrfxj62kbnq5fi5c8
- dropForeignKeyConstraint:
baseTableName: manual_resize_redaction_entity_type_ids_of_modified_dictionarie # resize -> modified dictionaries
constraintName: fk_resize_entity_annotation_id_file_id_for_type_ids_of_modified
- changeSet:
id: modify_fk_constraints_of_manual_changes_to_cascade_delete_2
author: kilian
changes:
- addForeignKeyConstraint: # id_removal -> modified dictionaries
constraintName: FK_id_removal_entity_type_ids
baseTableName: id_removal_entity_type_ids_of_modified_dictionaries
baseColumnNames: id_removal_entity_annotation_id, id_removal_entity_file_id
referencedTableName: id_removal
referencedColumnNames: annotation_id, file_id
deferrable: false
initiallyDeferred: false
onDelete: CASCADE
onUpdate: CASCADE
validate: true
- addForeignKeyConstraint: # recategorization -> modified dictionaries (add)
constraintName: fk_manual_recategorization_to_dictionary_add
baseTableName: manual_recategorization_type_ids_of_dictionaries_with_add
baseColumnNames: manual_recategorization_entity_annotation_id, manual_recategorization_entity_file_id
referencedTableName: manual_recategorization
referencedColumnNames: annotation_id, file_id
deferrable: false
initiallyDeferred: false
onDelete: CASCADE
onUpdate: CASCADE
validate: true
- addForeignKeyConstraint: # recategorization -> modified dictionaries (delete)
constraintName: fk_manual_recategorization_to_dictionary_delete
baseTableName: manual_recategorization_type_ids_of_dictionaries_with_delete
baseColumnNames: manual_recategorization_entity_annotation_id, manual_recategorization_entity_file_id
referencedTableName: manual_recategorization
referencedColumnNames: annotation_id, file_id
deferrable: false
initiallyDeferred: false
onDelete: CASCADE
onUpdate: CASCADE
validate: true
- addForeignKeyConstraint:
constraintName: fk_manual_redaction_to_positions # manual_redaction -> positions
baseTableName: manual_redaction_entry_entity_positions
baseColumnNames: manual_redaction_entry_entity_annotation_id, manual_redaction_entry_entity_file_id
referencedTableName: manual_redaction
referencedColumnNames: annotation_id, file_id
deferrable: false
initiallyDeferred: false
onDelete: CASCADE
onUpdate: CASCADE
validate: true
- addForeignKeyConstraint:
constraintName: fk_manual_redaction_to_dictionaries # manual_redaction -> modified dictionaries
baseTableName: manual_redaction_entry_entity_type_ids_of_modified_dictionaries
baseColumnNames: manual_redaction_entry_entity_annotation_id, manual_redaction_entry_entity_file_id
referencedTableName: manual_redaction
referencedColumnNames: annotation_id, file_id
deferrable: false
initiallyDeferred: false
onDelete: CASCADE
onUpdate: CASCADE
validate: true
- addForeignKeyConstraint:
constraintName: fk_manual_resize_to_positions # manual resize -> positions
baseTableName: manual_resize_redaction_entity_positions
baseColumnNames: manual_resize_redaction_entity_annotation_id, manual_resize_redaction_entity_file_id
referencedTableName: manual_resize_redaction
referencedColumnNames: annotation_id, file_id
deferrable: false
initiallyDeferred: false
onDelete: CASCADE
onUpdate: CASCADE
validate: true
- addForeignKeyConstraint:
constraintName: fk_manual_resize_to_dictionaries # manual resize -> modified dictionaries
baseTableName: manual_resize_redaction_entity_type_ids_of_modified_dictionarie
baseColumnNames: manual_resize_redaction_entity_annotation_id, manual_resize_redaction_entity_file_id
referencedTableName: manual_resize_redaction
referencedColumnNames: annotation_id, file_id
deferrable: false
initiallyDeferred: false
onDelete: CASCADE
onUpdate: CASCADE
validate: true
- changeSet:
id: delete-unapproved-manual-changes
author: kilian
changes:
- delete:
tableName: manual_redaction
where: "status != 'APPROVED'"
- delete:
tableName: manual_force_redaction
where: "status != 'APPROVED'"
- delete:
tableName: manual_recategorization
where: "status != 'APPROVED'"
- delete:
tableName: manual_legal_basis_change
where: "status != 'APPROVED'"
- delete:
tableName: manual_resize_redaction
where: "status != 'APPROVED'"
- delete:
tableName: id_removal
where: "status != 'APPROVED'"
- changeSet:
id: remove-status-column
author: kilian
changes:
- dropColumn:
tableName: manual_redaction
columnName: status
- dropColumn:
tableName: manual_force_redaction
columnName: status
- dropColumn:
tableName: manual_recategorization
columnName: status
- dropColumn:
tableName: manual_legal_basis_change
columnName: status
- dropColumn:
tableName: manual_resize_redaction
columnName: status
- dropColumn:
tableName: id_removal
columnName: status

View File

@ -24,7 +24,6 @@ public class AddRedactionRequest implements ManualRequestWithAddToDictionary {
private boolean addToDictionary;
private boolean addToAllDossiers;
private DictionaryEntryType dictionaryEntryType;
private AnnotationStatus status;
private String section;
private boolean rectangle;
private String sourceId;

View File

@ -1,6 +1,8 @@
package com.iqser.red.service.persistence.service.v1.api.shared.model.annotations;
@Deprecated(forRemoval = true)
public enum AnnotationStatus {
REQUESTED,
APPROVED,
DECLINED

View File

@ -2,12 +2,4 @@ package com.iqser.red.service.persistence.service.v1.api.shared.model.annotation
public interface BaseManualRequest {
AnnotationStatus getStatus();
default boolean isApproved() {
return getStatus().equals(AnnotationStatus.APPROVED);
}
}

View File

@ -9,11 +9,10 @@ import lombok.NoArgsConstructor;
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ForceRedactionRequest implements BaseManualRequest {
public class ForceRedactionRequest {
private String annotationId;
private String user;
private AnnotationStatus status;
private String legalBasis;
private String comment;
private int page;

View File

@ -13,7 +13,6 @@ public class LegalBasisChangeRequest {
private String annotationId;
private String user;
private AnnotationStatus status;
private String legalBasis;
private String comment;
private int page;

View File

@ -2,7 +2,7 @@ package com.iqser.red.service.persistence.service.v1.api.shared.model.annotation
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.DictionaryEntryType;
public interface ManualRequestWithAddToDictionary extends BaseManualRequest {
public interface ManualRequestWithAddToDictionary {
String getValue();

View File

@ -2,22 +2,23 @@ package com.iqser.red.service.persistence.service.v1.api.shared.model.annotation
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.DictionaryEntryType;
public interface ManualRequestWithRemoveFromDictionary extends BaseManualRequest {
public interface ManualRequestWithRemoveFromDictionary {
String getAnnotationId();
String getValue();
String getTypeToRemove();
String getDossierTemplateId();
String getDossierId();
DictionaryEntryType getDictionaryEntryType();

View File

@ -19,7 +19,6 @@ public class RecategorizationRequest implements ManualRequestWithAddToDictionary
String annotationId;
String user;
String value;
AnnotationStatus status;
String typeToRemove;
String dossierTemplateId;
String dossierId;

View File

@ -1,5 +1,6 @@
package com.iqser.red.service.persistence.service.v1.api.shared.model.annotations;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualResizeRedaction;
import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.Point;
import lombok.AllArgsConstructor;

View File

@ -23,7 +23,6 @@ public class RemoveRedactionRequest implements ManualRequestWithRemoveFromDictio
String dossierId;
String dossierTemplateId;
String typeToRemove;
AnnotationStatus status;
boolean removeFromDictionary;
boolean removeFromAllDossiers;
String comment;

View File

@ -12,11 +12,10 @@ import lombok.NoArgsConstructor;
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ResizeRedactionRequest implements BaseManualRequest{
public class ResizeRedactionRequest {
private String annotationId;
private String user;
private AnnotationStatus status;
private String comment;
private int page;
private String value;

View File

@ -1,19 +0,0 @@
package com.iqser.red.service.persistence.service.v1.api.shared.model.annotations;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class UpdateRedactionRequest {
private List<String> annotationIds;
private AnnotationStatus annotationStatus;
}

View File

@ -2,6 +2,8 @@ package com.iqser.red.service.persistence.service.v1.api.shared.model.annotation
import java.time.OffsetDateTime;
import org.checkerframework.checker.units.qual.A;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.AnnotationStatus;
import lombok.AllArgsConstructor;
@ -20,15 +22,26 @@ public class BaseAnnotation {
private String annotationId;
private String fileId;
private String user;
private AnnotationStatus status;
private OffsetDateTime requestDate;
private OffsetDateTime processedDate;
private OffsetDateTime softDeletedTime;
@Deprecated(forRemoval = true)
public boolean isApproved() {
return AnnotationStatus.APPROVED == status;
return true;
}
@Deprecated(forRemoval = true)
public AnnotationStatus getStatus() {
return AnnotationStatus.APPROVED;
}
@Deprecated(forRemoval = true)
private final static AnnotationStatus status = AnnotationStatus.APPROVED;
}

View File

@ -89,8 +89,7 @@ public class RedactionLogEntry {
public boolean isManuallyRemoved() {
return manualChanges != null && manualChanges.stream()
.anyMatch(mc -> mc.getManualRedactionType() == ManualRedactionType.REMOVE_LOCALLY && mc.getAnnotationStatus() == AnnotationStatus.APPROVED);
return manualChanges != null && manualChanges.stream().anyMatch(mc -> mc.getManualRedactionType() == ManualRedactionType.REMOVE_LOCALLY);
}