From be915430b1dadccd3c67a777ef140e9c093b3f7f Mon Sep 17 00:00:00 2001 From: Kilian Schuettler Date: Wed, 30 Aug 2023 16:40:59 +0200 Subject: [PATCH 1/3] RED-7317: Endpoint to change entity types of dict-based annotations * fix pmd * add mapper to remove even more code from controller --- .../controller/ManualRedactionController.java | 102 ++------- .../service/RedactionLogService.java | 2 - ...anualRedactionDictionaryUpdateHandler.java | 73 ++++--- .../ManualRedactionMapper.java | 200 ++++++++++++++++++ .../ManualRedactionService.java | 63 ++---- .../ManualRequestWithAddToDictionary.java | 3 + ...ManualRequestWithRemoveFromDictionary.java | 16 ++ .../annotations/RecategorizationRequest.java | 5 +- .../annotations/RemoveRedactionRequest.java | 24 ++- 9 files changed, 310 insertions(+), 178 deletions(-) create mode 100644 persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionMapper.java diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ManualRedactionController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ManualRedactionController.java index 8e4545d14..cb25ea62e 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ManualRedactionController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ManualRedactionController.java @@ -5,13 +5,10 @@ import static com.iqser.red.service.persistence.management.v1.processor.roles.Ac import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.DELETE_MANUAL_REDACTION; import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.DO_MANUAL_REDACTION; import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.READ_MANUAL_REDACTIONS; -import static com.iqser.red.service.persistence.management.v1.processor.utils.TypeIdUtils.toTypeId; -import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set; -import java.util.stream.Collectors; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.PathVariable; @@ -19,8 +16,9 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import com.iqser.red.service.persistence.management.v1.processor.service.AccessControlService; -import com.iqser.red.service.persistence.management.v1.processor.service.DossierManagementService; import com.iqser.red.service.persistence.management.v1.processor.service.CommentService; +import com.iqser.red.service.persistence.management.v1.processor.service.DossierManagementService; +import com.iqser.red.service.persistence.management.v1.processor.service.manualredactions.ManualRedactionMapper; import com.iqser.red.service.persistence.management.v1.processor.service.manualredactions.ManualRedactionService; import com.iqser.red.service.persistence.management.v1.processor.service.manualredactions.ManualRedactionUndoService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService; @@ -28,14 +26,16 @@ import com.iqser.red.service.persistence.service.v1.api.external.resource.Manual import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; import com.iqser.red.service.persistence.service.v1.api.shared.model.CommentResponse; 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.CommentRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.Comments; +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; 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.RecategorizationRequest; +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.ResizeRedactionRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.DictionaryEntryType; import com.iqser.red.service.persistence.service.v1.api.shared.model.manual.AddCommentRequestModel; import com.iqser.red.service.persistence.service.v1.api.shared.model.manual.AddRedactionRequestModel; import com.iqser.red.service.persistence.service.v1.api.shared.model.manual.ForceRedactionRequestModel; @@ -64,6 +64,7 @@ public class ManualRedactionController implements ManualRedactionResource { DossierManagementService dossierManagementService; AuditPersistenceService auditPersistenceService; AccessControlService accessControlService; + ManualRedactionMapper manualRedactionMapper; CommentService commentService; @@ -158,26 +159,7 @@ public class ManualRedactionController implements ManualRedactionResource { accessControlService.verifyUserIsMemberOrApprover(dossierId); } - List requests = addRedactionRequests.stream() - .map(addRedactionRequest -> AddRedactionRequest.builder() - .value(addRedactionRequest.getValue()) - .legalBasis(addRedactionRequest.getLegalBasis()) - .user(KeycloakSecurity.getUserId()) - .dossierTemplateTypeId(toTypeId(addRedactionRequest.getType(), dossier.getDossierTemplateId())) - .reason(addRedactionRequest.getReason()) - .addToDictionary(addRedactionRequest.isAddToDictionary()) - .status(AnnotationStatus.APPROVED) - .comment(addRedactionRequest.getComment() != null ? addRedactionRequest.getComment().getText() : null) - .section(addRedactionRequest.getSection()) - .rectangle(addRedactionRequest.isRectangle()) - .addToAllDossiers(addRedactionRequest.isAddToAllDossiers()) - .forceAddToDictionary(addRedactionRequest.isForceAddToDictionary()) - .positions(addRedactionRequest.getPositions()) - .sourceId(addRedactionRequest.getSourceId()) - .dossierId(dossierId) - .dictionaryEntryType(addRedactionRequest.getDictionaryEntryType()) - .build()) - .collect(Collectors.toList()); + List requests = manualRedactionMapper.toAddRedactionRequestList(dossierId, addRedactionRequests, dossier); List responseList = manualRedactionService.addAddRedaction(dossierId, fileId, requests); responseList.forEach(response -> auditPersistenceService.audit(AuditRequest.builder() @@ -196,6 +178,7 @@ public class ManualRedactionController implements ManualRedactionResource { @PathVariable(FILE_ID) String fileId, @RequestBody Set removeRedactionRequests) { + var dossier = dossierManagementService.getDossierById(dossierId, false, false); accessControlService.verifyFileIsNotApproved(dossierId, fileId); if (removeRedactionRequests.stream().anyMatch(RemoveRedactionRequestModel::isRemoveFromAllDossiers)) { accessControlService.verifyUserIsApprover(dossierId); @@ -203,22 +186,7 @@ public class ManualRedactionController implements ManualRedactionResource { accessControlService.verifyUserIsMemberOrApprover(dossierId); } - List requests = new ArrayList<>(); - - for (var removeRedactionRequest : removeRedactionRequests) { - var removeRedactionRequestBuilder = com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.RemoveRedactionRequest.builder() - .annotationId(removeRedactionRequest.getAnnotationId()) - .user(KeycloakSecurity.getUserId()) - .status(AnnotationStatus.APPROVED) - .removeFromDictionary(removeRedactionRequest.isRemoveFromDictionary()) - .removeFromAllDossiers(removeRedactionRequest.isRemoveFromAllDossiers()); - - if (removeRedactionRequest.getComment() != null) { - removeRedactionRequestBuilder.comment(removeRedactionRequest.getComment()); - } - - requests.add(removeRedactionRequestBuilder.build()); - } + List requests = manualRedactionMapper.toRemoveRedactionRequestList(dossierId, fileId, dossier.getDossierTemplateId(), removeRedactionRequests); List responseList = manualRedactionService.addRemoveRedaction(dossierId, fileId, requests); responseList.forEach(response -> auditPersistenceService.audit(AuditRequest.builder() @@ -241,15 +209,7 @@ public class ManualRedactionController implements ManualRedactionResource { accessControlService.verifyFileIsNotApproved(dossierId, fileId); accessControlService.verifyUserIsMemberOrApprover(dossierId); - List requests = forceRedactionRequests.stream() - .map(forceRedactionRequest -> com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.ForceRedactionRequest.builder() - .annotationId(forceRedactionRequest.getAnnotationId()) - .user(KeycloakSecurity.getUserId()) - .status(AnnotationStatus.APPROVED) - .legalBasis(forceRedactionRequest.getLegalBasis()) - .comment(forceRedactionRequest.getComment()) - .build()) - .collect(Collectors.toList()); + List requests = manualRedactionMapper.toForceRedactionRequestList(forceRedactionRequests); List responseList = manualRedactionService.addForceRedaction(dossierId, fileId, requests); responseList.forEach(response -> auditPersistenceService.audit(AuditRequest.builder() @@ -272,17 +232,7 @@ public class ManualRedactionController implements ManualRedactionResource { accessControlService.verifyFileIsNotApproved(dossierId, fileId); accessControlService.verifyUserIsMemberOrApprover(dossierId); - List requests = legalBasisChangeRequests.stream() - .map(legalBasisChangeRequest -> com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.LegalBasisChangeRequest.builder() - .annotationId(legalBasisChangeRequest.getAnnotationId()) - .user(KeycloakSecurity.getUserId()) - .status(AnnotationStatus.APPROVED) - .section(legalBasisChangeRequest.getSection()) - .legalBasis(legalBasisChangeRequest.getLegalBasis()) - .comment(legalBasisChangeRequest.getComment()) - .value(legalBasisChangeRequest.getValue()) - .build()) - .collect(Collectors.toList()); + List requests = manualRedactionMapper.toLegalBasisChangeRequestList(legalBasisChangeRequests); List responseList = manualRedactionService.addLegalBasisChange(dossierId, fileId, requests); @@ -307,19 +257,7 @@ public class ManualRedactionController implements ManualRedactionResource { accessControlService.verifyFileIsNotApproved(dossierId, fileId); accessControlService.verifyUserIsMemberOrApprover(dossierId); - List requests = recategorizationRequests.stream() - .map(recategorizationRequest -> RecategorizationRequest.builder() - .annotationId(recategorizationRequest.getAnnotationId()) - .user(KeycloakSecurity.getUserId()) - .status(AnnotationStatus.APPROVED) - .dossierTemplateTypeId(toTypeId(recategorizationRequest.getType(), dossier.getDossierTemplateId())) - .comment(recategorizationRequest.getComment()) - .dossierId(dossierId) - .addToDictionary(recategorizationRequest.isAddToDictionary()) - .addToAllDossiers(recategorizationRequest.isAddToAllDossiers()) - .dictionaryEntryType(DictionaryEntryType.ENTRY) - .build()) - .collect(Collectors.toList()); + List requests = manualRedactionMapper.toRecategorizationRequestList(dossierId, fileId, dossier.getDossierTemplateId(), recategorizationRequests); List responseList = manualRedactionService.addRecategorization(dossierId, fileId, requests); @@ -343,19 +281,7 @@ public class ManualRedactionController implements ManualRedactionResource { accessControlService.verifyFileIsNotApproved(dossierId, fileId); accessControlService.verifyUserIsMemberOrApprover(dossierId); - List requests = resizeRedactionRequests.stream() - .map(resizeRedactionRequest -> com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.ResizeRedactionRequest.builder() - .annotationId(resizeRedactionRequest.getAnnotationId()) - .user(KeycloakSecurity.getUserId()) - .status(AnnotationStatus.APPROVED) - .positions(resizeRedactionRequest.getPositions()) - .value(resizeRedactionRequest.getValue()) - .comment(resizeRedactionRequest.getComment()) - .updateDictionary(resizeRedactionRequest.getUpdateDictionary()) - .addToAllDossiers(resizeRedactionRequest.isAddToAllDossiers()) - .build()) - .collect(Collectors.toList()); - + List requests = manualRedactionMapper.toResizeRedactionRequestList(resizeRedactionRequests); List responseList = manualRedactionService.addResizeRedaction(dossierId, fileId, requests); responseList.forEach(response -> auditPersistenceService.audit(AuditRequest.builder() diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/RedactionLogService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/RedactionLogService.java index cc6923749..b794dc904 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/RedactionLogService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/RedactionLogService.java @@ -41,8 +41,6 @@ public class RedactionLogService { redactionLog.setRedactionLogEntry(new ArrayList<>()); } - if (fileStatus.isHasUpdates()) - if (excludedTypes != null) { redactionLog.getRedactionLogEntry().removeIf(nextEntry -> excludedTypes.contains(nextEntry.getType())); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionDictionaryUpdateHandler.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionDictionaryUpdateHandler.java index 684ff1a8d..66d18f07e 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionDictionaryUpdateHandler.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionDictionaryUpdateHandler.java @@ -63,20 +63,22 @@ public class ManualRedactionDictionaryUpdateHandler { } - - - private Set addToDossierTemplateDictionary(String fileId, String value, ManualRequestWithAddToDictionary manualRequestWithAddToDictionary, Set typeIdsOfModifiedDictionaries) { + private Set addToDossierTemplateDictionary(String fileId, + String value, + ManualRequestWithAddToDictionary manualRequestWithAddToDictionary, + Set typeIdsOfModifiedDictionaries) { List dictionaryEntriesToUnDelete = dictionaryManagementService.getAllEntriesInDossierTemplate(manualRequestWithAddToDictionary.getDossierTemplateTypeId(), - value, manualRequestWithAddToDictionary.getDictionaryEntryType()); + value, + manualRequestWithAddToDictionary.getDictionaryEntryType()); dictionaryEntriesToUnDelete.forEach(entry -> { typeIdsOfModifiedDictionaries.add(entry.getTypeId()); - addToDictionary(entry.getTypeId(), value, - manualRequestWithAddToDictionary.getDossierId(), fileId, - manualRequestWithAddToDictionary.getDictionaryEntryType()); + addToDictionary(entry.getTypeId(), value, manualRequestWithAddToDictionary.getDossierId(), fileId, manualRequestWithAddToDictionary.getDictionaryEntryType()); }); - addToDictionary(manualRequestWithAddToDictionary.getDossierTemplateTypeId(), value, - manualRequestWithAddToDictionary.getDossierId(), fileId, + addToDictionary(manualRequestWithAddToDictionary.getDossierTemplateTypeId(), + value, + manualRequestWithAddToDictionary.getDossierId(), + fileId, manualRequestWithAddToDictionary.getDictionaryEntryType()); typeIdsOfModifiedDictionaries.add(manualRequestWithAddToDictionary.getDossierTemplateTypeId()); return typeIdsOfModifiedDictionaries; @@ -88,41 +90,46 @@ public class ManualRedactionDictionaryUpdateHandler { ManualRequestWithAddToDictionary manualRequestWithAddToDictionary, Set typeIdsOfModifiedDictionaries) { - addToDictionary(manualRequestWithAddToDictionary.getDossierTemplateTypeId() + ":" + manualRequestWithAddToDictionary.getDossierId(), - value, - manualRequestWithAddToDictionary.getDossierId(), - fileId, - manualRequestWithAddToDictionary.getDictionaryEntryType()); - typeIdsOfModifiedDictionaries.add(manualRequestWithAddToDictionary.getDossierTemplateTypeId() + ":" + manualRequestWithAddToDictionary.getDossierId()); + String dossierDictionaryTypeId = manualRequestWithAddToDictionary.getDossierTemplateTypeId() + ":" + manualRequestWithAddToDictionary.getDossierId(); + addToDictionary(dossierDictionaryTypeId, value, manualRequestWithAddToDictionary.getDossierId(), fileId, manualRequestWithAddToDictionary.getDictionaryEntryType()); + typeIdsOfModifiedDictionaries.add(dossierDictionaryTypeId); return typeIdsOfModifiedDictionaries; } - public Set handleRemoveFromDictionaryAndReturnModifiedTypeIds(RedactionLogEntry redactionLogEntry, - String fileId, - String dossierId, - String dossierTemplateId, - ManualRequestWithRemoveFromDictionary manualRequestWithRemoveFromDictionary) { + + public Set handleRemoveFromDictionaryAndReturnModifiedTypeIds(String fileId, ManualRequestWithRemoveFromDictionary manualRequestWithRemoveFromDictionary) { if (!manualRequestWithRemoveFromDictionary.isRemoveFromDictionary()) { - return Collections.emptySet(); } + String dossierId = manualRequestWithRemoveFromDictionary.getDossierId(); + String dossierTemplateId = manualRequestWithRemoveFromDictionary.getDossierTemplateId(); + DictionaryEntryType dictionaryEntryType = manualRequestWithRemoveFromDictionary.getDictionaryEntryType(); Set typeIdsOfModifiedDictionaries = new HashSet<>(); + String dossierTemplateDictionaryTypeId = toTypeId(manualRequestWithRemoveFromDictionary.getType(), manualRequestWithRemoveFromDictionary.getDossierTemplateId()); + String dossierDictionaryTypeId = toTypeId(manualRequestWithRemoveFromDictionary.getType(), + manualRequestWithRemoveFromDictionary.getDossierTemplateId(), + manualRequestWithRemoveFromDictionary.getDossierId()); + if (manualRequestWithRemoveFromDictionary.isRemoveFromAllDossiers()) { - var dictionaryEntriesToRemove = dictionaryManagementService.getAllEntriesInDossierTemplate(toTypeId(redactionLogEntry.getType(), dossierTemplateId), - redactionLogEntry.getValue(), getDictionaryEntryType(redactionLogEntry)); + + var dictionaryEntriesToRemove = dictionaryManagementService.getAllEntriesInDossierTemplate(dossierTemplateDictionaryTypeId, + manualRequestWithRemoveFromDictionary.getValue(), + dictionaryEntryType); + dictionaryEntriesToRemove.forEach(entry -> { typeIdsOfModifiedDictionaries.add(entry.getTypeId()); - removeFromDictionary(entry.getTypeId(), entry.getValue(), dossierId, fileId, getDictionaryEntryType(redactionLogEntry)); + removeFromDictionary(entry.getTypeId(), entry.getValue(), dossierId, fileId, dictionaryEntryType); }); } else { - typeIdsOfModifiedDictionaries.add(toTypeId(redactionLogEntry.getType(), dossierTemplateId, dossierId)); - removeFromDictionary(toTypeId(redactionLogEntry.getType(), dossierTemplateId, dossierId), redactionLogEntry.getValue(), dossierId, fileId, getDictionaryEntryType(redactionLogEntry)); + + removeFromDictionary(dossierDictionaryTypeId, manualRequestWithRemoveFromDictionary.getValue(), dossierId, fileId, dictionaryEntryType); + typeIdsOfModifiedDictionaries.add(dossierDictionaryTypeId); } // This is needed to remove resizeRedactions with addToDictionary. - removeResizeRedactionsWithAddToDictionary(dossierTemplateId, redactionLogEntry.getValue()); + removeResizeRedactionsWithAddToDictionary(dossierTemplateId, manualRequestWithRemoveFromDictionary.getValue()); return typeIdsOfModifiedDictionaries; } @@ -135,7 +142,7 @@ public class ManualRedactionDictionaryUpdateHandler { var dossier = dossierPersistenceService.findByDossierId(dossierId); - var typeId = buildTypeId(redactionLogEntry, resizeRedaction, dossier); + var typeId = buildTypeId(redactionLogEntry.getType(), resizeRedaction, dossier); var newValue = resizeRedaction.getValue(); var oldValue = redactionLogEntry.getValue(); var dictionaryEntryType = getDictionaryEntryType(redactionLogEntry); @@ -172,12 +179,12 @@ public class ManualRedactionDictionaryUpdateHandler { } - private String buildTypeId(RedactionLogEntry redactionLogEntry, ManualResizeRedactionEntity resizeRedaction, DossierEntity dossier) { + private String buildTypeId(String type, ManualResizeRedactionEntity resizeRedaction, DossierEntity dossier) { if (resizeRedaction.isAddToAllDossiers()) { - return toTypeId(redactionLogEntry.getType(), dossier.getDossierTemplateId()); + return toTypeId(type, dossier.getDossierTemplateId()); } else { - return toTypeId(redactionLogEntry.getType(), dossier.getDossierTemplateId(), dossier.getId()); + return toTypeId(type, dossier.getDossierTemplateId(), dossier.getId()); } } @@ -233,10 +240,10 @@ public class ManualRedactionDictionaryUpdateHandler { } - public void validateDictionariesForDelete(ManualRequestWithRemoveFromDictionary request, RedactionLogEntry redactionLogEntry, String dossierTemplateId) { + public void validateDictionariesForDelete(ManualRequestWithRemoveFromDictionary request, String type, String dossierTemplateId) { if (request.isRemoveFromDictionary()) { - var dossierTemplateTypeId = toTypeId(redactionLogEntry.getType(), dossierTemplateId); + var dossierTemplateTypeId = toTypeId(type, dossierTemplateId); dictionaryManagementService.validateAddRemoveToDossierTemplateDictionary(dossierTemplateTypeId, request.isRemoveFromDictionary(), request.isRemoveFromAllDossiers()); } } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionMapper.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionMapper.java new file mode 100644 index 000000000..083cf9a26 --- /dev/null +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionMapper.java @@ -0,0 +1,200 @@ +package com.iqser.red.service.persistence.management.v1.processor.service.manualredactions; + +import static com.iqser.red.service.persistence.management.v1.processor.utils.TypeIdUtils.toTypeId; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +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.service.RedactionLogService; +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; +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.ResizeRedactionRequest; +import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.Dossier; +import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.DictionaryEntryType; +import com.iqser.red.service.persistence.service.v1.api.shared.model.manual.AddRedactionRequestModel; +import com.iqser.red.service.persistence.service.v1.api.shared.model.manual.ForceRedactionRequestModel; +import com.iqser.red.service.persistence.service.v1.api.shared.model.manual.LegalBasisChangeRequestModel; +import com.iqser.red.service.persistence.service.v1.api.shared.model.manual.RecategorizationRequestModel; +import com.iqser.red.service.persistence.service.v1.api.shared.model.manual.RemoveRedactionRequestModel; +import com.iqser.red.service.persistence.service.v1.api.shared.model.manual.ResizeRedactionRequestModel; +import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.RedactionLog; +import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.RedactionLogEntry; +import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; + +import lombok.AccessLevel; +import lombok.RequiredArgsConstructor; +import lombok.experimental.FieldDefaults; + +@Service +@RequiredArgsConstructor +@FieldDefaults(makeFinal = true, level = AccessLevel.PRIVATE) +public class ManualRedactionMapper { + + RedactionLogService redactionLogService; + + + public List toAddRedactionRequestList(String dossierId, Set addRedactionRequests, Dossier dossier) { + + return addRedactionRequests.stream() + .map(addRedactionRequest -> toAddRedactionRequest(dossierId, dossier.getDossierTemplateId(), addRedactionRequest)) + .collect(Collectors.toList()); + } + + + public AddRedactionRequest toAddRedactionRequest(String dossierId, String dossierTemplateId, AddRedactionRequestModel addRedactionRequest) { + + return AddRedactionRequest.builder() + .value(addRedactionRequest.getValue()) + .legalBasis(addRedactionRequest.getLegalBasis()) + .user(KeycloakSecurity.getUserId()) + .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()) + .addToAllDossiers(addRedactionRequest.isAddToAllDossiers()) + .forceAddToDictionary(addRedactionRequest.isForceAddToDictionary()) + .positions(addRedactionRequest.getPositions()) + .sourceId(addRedactionRequest.getSourceId()) + .dossierId(dossierId) + .dictionaryEntryType(addRedactionRequest.getDictionaryEntryType()) + .build(); + } + + + public List toRemoveRedactionRequestList(String dossierId, String fileId, String dossierTemplateId,Set removeRedactionRequests) { + + List requests = new ArrayList<>(); + RedactionLog redactionLog = redactionLogService.getRedactionLog(dossierId, fileId); + for (var removeRedactionRequest : removeRedactionRequests) { + RedactionLogEntry redactionLogEntry = getRedactionLogEntry(redactionLog, removeRedactionRequest.getAnnotationId()); + var removeRedactionRequestBuilder = RemoveRedactionRequest.builder() + .annotationId(removeRedactionRequest.getAnnotationId()) + .user(KeycloakSecurity.getUserId()) + .status(AnnotationStatus.APPROVED) + .removeFromDictionary(removeRedactionRequest.isRemoveFromDictionary()) + .removeFromAllDossiers(removeRedactionRequest.isRemoveFromAllDossiers()) + .value(redactionLogEntry.getValue()) + .dictionaryEntryType(getDictionaryEntryType(redactionLogEntry)) + .type(redactionLogEntry.getType()) + .dossierId(dossierId) + .dossierTemplateId(dossierTemplateId); + + if (removeRedactionRequest.getComment() != null) { + removeRedactionRequestBuilder.comment(removeRedactionRequest.getComment()); + } + + requests.add(removeRedactionRequestBuilder.build()); + } + return requests; + } + + + public List toForceRedactionRequestList(Set forceRedactionRequests) { + + return forceRedactionRequests.stream() + .map(forceRedactionRequest -> ForceRedactionRequest.builder() + .annotationId(forceRedactionRequest.getAnnotationId()) + .user(KeycloakSecurity.getUserId()) + .status(AnnotationStatus.APPROVED) + .legalBasis(forceRedactionRequest.getLegalBasis()) + .comment(forceRedactionRequest.getComment()) + .build()) + .collect(Collectors.toList()); + } + + + public List toLegalBasisChangeRequestList(Set legalBasisChangeRequests) { + + return legalBasisChangeRequests.stream() + .map(legalBasisChangeRequest -> LegalBasisChangeRequest.builder() + .annotationId(legalBasisChangeRequest.getAnnotationId()) + .user(KeycloakSecurity.getUserId()) + .status(AnnotationStatus.APPROVED) + .section(legalBasisChangeRequest.getSection()) + .legalBasis(legalBasisChangeRequest.getLegalBasis()) + .comment(legalBasisChangeRequest.getComment()) + .value(legalBasisChangeRequest.getValue()) + .build()) + .collect(Collectors.toList()); + } + + + public List toRecategorizationRequestList(String dossierId, + String fileId, + String dossierTemplateId, + Set recategorizationRequests) { + + RedactionLog redactionLog = redactionLogService.getRedactionLog(dossierId, fileId); + List requests = new ArrayList<>(); + for (RecategorizationRequestModel recategorizationRequest : recategorizationRequests) { + RedactionLogEntry redactionLogEntry = getRedactionLogEntry(redactionLog, recategorizationRequest.getAnnotationId()); + RecategorizationRequest build = RecategorizationRequest.builder() + .annotationId(recategorizationRequest.getAnnotationId()) + .user(KeycloakSecurity.getUserId()) + .status(AnnotationStatus.APPROVED) + .dossierTemplateId(dossierTemplateId) + .comment(recategorizationRequest.getComment()) + .dossierId(dossierId) + .addToDictionary(recategorizationRequest.isAddToDictionary()) + .addToAllDossiers(recategorizationRequest.isAddToAllDossiers()) + .dictionaryEntryType(getDictionaryEntryType(redactionLogEntry)) + .value(redactionLogEntry.getValue()) + .dossierTemplateTypeId(toTypeId(redactionLogEntry.getType(), dossierTemplateId)) + .build(); + requests.add(build); + } + + return requests; + } + + public List toResizeRedactionRequestList(Set resizeRedactionRequests) { + + return resizeRedactionRequests.stream() + .map(resizeRedactionRequest ->ResizeRedactionRequest.builder() + .annotationId(resizeRedactionRequest.getAnnotationId()) + .user(KeycloakSecurity.getUserId()) + .status(AnnotationStatus.APPROVED) + .positions(resizeRedactionRequest.getPositions()) + .value(resizeRedactionRequest.getValue()) + .comment(resizeRedactionRequest.getComment()) + .updateDictionary(resizeRedactionRequest.getUpdateDictionary()) + .addToAllDossiers(resizeRedactionRequest.isAddToAllDossiers()) + .build()) + .collect(Collectors.toList()); + } + + + private RedactionLogEntry getRedactionLogEntry(RedactionLog redactionLog, String annotationId) { + + return redactionLog.getRedactionLogEntry() + .stream() + .filter(entry -> entry.getId().equals(annotationId)) + .findFirst() + .orElseThrow(() -> new NotFoundException("Annotation does not exist in redaction log.")); + } + + + private DictionaryEntryType getDictionaryEntryType(RedactionLogEntry redactionLogEntry) { + + if (redactionLogEntry.isRecommendation() && redactionLogEntry.isFalsePositive()) { + return DictionaryEntryType.FALSE_RECOMMENDATION; + } else if (redactionLogEntry.isFalsePositive()) { + return DictionaryEntryType.FALSE_POSITIVE; + } else { + return DictionaryEntryType.ENTRY; + } + } + +} diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionService.java index 2318b92f5..be49b14a2 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionService.java @@ -34,11 +34,9 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.RecategorizationRequest; 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.ResizeRedactionRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.DictionaryEntryType; import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.RedactionLog; import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.RedactionLogEntry; -import feign.FeignException; import lombok.AccessLevel; import lombok.RequiredArgsConstructor; import lombok.experimental.FieldDefaults; @@ -82,7 +80,9 @@ public class ManualRedactionService { addRedactionPersistenceService.insert(fileId, annotationId, addRedactionRequest); - Set typeIdsOfModifiedDictionaries = manualRedactionDictionaryUpdateHandler.handleAddToDictionaryAndReturnModifiedTypeIds(fileId, addRedactionRequest.getValue(), addRedactionRequest); + Set typeIdsOfModifiedDictionaries = manualRedactionDictionaryUpdateHandler.handleAddToDictionaryAndReturnModifiedTypeIds(fileId, + addRedactionRequest.getValue(), + addRedactionRequest); addRedactionPersistenceService.updateStatus(fileId, annotationId, @@ -105,21 +105,19 @@ public class ManualRedactionService { } + @Transactional public List addRemoveRedaction(String dossierId, String fileId, List removeRedactionRequests) { var response = new ArrayList(); - var dossier = dossierPersistenceService.getAndValidateDossier(dossierId); - RedactionLog redactionLog = redactionLogService.getRedactionLog(dossier.getId(), fileId); - var requiresReAnalysis = false; var manualRedactions = manualRedactionProviderService.getManualRedactions(fileId); //validate removing from dossier template dictionary for (RemoveRedactionRequest removeRedactionRequest : removeRedactionRequests) { - RedactionLogEntry redactionLogEntry = getRedactionLogEntry(redactionLog, removeRedactionRequest.getAnnotationId()); - manualRedactionDictionaryUpdateHandler.validateDictionariesForDelete(removeRedactionRequest, redactionLogEntry, dossier.getDossierTemplateId()); - + manualRedactionDictionaryUpdateHandler.validateDictionariesForDelete(removeRedactionRequest, + removeRedactionRequest.getType(), + removeRedactionRequest.getDossierTemplateId()); removeRedactionPersistenceService.insert(fileId, removeRedactionRequest); if (manualAddRedactionsContains(manualRedactions, removeRedactionRequest.getAnnotationId())) { @@ -136,12 +134,7 @@ public class ManualRedactionService { removeRedactionRequest.getComment(), removeRedactionRequest.getUser()); - Set typeIdsOfModifiedDictionaries = manualRedactionDictionaryUpdateHandler.handleRemoveFromDictionaryAndReturnModifiedTypeIds(// - redactionLogEntry,// - fileId,// - dossierId, // - dossier.getDossierTemplateId(),// - removeRedactionRequest); + Set typeIdsOfModifiedDictionaries = manualRedactionDictionaryUpdateHandler.handleRemoveFromDictionaryAndReturnModifiedTypeIds(fileId, removeRedactionRequest); boolean removedFromDictionary = !typeIdsOfModifiedDictionaries.isEmpty(); @@ -222,20 +215,18 @@ public class ManualRedactionService { var response = new ArrayList(); var requiresReanalysis = false; - var dossier = dossierPersistenceService.getAndValidateDossier(dossierId); - RedactionLog redactionLog = redactionLogService.getRedactionLog(dossierId, fileId); for (var recategorizationRequest : recategorizationRequests) { - RedactionLogEntry redactionLogEntry = getRedactionLogEntry(redactionLog, recategorizationRequest.getAnnotationId()); - manualRedactionDictionaryUpdateHandler.validateDictionariesForAdd(recategorizationRequest, redactionLogEntry.getValue()); - manualRedactionDictionaryUpdateHandler.validateDictionariesForDelete(recategorizationRequest, redactionLogEntry, dossier.getDossierTemplateId()); + manualRedactionDictionaryUpdateHandler.validateDictionariesForAdd(recategorizationRequest, recategorizationRequest.getValue()); + manualRedactionDictionaryUpdateHandler.validateDictionariesForDelete(recategorizationRequest, + recategorizationRequest.getType(), + recategorizationRequest.getDossierTemplateId()); recategorizationPersistenceService.insert(fileId, recategorizationRequest); - Set typeIdsOfDictionariesWithAdd = manualRedactionDictionaryUpdateHandler.handleAddToDictionaryAndReturnModifiedTypeIds(fileId, redactionLogEntry.getValue(), recategorizationRequest); - Set typeIdsOfDictionariesWithDelete = manualRedactionDictionaryUpdateHandler.handleRemoveFromDictionaryAndReturnModifiedTypeIds(redactionLogEntry, - fileId, - recategorizationRequest.getDossierId(), - dossier.getDossierTemplateId(), + Set typeIdsOfDictionariesWithAdd = manualRedactionDictionaryUpdateHandler.handleAddToDictionaryAndReturnModifiedTypeIds(fileId, + recategorizationRequest.getValue(), + recategorizationRequest); + Set typeIdsOfDictionariesWithDelete = manualRedactionDictionaryUpdateHandler.handleRemoveFromDictionaryAndReturnModifiedTypeIds(fileId, recategorizationRequest); recategorizationPersistenceService.updateStatus(fileId, @@ -317,28 +308,6 @@ public class ManualRedactionService { } - private void removeFromDictionary(String typeId, String value, String dossierId, String fileId, DictionaryEntryType dictionaryEntryType) { - - try { - log.debug("Deleting entries to {} for {} / {}", typeId, dossierId, fileId); - dictionaryManagementService.deleteEntries(typeId, List.of(value), dictionaryEntryType != null ? dictionaryEntryType : DictionaryEntryType.ENTRY); - } catch (FeignException e) { - throw new BadRequestException(e.getMessage()); - } - } - - - private void addToDictionary(String typeId, String value, String dossierId, String fileId, DictionaryEntryType dictionaryEntryType) { - - try { - log.debug("Adding entry: {} to {} for {} / {}", value, typeId, dossierId, fileId); - dictionaryManagementService.addEntries(typeId, List.of(value), false, false, dictionaryEntryType != null ? dictionaryEntryType : DictionaryEntryType.ENTRY); - } catch (Exception e) { - throw new BadRequestException(e.getMessage()); - } - } - - private boolean manualAddRedactionsContains(ManualRedactions manualRedactions, String annotationId) { return manualRedactions.getEntriesToAdd().stream().anyMatch(m -> annotationId.equals(m.getAnnotationId())); diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/annotations/ManualRequestWithAddToDictionary.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/annotations/ManualRequestWithAddToDictionary.java index d06ef8539..fd3c3f4ab 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/annotations/ManualRequestWithAddToDictionary.java +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/annotations/ManualRequestWithAddToDictionary.java @@ -4,6 +4,9 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemp public interface ManualRequestWithAddToDictionary extends BaseManualRequest { + String getValue(); + + String getDossierId(); diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/annotations/ManualRequestWithRemoveFromDictionary.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/annotations/ManualRequestWithRemoveFromDictionary.java index b04a26347..270eeb158 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/annotations/ManualRequestWithRemoveFromDictionary.java +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/annotations/ManualRequestWithRemoveFromDictionary.java @@ -1,10 +1,26 @@ package com.iqser.red.service.persistence.service.v1.api.shared.model.annotations; +import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.DictionaryEntryType; + public interface ManualRequestWithRemoveFromDictionary extends BaseManualRequest { String getAnnotationId(); + String getValue(); + + String getType(); + + String getDossierTemplateId(); + + String getDossierId(); + + + + + DictionaryEntryType getDictionaryEntryType(); + + boolean isRemoveFromDictionary(); diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/annotations/RecategorizationRequest.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/annotations/RecategorizationRequest.java index 1a7e371a3..82d50c05a 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/annotations/RecategorizationRequest.java +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/annotations/RecategorizationRequest.java @@ -18,9 +18,12 @@ public class RecategorizationRequest implements ManualRequestWithAddToDictionary String annotationId; String user; + String value; AnnotationStatus status; - String dossierTemplateTypeId; + String type; + String dossierTemplateId; String dossierId; + String dossierTemplateTypeId; String comment; int page; boolean addToDictionary; diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/annotations/RemoveRedactionRequest.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/annotations/RemoveRedactionRequest.java index 0dae857d2..538f1be83 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/annotations/RemoveRedactionRequest.java +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/annotations/RemoveRedactionRequest.java @@ -1,22 +1,32 @@ package com.iqser.red.service.persistence.service.v1.api.shared.model.annotations; +import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.DictionaryEntryType; + +import lombok.AccessLevel; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import lombok.experimental.FieldDefaults; @Data @Builder @AllArgsConstructor @NoArgsConstructor +@FieldDefaults(level = AccessLevel.PRIVATE) public class RemoveRedactionRequest implements ManualRequestWithRemoveFromDictionary { - private String annotationId; - private String user; - private AnnotationStatus status; - private boolean removeFromDictionary; - private boolean removeFromAllDossiers; - private String comment; - private int page; + String annotationId; + String value; + DictionaryEntryType dictionaryEntryType; + String user; + String dossierId; + String dossierTemplateId; + String type; + AnnotationStatus status; + boolean removeFromDictionary; + boolean removeFromAllDossiers; + String comment; + int page; } -- 2.47.2 From 7fcb52c90f510221a297941cf3c9e4ccd16fb27a Mon Sep 17 00:00:00 2001 From: Kilian Schuettler Date: Wed, 30 Aug 2023 16:52:07 +0200 Subject: [PATCH 2/3] RED-7317: Endpoint to change entity types of dict-based annotations * fix test --- .../service/manualredactions/ManualRedactionMapper.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionMapper.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionMapper.java index 083cf9a26..0e46a93db 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionMapper.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionMapper.java @@ -151,7 +151,8 @@ public class ManualRedactionMapper { .addToAllDossiers(recategorizationRequest.isAddToAllDossiers()) .dictionaryEntryType(getDictionaryEntryType(redactionLogEntry)) .value(redactionLogEntry.getValue()) - .dossierTemplateTypeId(toTypeId(redactionLogEntry.getType(), dossierTemplateId)) + .type(recategorizationRequest.getType()) + .dossierTemplateTypeId(toTypeId(recategorizationRequest.getType(), dossierTemplateId)) .build(); requests.add(build); } -- 2.47.2 From 701c65eac79eb4525592e5a3a2836923c9c2c8af Mon Sep 17 00:00:00 2001 From: Kilian Schuettler Date: Wed, 30 Aug 2023 17:01:53 +0200 Subject: [PATCH 3/3] RED-7317: Endpoint to change entity types of dict-based annotations * fix test * make it clear, which field does what --- .../ManualRedactionDictionaryUpdateHandler.java | 4 ++-- .../service/manualredactions/ManualRedactionMapper.java | 4 ++-- .../service/manualredactions/ManualRedactionService.java | 4 ++-- .../annotations/ManualRequestWithRemoveFromDictionary.java | 2 +- .../api/shared/model/annotations/RecategorizationRequest.java | 2 +- .../api/shared/model/annotations/RemoveRedactionRequest.java | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionDictionaryUpdateHandler.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionDictionaryUpdateHandler.java index 66d18f07e..777bc976a 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionDictionaryUpdateHandler.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionDictionaryUpdateHandler.java @@ -107,8 +107,8 @@ public class ManualRedactionDictionaryUpdateHandler { DictionaryEntryType dictionaryEntryType = manualRequestWithRemoveFromDictionary.getDictionaryEntryType(); Set typeIdsOfModifiedDictionaries = new HashSet<>(); - String dossierTemplateDictionaryTypeId = toTypeId(manualRequestWithRemoveFromDictionary.getType(), manualRequestWithRemoveFromDictionary.getDossierTemplateId()); - String dossierDictionaryTypeId = toTypeId(manualRequestWithRemoveFromDictionary.getType(), + String dossierTemplateDictionaryTypeId = toTypeId(manualRequestWithRemoveFromDictionary.getTypeToRemove(), manualRequestWithRemoveFromDictionary.getDossierTemplateId()); + String dossierDictionaryTypeId = toTypeId(manualRequestWithRemoveFromDictionary.getTypeToRemove(), manualRequestWithRemoveFromDictionary.getDossierTemplateId(), manualRequestWithRemoveFromDictionary.getDossierId()); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionMapper.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionMapper.java index 0e46a93db..2a2f81643 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionMapper.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionMapper.java @@ -87,7 +87,7 @@ public class ManualRedactionMapper { .removeFromAllDossiers(removeRedactionRequest.isRemoveFromAllDossiers()) .value(redactionLogEntry.getValue()) .dictionaryEntryType(getDictionaryEntryType(redactionLogEntry)) - .type(redactionLogEntry.getType()) + .typeToRemove(redactionLogEntry.getType()) .dossierId(dossierId) .dossierTemplateId(dossierTemplateId); @@ -151,7 +151,7 @@ public class ManualRedactionMapper { .addToAllDossiers(recategorizationRequest.isAddToAllDossiers()) .dictionaryEntryType(getDictionaryEntryType(redactionLogEntry)) .value(redactionLogEntry.getValue()) - .type(recategorizationRequest.getType()) + .typeToRemove(redactionLogEntry.getType()) .dossierTemplateTypeId(toTypeId(recategorizationRequest.getType(), dossierTemplateId)) .build(); requests.add(build); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionService.java index be49b14a2..672384e22 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionService.java @@ -116,7 +116,7 @@ public class ManualRedactionService { for (RemoveRedactionRequest removeRedactionRequest : removeRedactionRequests) { manualRedactionDictionaryUpdateHandler.validateDictionariesForDelete(removeRedactionRequest, - removeRedactionRequest.getType(), + removeRedactionRequest.getTypeToRemove(), removeRedactionRequest.getDossierTemplateId()); removeRedactionPersistenceService.insert(fileId, removeRedactionRequest); @@ -218,7 +218,7 @@ public class ManualRedactionService { for (var recategorizationRequest : recategorizationRequests) { manualRedactionDictionaryUpdateHandler.validateDictionariesForAdd(recategorizationRequest, recategorizationRequest.getValue()); manualRedactionDictionaryUpdateHandler.validateDictionariesForDelete(recategorizationRequest, - recategorizationRequest.getType(), + recategorizationRequest.getTypeToRemove(), recategorizationRequest.getDossierTemplateId()); recategorizationPersistenceService.insert(fileId, recategorizationRequest); diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/annotations/ManualRequestWithRemoveFromDictionary.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/annotations/ManualRequestWithRemoveFromDictionary.java index 270eeb158..c56a8888e 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/annotations/ManualRequestWithRemoveFromDictionary.java +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/annotations/ManualRequestWithRemoveFromDictionary.java @@ -9,7 +9,7 @@ public interface ManualRequestWithRemoveFromDictionary extends BaseManualRequest String getValue(); - String getType(); + String getTypeToRemove(); String getDossierTemplateId(); diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/annotations/RecategorizationRequest.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/annotations/RecategorizationRequest.java index 82d50c05a..e28a10f7d 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/annotations/RecategorizationRequest.java +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/annotations/RecategorizationRequest.java @@ -20,7 +20,7 @@ public class RecategorizationRequest implements ManualRequestWithAddToDictionary String user; String value; AnnotationStatus status; - String type; + String typeToRemove; String dossierTemplateId; String dossierId; String dossierTemplateTypeId; diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/annotations/RemoveRedactionRequest.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/annotations/RemoveRedactionRequest.java index 538f1be83..7274d5b6e 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/annotations/RemoveRedactionRequest.java +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/annotations/RemoveRedactionRequest.java @@ -22,7 +22,7 @@ public class RemoveRedactionRequest implements ManualRequestWithRemoveFromDictio String user; String dossierId; String dossierTemplateId; - String type; + String typeToRemove; AnnotationStatus status; boolean removeFromDictionary; boolean removeFromAllDossiers; -- 2.47.2