From a6037f448de4d9c361d82114d0eeaab13bb0802b Mon Sep 17 00:00:00 2001 From: maverickstuder Date: Fri, 15 Mar 2024 15:11:33 +0100 Subject: [PATCH] RED-8702: Explore document databases to store entityLog * added experimental logic for mongodb integration --- .../v1/server/mongo/EntityLogDocument.java | 3 ++- .../server/mongo/EntityLogMongoService.java | 23 +++++++++++++++++++ .../EntityLogDocumentService.java | 5 +++- 3 files changed, 29 insertions(+), 2 deletions(-) rename redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/{mongo => mongodeprecated}/EntityLogDocumentService.java (82%) diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/mongo/EntityLogDocument.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/mongo/EntityLogDocument.java index 263c81f1..e57ce9b8 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/mongo/EntityLogDocument.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/mongo/EntityLogDocument.java @@ -27,7 +27,6 @@ public class EntityLogDocument { private String id; private String dossierId; - private String fileId; private long analysisVersion; @@ -36,10 +35,12 @@ public class EntityLogDocument { @DBRef @CascadeSave private List entityLogEntryDocument = new ArrayList<>(); + private List legalBasis = new ArrayList<>(); private long dictionaryVersion = -1; private long dossierDictionaryVersion = -1; + private long rulesVersion = -1; private long legalBasisVersion = -1; diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/mongo/EntityLogMongoService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/mongo/EntityLogMongoService.java index 8a2dea3c..721daf30 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/mongo/EntityLogMongoService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/mongo/EntityLogMongoService.java @@ -186,6 +186,29 @@ public class EntityLogMongoService { } + public Optional findLatestAnalysisNumber(String dossierId, String fileId) { + + return entityLogDocumentRepository.findAnalysisNumberById(EntityLogDocument.getDocumentId(dossierId, fileId)) + .map(EntityLogDocument::getAnalysisNumber); + } + + + public List findAllEntityLogEntriesWithManualChanges(String dossierId, String fileId) { + + return entityLogEntryDocumentRepository.findByEntityLogIdAndManualChangesNotEmpty(EntityLogDocument.getDocumentId(dossierId, fileId)) + .stream() + .map(EntityLogMongoService::fromDocument) + .toList(); + } + public List findAllEntityLogEntriesByAnalysisNumber(String dossierId, String fileId, int analysisNumber) { + + return entityLogEntryDocumentRepository.findByEntityLogIdAndChangesAnalysisNumber(EntityLogDocument.getDocumentId(dossierId, fileId), analysisNumber) + .stream() + .map(EntityLogMongoService::fromDocument) + .toList(); + } + + private static EntityLog fromDocument(EntityLogDocument entityLogDocument) { EntityLog entityLog = new EntityLog(); diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/mongo/EntityLogDocumentService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/mongodeprecated/EntityLogDocumentService.java similarity index 82% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/mongo/EntityLogDocumentService.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/mongodeprecated/EntityLogDocumentService.java index f6118a9e..72dfae7a 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/mongo/EntityLogDocumentService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/mongodeprecated/EntityLogDocumentService.java @@ -1,4 +1,4 @@ -package com.iqser.red.service.redaction.v1.server.mongo; +package com.iqser.red.service.redaction.v1.server.mongodeprecated; import java.util.Optional; @@ -7,6 +7,9 @@ import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.stereotype.Repository; import org.springframework.stereotype.Service; +import com.iqser.red.service.redaction.v1.server.mongo.EntityLogDocument; +import com.iqser.red.service.redaction.v1.server.mongo.EntityLogDocumentRepository; + import lombok.AccessLevel; import lombok.RequiredArgsConstructor; import lombok.experimental.FieldDefaults;