From c6e22ae3a23094d5be4eb2f92d90c9203bdccb54 Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Thu, 30 Sep 2021 09:11:41 +0300 Subject: [PATCH] revert of typeid --- .../DictionaryPersistenceService.java | 11 +++----- .../v1/processor/utils/TypeIdUtils.java | 12 +++++++++ .../AnalysisFlagsCalculationService.java | 2 +- .../service/ManualRedactionService.java | 26 +++++++++++++++---- .../service/FileTesterAndProvider.java | 2 +- 5 files changed, 39 insertions(+), 14 deletions(-) create mode 100644 persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/TypeIdUtils.java diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DictionaryPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DictionaryPersistenceService.java index 431195ae2..0d5862834 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DictionaryPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DictionaryPersistenceService.java @@ -16,6 +16,8 @@ import java.util.List; import java.util.Optional; import java.util.stream.Collectors; +import static com.iqser.red.service.persistence.management.v1.processor.utils.TypeIdUtils.toTypeId; + @Service @RequiredArgsConstructor @@ -34,7 +36,7 @@ public class DictionaryPersistenceService { checkRankAlreadyExists(type, dossierTemplateId, rank, dossierId); TypeEntity t = new TypeEntity(); - t.setId(type + ":" + getTypeIdSuffix(dossierTemplateId, dossierId)); + t.setId(toTypeId(type,dossierTemplateId,dossierId)); t.setType(type); t.setDossier(dossierId == null ? null : dossierRepository.getOne(dossierId)); t.setDossierTemplate(dossierTemplateRepository.getOne(dossierTemplateId)); @@ -52,12 +54,7 @@ public class DictionaryPersistenceService { } - private String getTypeIdSuffix(String dossierTemplateId, String dossierId) { - if (StringUtils.isBlank(dossierTemplateId) && StringUtils.isBlank(dossierId)) { - throw new BadRequestException("Either DossierId or DossierTemplateId is required"); - } - return dossierTemplateId != null ? dossierTemplateId + (dossierId != null ? ":" + dossierId : "") : dossierId; - } + @Transactional public void updateType(String typeId, TypeEntity typeValueRequest) { diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/TypeIdUtils.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/TypeIdUtils.java new file mode 100644 index 000000000..00f8eb528 --- /dev/null +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/TypeIdUtils.java @@ -0,0 +1,12 @@ +package com.iqser.red.service.persistence.management.v1.processor.utils; + +public class TypeIdUtils { + + public static String toTypeId(String type, String dossierTemplateId) { + return toTypeId(type, dossierTemplateId, null); + } + + public static String toTypeId(String type, String dossierTemplateId, String dossierId) { + return type + ":" + dossierTemplateId + (dossierId != null ? ":" + dossierId : ""); + } +} diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/AnalysisFlagsCalculationService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/AnalysisFlagsCalculationService.java index 6ba2da93e..f074ea574 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/AnalysisFlagsCalculationService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/AnalysisFlagsCalculationService.java @@ -33,7 +33,7 @@ public class AnalysisFlagsCalculationService { continue; } - String type = getType(entry.getTypeId()); + String type = getType(entry.getType()); if (entry.isRedacted() && !entry.isManual() || entry.isManual() && entry.getStatus() .equals(AnnotationStatus.APPROVED)) { diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ManualRedactionService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ManualRedactionService.java index b6dd10a1a..9617e54af 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ManualRedactionService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ManualRedactionService.java @@ -4,6 +4,7 @@ import com.google.common.hash.HashFunction; import com.google.common.hash.Hashing; import com.iqser.red.service.peristence.v1.server.controller.DictionaryController; import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.*; +import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierEntity; 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.*; @@ -20,6 +21,8 @@ import java.time.OffsetDateTime; import java.util.List; import java.util.Optional; +import static com.iqser.red.service.persistence.management.v1.processor.utils.TypeIdUtils.toTypeId; + @Slf4j @Service @RequiredArgsConstructor @@ -336,7 +339,7 @@ public class ManualRedactionService { @SuppressWarnings("PMD") public void updateRemoveRedactionStatus(String dossierId, String fileId, String annotationId, AnnotationStatus annotationStatus) { - dossierPersistenceService.getAndValidateDossier(dossierId); + var dossier = dossierPersistenceService.getAndValidateDossier(dossierId); IdRemovalEntity idRemoval = removeRedactionPersistenceService.findRemoveRedaction(fileId, annotationId); if (idRemoval.isRemoveFromDictionary()) { @@ -355,12 +358,12 @@ public class ManualRedactionService { if (annotationStatus == AnnotationStatus.APPROVED) { - removeFromDictionary(redactionLogEntry.getTypeId(), redactionLogEntry.getValue(), dossierId, fileId); + removeFromDictionary(buildTypeId(redactionLogEntry, dossier), redactionLogEntry.getValue(), dossierId, fileId); } else if (annotationStatus == AnnotationStatus.DECLINED) { // if it was previously approved, revert the delete if (idRemoval.getStatus() == AnnotationStatus.APPROVED) { - addToDictionary(redactionLogEntry.getTypeId(), redactionLogEntry.getValue(), dossierId, fileId); + addToDictionary(buildTypeId(redactionLogEntry,dossier), redactionLogEntry.getValue(), dossierId, fileId); } } } @@ -371,6 +374,14 @@ public class ManualRedactionService { fileStatusPersistenceService.setUpdateLastManualRedactionAndHasSuggestions(fileId, OffsetDateTime.now(), hasSuggestions); } + private String buildTypeId(RedactionLogEntry redactionLogEntry, DossierEntity dossier) { + if (redactionLogEntry.isDossierDictionaryEntry()) { + return toTypeId(redactionLogEntry.getType(), dossier.getDossierTemplateId(), dossier.getId()); + } else { + return toTypeId(redactionLogEntry.getType(), dossier.getDossierTemplateId()); + } + } + public void updateForceRedactionStatus(String dossierId, String fileId, String annotationId, AnnotationStatus annotationStatus) { @@ -463,9 +474,14 @@ public class ManualRedactionService { private void handleRemoveFromDictionary(String dossierId, String fileId, String annotationId, AnnotationStatus status, boolean removeFromDictionary, boolean revert) { + + if (status == AnnotationStatus.APPROVED) { if (removeFromDictionary) { + + var dossier = dossierPersistenceService.getAndValidateDossier(dossierId); + RedactionLog redactionLog = fileManagementStorageService.getRedactionLog(dossierId, fileId); Optional redactionLogEntryOptional = redactionLog.getRedactionLogEntry() .stream() @@ -479,9 +495,9 @@ public class ManualRedactionService { var redactionLogEntry = redactionLogEntryOptional.get(); if (revert) { - addToDictionary(redactionLogEntry.getTypeId(), redactionLogEntry.getValue(), dossierId, fileId); + addToDictionary(buildTypeId(redactionLogEntry,dossier), redactionLogEntry.getValue(), dossierId, fileId); } else { - removeFromDictionary(redactionLogEntry.getTypeId(), redactionLogEntry.getValue(), dossierId, fileId); + removeFromDictionary(buildTypeId(redactionLogEntry,dossier), redactionLogEntry.getValue(), dossierId, fileId); } } removeRedactionPersistenceService.updateStatus(fileId, annotationId, status, removeFromDictionary); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/FileTesterAndProvider.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/FileTesterAndProvider.java index a7b7a7f58..b57a2ff23 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/FileTesterAndProvider.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/FileTesterAndProvider.java @@ -52,7 +52,7 @@ public class FileTesterAndProvider { assertThat(fileClient.getDossierStatus(dossier.getId()).size()).isEqualTo(1); - fileManagementStorageService.storeObject(dossier.getId(), file.getId(), FileType.REDACTION_LOG, objectMapper.writeValueAsBytes(new RedactionLog(1, List.of(RedactionLogEntry.builder().id("annotationId").typeId("manual:" + dossier.getDossierTemplateId()).value("value").build()), + fileManagementStorageService.storeObject(dossier.getId(), file.getId(), FileType.REDACTION_LOG, objectMapper.writeValueAsBytes(new RedactionLog(1, List.of(RedactionLogEntry.builder().id("annotationId").type("manual").value("value").build()), null, 0, 0, 0, 0))); fileManagementStorageService.storeObject(dossier.getId(), file.getId(), FileType.SECTION_GRID, objectMapper.writeValueAsBytes(new SectionGrid()));