From 5286ca5b49d7957347e6b2d2c61fbc340267990d Mon Sep 17 00:00:00 2001 From: Ali Oezyetimoglu Date: Mon, 5 Sep 2022 15:28:17 +0200 Subject: [PATCH] RED-5142: Sonar issues: persistence-service --- .../service/DossierTemplateCloneService.java | 2 +- .../DossierAttributesController.java | 46 ++++++----- .../server/controller/DossierController.java | 2 +- .../controller/FileStatusController.java | 76 ++++++++++--------- .../controller/NotificationController.java | 35 +++++---- .../controller/ReanalysisController.java | 17 ++--- .../controller/RedactionLogController.java | 6 +- .../controller/ReportTemplateController.java | 41 ++++------ .../controller/WatermarkController.java | 24 ++++-- .../migrations/EntityTypesMigration4.java | 18 +---- .../model/reducetext/RedTextPosition.java | 12 +-- .../persistence/MasterPersistenceConfig.java | 2 +- .../persistence/TenantPersistenceConfig.java | 2 +- .../server/service/DossierStatsService.java | 60 +++++++-------- .../v1/server/service/FileService.java | 44 +++-------- .../v1/server/service/IndexingService.java | 21 ++--- .../ManualRedactionProviderService.java | 10 +-- .../service/ManualRedactionService.java | 2 +- .../v1/server/utils/StorageIdUtils.java | 4 +- 19 files changed, 196 insertions(+), 228 deletions(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateCloneService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateCloneService.java index 0d794c332..ecc895f3e 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateCloneService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateCloneService.java @@ -113,7 +113,7 @@ public class DossierTemplateCloneService { cloneWatermarks(dossierTemplate.getId(), clonedDossierTemplate.getId()); }, () -> { - throw new NotFoundException(String.format(dossierTemplatePersistenceService.DOSSIER_TEMPLATE_NOT_FOUND_MESSAGE, dossierTemplateId)); + throw new NotFoundException(String.format(DossierTemplatePersistenceService.DOSSIER_TEMPLATE_NOT_FOUND_MESSAGE, dossierTemplateId)); }); return clonedDossierTemplate; diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierAttributesController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierAttributesController.java index 330a629a3..a6e6f6aca 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierAttributesController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierAttributesController.java @@ -1,7 +1,16 @@ package com.iqser.red.service.peristence.v1.server.controller; +import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + import com.iqser.red.service.peristence.v1.server.service.DossierService; -import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierAttributeConfigEntity; import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; import com.iqser.red.service.persistence.management.v1.processor.exception.ConflictException; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierAttributeConfigPersistenceService; @@ -9,17 +18,8 @@ import com.iqser.red.service.persistence.management.v1.processor.service.persist import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierAttribute; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierAttributeType; import com.iqser.red.service.persistence.service.v1.api.resources.DossierAttributesResource; + import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; @RestController @RequiredArgsConstructor @@ -31,8 +31,7 @@ public class DossierAttributesController implements DossierAttributesResource { @Override - public List setDossierAttributes(@PathVariable(DOSSIER_ID_PARAM) String dossierId, - @RequestBody List dossierAttributes) { + public List setDossierAttributes(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @RequestBody List dossierAttributes) { var dossier = dossierService.getDossierById(dossierId); var config = dossierAttributeConfigPersistenceService.getDossierAttributes(dossier.getDossierTemplateId()); @@ -51,9 +50,9 @@ public class DossierAttributesController implements DossierAttributesResource { return getDossierAttributes(dossierId); } + @Override - public DossierAttribute addOrUpdateDossierAttribute(@PathVariable(DOSSIER_ID_PARAM) String dossierId, - @RequestBody DossierAttribute dossierAttribute) { + public DossierAttribute addOrUpdateDossierAttribute(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @RequestBody DossierAttribute dossierAttribute) { var dossier = dossierService.getDossierById(dossierId); var dossierAttributes = dossierAttributePersistenceService.getDossierAttributes(dossierId); @@ -62,8 +61,10 @@ public class DossierAttributesController implements DossierAttributesResource { var typeById = config.stream().collect(Collectors.toMap(entry -> entry.getId(), entry -> entry.getType())); validateDossierAttribute(typeById, dossierAttribute); - if (dossierAttributes.stream().anyMatch(d -> d.getId().getDossierId().equals(dossierAttribute.getDossierId()) - && d.getId().getDossierAttributeConfigId().equals(dossierAttribute.getDossierAttributeConfigId()))) { + if (dossierAttributes.stream() + .anyMatch(d -> d.getId().getDossierId().equals(dossierAttribute.getDossierId()) && d.getId() + .getDossierAttributeConfigId() + .equals(dossierAttribute.getDossierAttributeConfigId()))) { dossierAttributePersistenceService.updateDossierAttribute(dossierId, dossierAttribute.getDossierAttributeConfigId(), dossierAttribute.getValue()); } else { dossierAttributePersistenceService.insertDossierAttribute(dossierId, dossierAttribute.getDossierAttributeConfigId(), dossierAttribute.getValue()); @@ -72,28 +73,31 @@ public class DossierAttributesController implements DossierAttributesResource { return convert(dossierAttributePersistenceService.findOne(dossierId, dossierAttribute.getDossierAttributeConfigId()), DossierAttribute.class); } + @Override public List getDossierAttributes(@PathVariable(DOSSIER_ID_PARAM) String dossierId) { + return convert(dossierAttributePersistenceService.getDossierAttributes(dossierId), DossierAttribute.class); } @Override - public void deleteDossierAttribute(@PathVariable(DOSSIER_ID_PARAM) String dossierId, - @PathVariable(DOSSIER_ATTRIBUTE_ID_PARAM) String dossierAttributeId) { + public void deleteDossierAttribute(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(DOSSIER_ATTRIBUTE_ID_PARAM) String dossierAttributeId) { dossierAttributePersistenceService.deleteDossierAttribute(dossierId, dossierAttributeId); } - private void validateDossierAttribute(Map typeById, DossierAttribute dossierAttribute ){ + private void validateDossierAttribute(Map typeById, DossierAttribute dossierAttribute) { if (!typeById.containsKey(dossierAttribute.getDossierAttributeConfigId())) { throw new ConflictException("Dossier attribute configuration does not exist."); } DossierAttributeType type = typeById.get(dossierAttribute.getDossierAttributeConfigId()); - if(type.equals(DossierAttributeType.IMAGE) && dossierAttribute.getValue() != null && !(dossierAttribute.getValue().startsWith("data:image/png;base64") || dossierAttribute.getValue().startsWith("data:image/jpg;base64") || dossierAttribute.getValue().startsWith("data:image/jpeg;base64"))){ + if (type.equals(DossierAttributeType.IMAGE) && dossierAttribute.getValue() != null && !(dossierAttribute.getValue() + .startsWith("data:image/png;base64") || dossierAttribute.getValue().startsWith("data:image/jpg;base64") || dossierAttribute.getValue() + .startsWith("data:image/jpeg;base64"))) { throw new BadRequestException("Only png, jpg and jpeg files are allowed for image dossier attributes"); } } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierController.java index feb2d9b78..202f4b171 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierController.java @@ -142,7 +142,7 @@ public class DossierController implements DossierResource { DossierInformation dossierInformation = new DossierInformation(); var dossiers = dossierService.getAllDossiers(); - if (filteredDossierIds != null && filteredDossierIds.size() > 0) { + if (filteredDossierIds != null && !filteredDossierIds.isEmpty()) { dossiers = dossiers.stream().filter(d -> filteredDossierIds.contains(d.getId())).collect(Collectors.toList()); } dossiers.forEach(d -> { diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/FileStatusController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/FileStatusController.java index d5e6cd62b..11be1d36a 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/FileStatusController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/FileStatusController.java @@ -1,5 +1,15 @@ package com.iqser.red.service.peristence.v1.server.controller; +import java.time.OffsetDateTime; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + import com.iqser.red.service.peristence.v1.server.service.AnalysisFlagsCalculationService; import com.iqser.red.service.peristence.v1.server.service.ExcludeFromAnalysisService; import com.iqser.red.service.peristence.v1.server.service.FileStatusService; @@ -7,20 +17,11 @@ import com.iqser.red.service.peristence.v1.server.service.IndexingService; import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileModel; -import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.ProcessingStatus; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.WorkflowStatus; import com.iqser.red.service.persistence.service.v1.api.resources.StatusResource; import com.iqser.red.service.search.v1.model.IndexMessageType; -import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; -import java.time.OffsetDateTime; -import java.util.List; -import java.util.Set; -import java.util.stream.Collectors; +import lombok.RequiredArgsConstructor; @RestController @RequiredArgsConstructor @@ -33,8 +34,7 @@ public class FileStatusController implements StatusResource { @Override - public JSONPrimitive hasChangesSince(@PathVariable(DOSSIER_ID_PARAM) String dossierId, - @RequestBody JSONPrimitive since) { + public JSONPrimitive hasChangesSince(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @RequestBody JSONPrimitive since) { return JSONPrimitive.of(fileStatusService.hasChangesSince(dossierId, since.getValue())); } @@ -43,50 +43,53 @@ public class FileStatusController implements StatusResource { @Override public List getDossierStatus(@PathVariable(DOSSIER_ID_PARAM) String dossierId) { - return fileStatusService.getDossierStatus(dossierId).stream() - .filter(f -> !f.isSoftOrHardDeleted()) - .collect(Collectors.toList()); + return fileStatusService.getDossierStatus(dossierId).stream().filter(f -> !f.isSoftOrHardDeleted()).collect(Collectors.toList()); } + @Override public List getSoftDeletedDossierStatus(@PathVariable(DOSSIER_ID_PARAM) String dossierId) { - return fileStatusService.getDossierStatus(dossierId).stream() + + return fileStatusService.getDossierStatus(dossierId) + .stream() .filter(f3 -> f3.getDeleted() != null && f3.getHardDeletedTime() == null) - .sorted((f11, f21) -> f21.getDeleted().compareTo(f11.getDeleted())).collect(Collectors.toList()); + .sorted((f11, f21) -> f21.getDeleted().compareTo(f11.getDeleted())) + .collect(Collectors.toList()); } + public List getSoftDeletedForDossierList(@RequestBody List dossierIds) { + return fileStatusService.getSoftDeletedForDossierList(dossierIds); } @Override - public FileModel getFileStatus(@PathVariable(DOSSIER_ID_PARAM) String dossierId, - @PathVariable(FILE_ID) String fileId) { + public FileModel getFileStatus(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId) { + return fileStatusService.getStatus(fileId); } + @Override - public void updateFileModificationDate(@PathVariable(DOSSIER_ID_PARAM) String dossierId, - @PathVariable(FILE_ID) String fileId) { + public void updateFileModificationDate(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId) { + this.fileStatusService.updateFileModificationDate(fileId, OffsetDateTime.now()); } @Override - public void setCurrentFileAssignee(@PathVariable(DOSSIER_ID_PARAM) String dossierId, - @PathVariable(FILE_ID) String fileId, + public void setCurrentFileAssignee(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId) { + fileStatusService.setAssignee(fileId, assigneeId); indexingService.addToIndexingQueue(IndexMessageType.UPDATE, null, dossierId, fileId, 2); } - public void setStatusUnderReview(@PathVariable(DOSSIER_ID_PARAM) String dossierId, - @PathVariable(FILE_ID) String fileId, + public void setStatusUnderReview(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestParam(value = USER_ID_REQUEST_PARAM, required = false) String userId) { - FileModel fileStatus = fileStatusService.getStatus(fileId); String assignee = fileStatus.getAssignee(); if (userId != null) { @@ -98,8 +101,8 @@ public class FileStatusController implements StatusResource { indexingService.addToIndexingQueue(IndexMessageType.UPDATE, null, dossierId, fileId, 2); } - public void setStatusUnderApproval(@PathVariable(DOSSIER_ID_PARAM) String dossierId, - @PathVariable(FILE_ID) String fileId, + + public void setStatusUnderApproval(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestParam(value = APPROVER_ID_REQUEST_PARAM, required = false) String approverId) { FileModel fileStatus = fileStatusService.getStatus(fileId); @@ -108,14 +111,14 @@ public class FileStatusController implements StatusResource { assignee = approverId; } - fileStatusService.setStatusSuccessful(fileId, assignee != null ? WorkflowStatus.UNDER_APPROVAL : WorkflowStatus.NEW); + fileStatusService.setStatusSuccessful(fileId, assignee != null ? WorkflowStatus.UNDER_APPROVAL : WorkflowStatus.NEW); fileStatusService.setAssignee(fileId, approverId); analysisFlagsCalculationService.calculateFlags(dossierId, fileId); indexingService.addToIndexingQueue(IndexMessageType.UPDATE, null, dossierId, fileId, 2); } - public void setStatusApproved(@PathVariable(DOSSIER_ID_PARAM) String dossierId, - @PathVariable(FILE_ID) String fileId, + + public void setStatusApproved(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestParam(value = APPROVER_ID_REQUEST_PARAM, required = false) String approverId) { FileModel fileStatus = fileStatusService.getStatus(fileId); @@ -132,7 +135,9 @@ public class FileStatusController implements StatusResource { } + public void setStatusNew(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId) { + FileModel fileStatus = fileStatusService.getStatus(fileId); if (!WorkflowStatus.UNDER_REVIEW.equals(fileStatus.getWorkflowStatus())) { throw new BadRequestException("Allowed transition not possible from: " + fileStatus.getWorkflowStatus() + " to status NEW"); @@ -141,15 +146,16 @@ public class FileStatusController implements StatusResource { fileStatusService.setStatusSuccessful(fileId, WorkflowStatus.NEW); } - public void toggleExclusion(@PathVariable(DOSSIER_ID_PARAM) String dossierId, - @PathVariable(FILE_ID) String fileId, @RequestParam(EXCLUDED_STATUS_PARAM) boolean excluded) { + + public void toggleExclusion(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestParam(EXCLUDED_STATUS_PARAM) boolean excluded) { excludeFromAnalysis.toggleExclusion(dossierId, fileId, excluded); } - public void toggleAutomaticAnalysis(@PathVariable(DOSSIER_ID_PARAM) String dossierId, - @PathVariable(FILE_ID) String fileId, @RequestParam(EXCLUDED_STATUS_PARAM) boolean excludedFromAutomaticAnalysis) { + + public void toggleAutomaticAnalysis(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, + @RequestParam(EXCLUDED_STATUS_PARAM) boolean excludedFromAutomaticAnalysis) { excludeFromAnalysis.toggleAutomaticAnalysis(dossierId, fileId, excludedFromAutomaticAnalysis); diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/NotificationController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/NotificationController.java index c024ac97a..efd044548 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/NotificationController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/NotificationController.java @@ -1,21 +1,22 @@ package com.iqser.red.service.peristence.v1.server.controller; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.NotificationPersistenceService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.NotificationPreferencesPersistenceService; -import com.iqser.red.service.persistence.service.v1.api.model.audit.AddNotificationRequest; -import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive; -import com.iqser.red.service.persistence.service.v1.api.model.notification.Notification; -import com.iqser.red.service.persistence.service.v1.api.resources.NotificationResource; -import lombok.RequiredArgsConstructor; +import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; + +import java.time.OffsetDateTime; +import java.util.List; + import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import java.time.OffsetDateTime; -import java.util.List; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.NotificationPersistenceService; +import com.iqser.red.service.persistence.service.v1.api.model.audit.AddNotificationRequest; +import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive; +import com.iqser.red.service.persistence.service.v1.api.model.notification.Notification; +import com.iqser.red.service.persistence.service.v1.api.resources.NotificationResource; -import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; +import lombok.RequiredArgsConstructor; @RestController @RequiredArgsConstructor @@ -23,17 +24,21 @@ public class NotificationController implements NotificationResource { private final NotificationPersistenceService notificationPersistenceService; + @Override public JSONPrimitive hasNewNotificationsSince(@PathVariable(USER_ID_PARAM) String userId, @RequestBody JSONPrimitive since) { + return JSONPrimitive.of(notificationPersistenceService.hasNewNotificationsSince(userId, since.getValue())); } + public void addNotification(@RequestBody AddNotificationRequest addNotificationRequest) { + notificationPersistenceService.insertNotification(addNotificationRequest); } - public void toggleSeen(@PathVariable(USER_ID_PARAM) String userId, @RequestBody List notificationIds, - @RequestParam(SET_SEEN_PARAM) boolean setSeen) { + + public void toggleSeen(@PathVariable(USER_ID_PARAM) String userId, @RequestBody List notificationIds, @RequestParam(SET_SEEN_PARAM) boolean setSeen) { notificationIds.forEach(notificationId -> { if (setSeen) { @@ -45,8 +50,7 @@ public class NotificationController implements NotificationResource { } - public void toggleRead(@PathVariable(USER_ID_PARAM) String userId, @RequestBody List notificationIds, - @RequestParam(SET_READ_PARAM) boolean setRead) { + public void toggleRead(@PathVariable(USER_ID_PARAM) String userId, @RequestBody List notificationIds, @RequestParam(SET_READ_PARAM) boolean setRead) { notificationIds.forEach(notificationId -> { if (setRead) { @@ -67,8 +71,7 @@ public class NotificationController implements NotificationResource { } - public List getNotifications(@PathVariable(USER_ID_PARAM) String userId, - @RequestParam(INCLUDE_SEEN_PARAM) boolean includeSeen) { + public List getNotifications(@PathVariable(USER_ID_PARAM) String userId, @RequestParam(INCLUDE_SEEN_PARAM) boolean includeSeen) { return convert(notificationPersistenceService.getNotifications(userId, includeSeen), Notification.class); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/ReanalysisController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/ReanalysisController.java index 4769ca472..5e56a39c9 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/ReanalysisController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/ReanalysisController.java @@ -69,9 +69,7 @@ public class ReanalysisController implements ReanalysisResource { var relevantFiles = getAllFilesForDossier(dossierId, true); - relevantFiles.stream() - .filter(fileStatus -> fileStatus.getLastOCRTime() == null) - .forEach(fileStatus -> fileStatusService.setStatusOcrQueued(dossierId, fileStatus.getId())); + relevantFiles.stream().filter(fileStatus -> fileStatus.getLastOCRTime() == null).forEach(fileStatus -> fileStatusService.setStatusOcrQueued(dossierId, fileStatus.getId())); } @@ -79,9 +77,7 @@ public class ReanalysisController implements ReanalysisResource { var relevantFiles = getRelevantFiles(dossierId, fileIds); - relevantFiles.stream() - .filter(fileStatus -> fileStatus.getLastOCRTime() == null) - .forEach(fileStatus -> fileStatusService.setStatusOcrQueued(dossierId, fileStatus.getId())); + relevantFiles.stream().filter(fileStatus -> fileStatus.getLastOCRTime() == null).forEach(fileStatus -> fileStatusService.setStatusOcrQueued(dossierId, fileStatus.getId())); } @@ -121,7 +117,8 @@ public class ReanalysisController implements ReanalysisResource { var importedRedactions = fileManagementStorageService.getImportedRedactions(deleteImportedRedactionsRequest.getDossierId(), deleteImportedRedactionsRequest.getFileId()); importedRedactions.getImportedRedactions().forEach((key, value) -> value.removeIf(v -> deleteImportedRedactionsRequest.getAnnotationIds().contains(v.getId()))); - fileManagementStorageService.storeJSONObject(deleteImportedRedactionsRequest.getDossierId(), deleteImportedRedactionsRequest.getFileId(), FileType.IMPORTED_REDACTIONS, importedRedactions); + fileManagementStorageService.storeJSONObject(deleteImportedRedactionsRequest.getDossierId(), deleteImportedRedactionsRequest.getFileId(), FileType.IMPORTED_REDACTIONS, + importedRedactions); fileStatusService.setStatusFullReprocess(deleteImportedRedactionsRequest.getDossierId(), deleteImportedRedactionsRequest.getFileId(), true, false); } @@ -196,9 +193,9 @@ public class ReanalysisController implements ReanalysisResource { fileStatusService.setStatusReprocess(dossierId, file.getId(), filesToReanalyse.size() == 1, true); }); } else { - filesToReanalyse.stream().filter(FileModel::isReanalysisRequired).forEach(file -> { - fileStatusService.setStatusReprocess(dossierId, file.getId(), filesToReanalyse.size() == 1, true); - }); + filesToReanalyse.stream() + .filter(FileModel::isReanalysisRequired) + .forEach(file -> fileStatusService.setStatusReprocess(dossierId, file.getId(), filesToReanalyse.size() == 1, true)); } } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/RedactionLogController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/RedactionLogController.java index f381b06b8..599f76a7a 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/RedactionLogController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/RedactionLogController.java @@ -1,6 +1,5 @@ package com.iqser.red.service.peristence.v1.server.controller; -import java.time.OffsetDateTime; import java.util.List; import org.springframework.web.bind.annotation.PathVariable; @@ -32,14 +31,15 @@ public class RedactionLogController implements RedactionLogResource { } - public SectionGrid getSectionGrid(@PathVariable(DOSSIER_ID_PARAM) String dossierId, - @PathVariable(FILE_ID) String fileId) { + public SectionGrid getSectionGrid(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId) { return redactionLogService.getSectionGrid(dossierId, fileId); } + public RedactionLog getFilteredRedactionLog(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody FilteredRedactionLogRequest filteredRedactionLogRequest) { + return redactionLogService.getFilteredRedactionLog(dossierId, fileId, filteredRedactionLogRequest); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/ReportTemplateController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/ReportTemplateController.java index b8ffef6c8..a1d4f9429 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/ReportTemplateController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/ReportTemplateController.java @@ -7,28 +7,23 @@ import java.io.IOException; import java.util.List; import java.util.UUID; -import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplateUpdateRequest; - import org.apache.commons.io.IOUtils; -import org.apache.commons.lang3.StringUtils; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import com.iqser.red.service.peristence.v1.server.utils.StorageIdUtils; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.ReportTemplateEntity; -import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; -import com.iqser.red.service.persistence.management.v1.processor.exception.ConflictException; import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.ReportTemplatePersistenceService; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplate; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplateDownload; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplateUpdateRequest; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplateUploadRequest; import com.iqser.red.service.persistence.service.v1.api.resources.ReportTemplateResource; import com.iqser.red.storage.commons.exception.StorageObjectDoesNotExist; import com.iqser.red.storage.commons.service.StorageService; -import lombok.NonNull; import lombok.RequiredArgsConstructor; @RestController @@ -42,55 +37,47 @@ public class ReportTemplateController implements ReportTemplateResource { public ReportTemplate uploadTemplate(@RequestBody ReportTemplateUploadRequest reportTemplateUploadRequest) { String templateId = null; - List reportTemplates = reportTemplatePersistenceService.findByDossierTemplateId(reportTemplateUploadRequest - .getDossierTemplateId()); + List reportTemplates = reportTemplatePersistenceService.findByDossierTemplateId(reportTemplateUploadRequest.getDossierTemplateId()); for (ReportTemplateEntity reportTemplate : reportTemplates) { if (reportTemplate.getFileName() - .equals(reportTemplateUploadRequest.getFileName()) && reportTemplate.isMultiFileReport() && reportTemplateUploadRequest - .isMultiFileReport() || reportTemplate.getFileName() - .equals(reportTemplateUploadRequest.getFileName()) && !reportTemplate.isMultiFileReport() && !reportTemplateUploadRequest - .isMultiFileReport()) { + .equals(reportTemplateUploadRequest.getFileName()) && reportTemplate.isMultiFileReport() && reportTemplateUploadRequest.isMultiFileReport() || reportTemplate.getFileName() + .equals(reportTemplateUploadRequest.getFileName()) && !reportTemplate.isMultiFileReport() && !reportTemplateUploadRequest.isMultiFileReport()) { templateId = reportTemplate.getTemplateId(); } } - String storageId = StorageIdUtils.getReportStorageId(reportTemplateUploadRequest.getDossierTemplateId(), reportTemplateUploadRequest - .getFileName()); + String storageId = StorageIdUtils.getReportStorageId(reportTemplateUploadRequest.getDossierTemplateId(), reportTemplateUploadRequest.getFileName()); storageService.storeObject(storageId, new ByteArrayInputStream(reportTemplateUploadRequest.getTemplate())); if (templateId != null) { - reportTemplatePersistenceService.updateTemplate(reportTemplateUploadRequest.getDossierTemplateId(), templateId, ReportTemplateUpdateRequest - .builder() + reportTemplatePersistenceService.updateTemplate(reportTemplateUploadRequest.getDossierTemplateId(), templateId, ReportTemplateUpdateRequest.builder() .fileName(reportTemplateUploadRequest.getFileName()) .multiFileReport(reportTemplateUploadRequest.isMultiFileReport()) .activeByDefault(reportTemplateUploadRequest.isActiveByDefault()) .build()); } else { templateId = UUID.randomUUID().toString(); - reportTemplatePersistenceService.insert(reportTemplateUploadRequest.getDossierTemplateId(), templateId, storageId, reportTemplateUploadRequest - .getFileName(), reportTemplateUploadRequest.isActiveByDefault(), reportTemplateUploadRequest.isMultiFileReport()); + reportTemplatePersistenceService.insert(reportTemplateUploadRequest.getDossierTemplateId(), templateId, storageId, reportTemplateUploadRequest.getFileName(), + reportTemplateUploadRequest.isActiveByDefault(), reportTemplateUploadRequest.isMultiFileReport()); } return convert(reportTemplatePersistenceService.find(templateId), ReportTemplate.class); } - public List getAvailableReportTemplates( - @PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId) { + public List getAvailableReportTemplates(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId) { return convert(reportTemplatePersistenceService.findByDossierTemplateId(dossierTemplateId), ReportTemplate.class); } - public ReportTemplate getReportTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, - @PathVariable(TEMPLATE_ID) String templateId) { + public ReportTemplate getReportTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(TEMPLATE_ID) String templateId) { return convert(reportTemplatePersistenceService.find(templateId), ReportTemplate.class); } - public ReportTemplateDownload downloadReportTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, - @PathVariable(TEMPLATE_ID) String templateId) { + public ReportTemplateDownload downloadReportTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(TEMPLATE_ID) String templateId) { String storageId = reportTemplatePersistenceService.find(templateId).getStorageId(); try { @@ -102,8 +89,7 @@ public class ReportTemplateController implements ReportTemplateResource { } - public void deleteTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, - @PathVariable(TEMPLATE_ID) String templateId) { + public void deleteTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(TEMPLATE_ID) String templateId) { String storageId = reportTemplatePersistenceService.find(templateId).getStorageId(); storageService.deleteObject(storageId); @@ -112,8 +98,7 @@ public class ReportTemplateController implements ReportTemplateResource { } - public void updateTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, - @PathVariable(TEMPLATE_ID) String templateId, + public void updateTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(TEMPLATE_ID) String templateId, @RequestBody ReportTemplateUpdateRequest reportTemplateUpdateRequest) { reportTemplatePersistenceService.updateTemplate(dossierTemplateId, templateId, reportTemplateUpdateRequest); diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/WatermarkController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/WatermarkController.java index 10077e376..848d578d8 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/WatermarkController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/WatermarkController.java @@ -1,16 +1,20 @@ package com.iqser.red.service.peristence.v1.server.controller; +import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; + +import java.util.List; + +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + import com.iqser.red.service.persistence.management.v1.processor.service.WatermarkService; import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.Watermark; import com.iqser.red.service.persistence.service.v1.api.resources.WatermarkResource; + import lombok.RequiredArgsConstructor; -import org.springframework.http.HttpStatus; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; @RestController @RequiredArgsConstructor @@ -20,24 +24,32 @@ public class WatermarkController implements WatermarkResource { public Watermark createOrUpdateWatermark(@RequestBody Watermark watermark) { + return convert(watermarkService.createOrUpdateWatermark(watermark), Watermark.class); } public Watermark getWatermark(@PathVariable(WATERMARK_ID_PARAMETER_NAME) long watermarkId) { + return convert(watermarkService.getWatermark(watermarkId), Watermark.class); } + @Override public List getWatermarksForDossierTemplateId(@RequestParam(value = DOSSIER_TEMPLATE_ID_PARAMETER_NAME) String dossierTemplateId) { + return convert(watermarkService.getWatermarksForDossierTemplateId(dossierTemplateId), Watermark.class); } + public void deleteWatermark(@PathVariable(WATERMARK_ID_PARAMETER_NAME) long watermarkId) { + watermarkService.deleteWatermark(watermarkId); } + public JSONPrimitive isWatermarkUsed(@RequestParam(WATERMARK_ID_PARAMETER_NAME) long watermarkId) { + return JSONPrimitive.of(watermarkService.isWatermarkUsed(watermarkId)); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/EntityTypesMigration4.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/EntityTypesMigration4.java index 5f7668180..dc6ed78e0 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/EntityTypesMigration4.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/EntityTypesMigration4.java @@ -53,27 +53,15 @@ public class EntityTypesMigration4 extends Migration { if (type != null) { // Check if type is systemManaged - if (type.getType() != null && systemManagedTypes.contains(type.getType())) { - type.setSystemManaged(true); - } else { - type.setSystemManaged(false); - } + type.setSystemManaged(type.getType() != null && systemManagedTypes.contains(type.getType())); // Check if type is autoHideSkipped - if (type.getType() != null && autoHideSkippedTypes.contains(type.getType())) { - type.setAutoHideSkipped(true); - } else { - type.setAutoHideSkipped(false); - } + type.setAutoHideSkipped(type.getType() != null && autoHideSkippedTypes.contains(type.getType())); // Check if type has dictionaries List entries = entryPersistenceService.getEntries(type.getId(), DictionaryEntryType.ENTRY, null); - if (entries != null && !entries.isEmpty()) { - type.setHasDictionary(true); - } else { - type.setHasDictionary(false); - } + type.setHasDictionary(entries != null && !entries.isEmpty()); } } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/model/reducetext/RedTextPosition.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/model/reducetext/RedTextPosition.java index 96ec20349..2432678e2 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/model/reducetext/RedTextPosition.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/model/reducetext/RedTextPosition.java @@ -62,14 +62,14 @@ public class RedTextPosition { @JsonAttribute() public float[] getPosition() { - var position = new float[4]; + var pos = new float[4]; - position[0] = XDirAdj; - position[1] = YDirAdj; - position[2] = widthDirAdj; - position[3] = heightDir; + pos[0] = XDirAdj; + pos[1] = YDirAdj; + pos[2] = widthDirAdj; + pos[3] = heightDir; - return position; + return pos; } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/multitenancy/persistence/MasterPersistenceConfig.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/multitenancy/persistence/MasterPersistenceConfig.java index 2ca07e6a4..294292c66 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/multitenancy/persistence/MasterPersistenceConfig.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/multitenancy/persistence/MasterPersistenceConfig.java @@ -38,7 +38,7 @@ public class MasterPersistenceConfig { private final ConfigurableListableBeanFactory beanFactory; private final JpaProperties jpaProperties; - private final String entityPackages = "com.iqser.red.service.persistence.management.v1.processor.multitenancy.entity"; + private static final String entityPackages = "com.iqser.red.service.persistence.management.v1.processor.multitenancy.entity"; @Bean diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/multitenancy/persistence/TenantPersistenceConfig.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/multitenancy/persistence/TenantPersistenceConfig.java index 7c53cfabf..90565d880 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/multitenancy/persistence/TenantPersistenceConfig.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/multitenancy/persistence/TenantPersistenceConfig.java @@ -39,7 +39,7 @@ public class TenantPersistenceConfig { private final ConfigurableListableBeanFactory beanFactory; private final JpaProperties jpaProperties; - private final String entityPackages = "com.iqser.red.service.persistence.management.v1.processor.entity"; + private static final String entityPackages = "com.iqser.red.service.persistence.management.v1.processor.entity"; @Primary diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/DossierStatsService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/DossierStatsService.java index e4c0598c9..0e93b4cac 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/DossierStatsService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/DossierStatsService.java @@ -1,18 +1,20 @@ package com.iqser.red.service.peristence.v1.server.service; -import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierEntity; -import com.iqser.red.service.persistence.management.v1.processor.exception.DossierNotFoundException; -import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierStats; -import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileModel; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; +import static com.iqser.red.service.persistence.management.v1.processor.exception.DossierNotFoundException.DOSSIER_NOT_FOUND_MESSAGE; import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; -import static com.iqser.red.service.persistence.management.v1.processor.exception.DossierNotFoundException.DOSSIER_NOT_FOUND_MESSAGE; +import org.springframework.stereotype.Service; + +import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierEntity; +import com.iqser.red.service.persistence.management.v1.processor.exception.DossierNotFoundException; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierStats; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileModel; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; @Slf4j @Service @@ -24,7 +26,6 @@ public class DossierStatsService { // private Map dossierStatsMap = new HashMap<>(); - // @Scheduled(fixedDelay = 10000, initialDelay = 1000) // public void computeDossierStats() { // log.info("Computing Dossier Stats ... "); @@ -38,6 +39,7 @@ public class DossierStatsService { // log.info("Dossier Stats Computed in {}ms", System.currentTimeMillis() - start); // } + public DossierStats getDossierStats(String dossierId) { // var stats = dossierStatsMap.get(dossierId); // if (stats == null) { @@ -47,7 +49,9 @@ public class DossierStatsService { return computeDossierStats(dossierService.getDossierById(dossierId)); } + private DossierStats computeDossierStats(DossierEntity dossierEntity) { + var dossierId = dossierEntity.getId(); DossierStats dossierStats = new DossierStats(); @@ -63,36 +67,32 @@ public class DossierStatsService { dossierStats.setNumberOfSoftDeletedFiles(fileStatusService.countSoftDeletedFiles(dossierId)); dossierStats.setNumberOfPages(files.stream().mapToInt(FileModel::getNumberOfPages).sum()); dossierStats.setNumberOfExcludedPages(files.stream().mapToInt(f -> f.getExcludedPages().size()).sum()); - files.stream().filter(FileModel::isHasRedactions).findAny().ifPresent( - (v) -> dossierStats.setHasRedactionsFilePresent(true) - ); - files.stream().filter(FileModel::isHasHints).filter(f -> !f.isHasRedactions()).findAny().ifPresent( - (v) -> dossierStats.setHasHintsNoRedactionsFilePresent(true) - ); - files.stream().filter(FileModel::isHasSuggestions).findAny().ifPresent( - (v) -> dossierStats.setHasSuggestionsFilePresent(true) - ); - files.stream().filter(FileModel::isHasUpdates).findAny().ifPresent( - (v) -> dossierStats.setHasUpdatesFilePresent(true) - ); - files.stream().filter(f -> !f.isHasRedactions()) + files.stream().filter(FileModel::isHasRedactions).findAny().ifPresent(v -> dossierStats.setHasRedactionsFilePresent(true)); + files.stream().filter(FileModel::isHasHints).filter(f -> !f.isHasRedactions()).findAny().ifPresent(v -> dossierStats.setHasHintsNoRedactionsFilePresent(true)); + files.stream().filter(FileModel::isHasSuggestions).findAny().ifPresent(v -> dossierStats.setHasSuggestionsFilePresent(true)); + files.stream().filter(FileModel::isHasUpdates).findAny().ifPresent(v -> dossierStats.setHasUpdatesFilePresent(true)); + files.stream() + .filter(f -> !f.isHasRedactions()) .filter(f -> !f.isHasHints()) .filter(f -> !f.isHasSuggestions()) .filter(f -> !f.isHasUpdates()) - .findAny().ifPresent( - (v) -> dossierStats.setHasNoFlagsFilePresent(true) - ); + .findAny() + .ifPresent(v -> dossierStats.setHasNoFlagsFilePresent(true)); var fileCountPerProcessingStatus = files.stream().collect(Collectors.toMap(FileModel::getProcessingStatus, e -> 1, Math::addExact)); dossierStats.setFileCountPerProcessingStatus(fileCountPerProcessingStatus); var fileCountPerWorkflowStatus = files.stream().collect(Collectors.toMap(FileModel::getWorkflowStatus, e -> 1, Math::addExact)); dossierStats.setFileCountPerWorkflowStatus(fileCountPerWorkflowStatus); - - files.stream().sorted(Comparator.comparing(FileModel::getLastUpdated, Comparator.nullsLast(Comparator.reverseOrder()))) - .findFirst().ifPresent((file) -> dossierStats.setLastFileUpdateDate(file.getLastUpdated())); - files.stream().sorted(Comparator.comparing(FileModel::getFileManipulationDate, Comparator.nullsLast(Comparator.reverseOrder()))) - .findFirst().ifPresent((file) -> dossierStats.setFileManipulationDate(file.getFileManipulationDate())); + files.stream() + .sorted(Comparator.comparing(FileModel::getLastUpdated, Comparator.nullsLast(Comparator.reverseOrder()))) + .findFirst() + .ifPresent(file -> dossierStats.setLastFileUpdateDate(file.getLastUpdated())); + files.stream() + .sorted(Comparator.comparing(FileModel::getFileManipulationDate, Comparator.nullsLast(Comparator.reverseOrder()))) + .findFirst() + .ifPresent(file -> dossierStats.setFileManipulationDate(file.getFileManipulationDate())); return dossierStats; } + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileService.java index 38dffcf48..9c88b19be 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileService.java @@ -95,51 +95,39 @@ public class FileService { forceRedactionPersistenceService.findForceRedactions(fileId, false).forEach(annotation -> { forceRedactionPersistenceService.softDelete(fileId, annotation.getId().getAnnotationId(), softDeletedTime); commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), false) - .forEach(comment -> { - commentPersistenceService.softDelete(comment.getId(), softDeletedTime); - }); + .forEach(comment -> commentPersistenceService.softDelete(comment.getId(), softDeletedTime)); }); removeRedactionPersistenceService.findRemoveRedactions(fileId, false).forEach(annotation -> { removeRedactionPersistenceService.softDelete(fileId, annotation.getId().getAnnotationId(), softDeletedTime); commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), false) - .forEach(comment -> { - commentPersistenceService.softDelete(comment.getId(), softDeletedTime); - }); + .forEach(comment -> commentPersistenceService.softDelete(comment.getId(), softDeletedTime)); }); addRedactionPersistenceService.findAddRedactions(fileId, false).forEach(annotation -> { addRedactionPersistenceService.softDelete(fileId, annotation.getId().getAnnotationId(), softDeletedTime); commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), false) - .forEach(comment -> { - commentPersistenceService.softDelete(comment.getId(), softDeletedTime); - }); + .forEach(comment -> commentPersistenceService.softDelete(comment.getId(), softDeletedTime)); }); recategorizationPersistenceService.findRecategorizations(fileId, false).forEach(recatigorization -> { recategorizationPersistenceService.softDelete(fileId, recatigorization.getId() .getAnnotationId(), softDeletedTime); commentPersistenceService.findCommentsByAnnotationId(fileId, recatigorization.getId() - .getAnnotationId(), false).forEach(comment -> { - commentPersistenceService.softDelete(comment.getId(), softDeletedTime); - }); + .getAnnotationId(), false).forEach(comment -> commentPersistenceService.softDelete(comment.getId(), softDeletedTime)); }); resizeRedactionPersistenceService.findResizeRedactions(fileId, false).forEach(annotation -> { resizeRedactionPersistenceService.softDelete(fileId, annotation.getId().getAnnotationId(), softDeletedTime); commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), false) - .forEach(comment -> { - commentPersistenceService.softDelete(comment.getId(), softDeletedTime); - }); + .forEach(comment -> commentPersistenceService.softDelete(comment.getId(), softDeletedTime)); }); legalBasisChangePersistenceService.findLegalBasisChanges(fileId, false).forEach(legalBasisChange -> { legalBasisChangePersistenceService.softDelete(fileId, legalBasisChange.getId() .getAnnotationId(), softDeletedTime); commentPersistenceService.findCommentsByAnnotationId(fileId, legalBasisChange.getId() - .getAnnotationId(), false).forEach(comment -> { - commentPersistenceService.softDelete(comment.getId(), softDeletedTime); - }); + .getAnnotationId(), false).forEach(comment -> commentPersistenceService.softDelete(comment.getId(), softDeletedTime)); }); viewedPagesPersistenceService.deleteForFile(fileId); @@ -160,41 +148,31 @@ public class FileService { forceRedactionPersistenceService.findForceRedactions(fileId, true).forEach(annotation -> { forceRedactionPersistenceService.hardDelete(fileId, annotation.getId().getAnnotationId()); commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), true) - .forEach(comment -> { - commentPersistenceService.hardDelete(comment.getId()); - }); + .forEach(comment -> commentPersistenceService.hardDelete(comment.getId())); }); removeRedactionPersistenceService.findRemoveRedactions(fileId, true).forEach(annotation -> { removeRedactionPersistenceService.hardDelete(fileId, annotation.getId().getAnnotationId()); commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), true) - .forEach(comment -> { - commentPersistenceService.hardDelete(comment.getId()); - }); + .forEach(comment -> commentPersistenceService.hardDelete(comment.getId())); }); addRedactionPersistenceService.findAddRedactions(fileId, true).forEach(annotation -> { addRedactionPersistenceService.hardDelete(fileId, annotation.getId().getAnnotationId()); commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), true) - .forEach(comment -> { - commentPersistenceService.hardDelete(comment.getId()); - }); + .forEach(comment -> commentPersistenceService.hardDelete(comment.getId())); }); recategorizationPersistenceService.findRecategorizations(fileId, true).forEach(recatigorization -> { recategorizationPersistenceService.hardDelete(fileId, recatigorization.getId().getAnnotationId()); commentPersistenceService.findCommentsByAnnotationId(fileId, recatigorization.getId() - .getAnnotationId(), true).forEach(comment -> { - commentPersistenceService.hardDelete(comment.getId()); - }); + .getAnnotationId(), true).forEach(comment -> commentPersistenceService.hardDelete(comment.getId())); }); resizeRedactionPersistenceService.findResizeRedactions(fileId, true).forEach(annotation -> { resizeRedactionPersistenceService.hardDelete(fileId, annotation.getId().getAnnotationId()); commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), true) - .forEach(comment -> { - commentPersistenceService.hardDelete(comment.getId()); - }); + .forEach(comment -> commentPersistenceService.hardDelete(comment.getId())); }); indexingService.addToDeleteFromIndexQueue(dossierId, fileId, 2); diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/IndexingService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/IndexingService.java index 6dd9b3b88..5e19cbab9 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/IndexingService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/IndexingService.java @@ -15,7 +15,6 @@ import com.iqser.red.service.peristence.v1.server.configuration.MessagingConfigu import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileStatusPersistenceService; -import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.ProcessingStatus; import com.iqser.red.service.search.v1.model.IndexMessage; import com.iqser.red.service.search.v1.model.IndexMessageType; @@ -70,12 +69,8 @@ public class IndexingService { public void addToIndexingQueue(IndexMessageType indexMessageType, String dossierTemplateId, String dossierId, String fileId, int priority) { try { - rabbitTemplate.convertAndSend(MessagingConfiguration.INDEXING_QUEUE, objectMapper.writeValueAsString(IndexMessage.builder() - .messageType(indexMessageType) - .dossierTemplateId(dossierTemplateId) - .dossierId(dossierId) - .fileId(fileId) - .build()), message -> { + rabbitTemplate.convertAndSend(MessagingConfiguration.INDEXING_QUEUE, objectMapper.writeValueAsString( + IndexMessage.builder().messageType(indexMessageType).dossierTemplateId(dossierTemplateId).dossierId(dossierId).fileId(fileId).build()), message -> { message.getMessageProperties().setPriority(priority); return message; }); @@ -88,13 +83,11 @@ public class IndexingService { public void addToDeleteFromIndexQueue(String dossierId, String fileId, int priority) { try { - rabbitTemplate.convertAndSend(MessagingConfiguration.DELETE_FROM_INDEX_QUEUE, objectMapper.writeValueAsString(IndexMessage.builder() - .dossierId(dossierId) - .fileId(fileId) - .build()), message -> { - message.getMessageProperties().setPriority(priority); - return message; - }); + rabbitTemplate.convertAndSend(MessagingConfiguration.DELETE_FROM_INDEX_QUEUE, + objectMapper.writeValueAsString(IndexMessage.builder().dossierId(dossierId).fileId(fileId).build()), message -> { + message.getMessageProperties().setPriority(priority); + return message; + }); } catch (JsonProcessingException e) { throw new RuntimeException(e); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ManualRedactionProviderService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ManualRedactionProviderService.java index 1e3774f62..ac8d9d51e 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ManualRedactionProviderService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ManualRedactionProviderService.java @@ -61,18 +61,18 @@ public class ManualRedactionProviderService { Set forceRedactions = convert(forceRedactionPersistenceService.findForceRedactions(fileId, false), ManualForceRedaction.class); - Set recategorizations = new HashSet<>(convert(recategorizationPersistenceService.findRecategorizations(fileId, false), ManualImageRecategorization.class, new ManualImageRecategorizationMapper())); + Set recategorizations = new HashSet<>( + convert(recategorizationPersistenceService.findRecategorizations(fileId, false), ManualImageRecategorization.class, new ManualImageRecategorizationMapper())); Set legalBasisChanges = convert(legalBasisChangePersistenceService.findLegalBasisChanges(fileId, false), ManualLegalBasisChange.class); - Set resizeRedactions = new HashSet<>(convert(resizeRedactionPersistenceService.findResizeRedactions(fileId, false), ManualResizeRedaction.class, new ManualResizeRedactionMapper())); + Set resizeRedactions = new HashSet<>( + convert(resizeRedactionPersistenceService.findResizeRedactions(fileId, false), ManualResizeRedaction.class, new ManualResizeRedactionMapper())); Map> commentEntities = commentPersistenceService.findCommentsByFileID(fileId, false); Map> comments = new HashMap<>(); - commentEntities.forEach((s, c) -> { - comments.put(s, convert(c, Comment.class)); - }); + commentEntities.forEach((s, c) -> comments.put(s, convert(c, Comment.class))); return new ManualRedactions(removals, entriesToAdd, forceRedactions, recategorizations, legalBasisChanges, resizeRedactions, comments); } 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 0ea2b9a0e..63c6ddc90 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 @@ -172,7 +172,7 @@ public class ManualRedactionService { .stream() .filter(p -> p.getPage() > numberOfPages) .findAny() - .ifPresent((p) -> new BadRequestException("Invalid page found in the request")); + .ifPresent(p -> new BadRequestException("Invalid page found in the request")); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/utils/StorageIdUtils.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/utils/StorageIdUtils.java index ff55bb9f4..0cc7ec3b6 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/utils/StorageIdUtils.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/utils/StorageIdUtils.java @@ -3,7 +3,9 @@ package com.iqser.red.service.peristence.v1.server.utils; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileType; -public class StorageIdUtils { +public final class StorageIdUtils { + + private StorageIdUtils() {} public static String getStorageId(String dossierId, String fileId, FileType fileType) { return dossierId + "/" + fileId + "." + fileType.name() + fileType.getExtension();