From c985a474d60dbd1ba0517887fd0828f399619cf8 Mon Sep 17 00:00:00 2001 From: devplant Date: Mon, 22 Nov 2021 12:40:11 +0200 Subject: [PATCH] RED-2661 - Removing a dossier member or deleting a user must not change the status of a file - update after review --- .../AnalysisFlagsCalculationService.java | 4 ++-- .../v1/server/service/FileService.java | 2 +- .../v1/server/service/FileStatusService.java | 18 +++++++++--------- .../changelog/1-initial-schema.changelog.yaml | 5 ++++- 4 files changed, 16 insertions(+), 13 deletions(-) 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 e78fcecd3..6c9cb8491 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,9 +33,9 @@ public class AnalysisFlagsCalculationService { var file = fileStatusPersistenceService.getStatus(fileId); var redactionLog = redactionLogService.getRedactionLog(dossierId, fileId, true); - var viewedPagesForCurrentReviewer = viewedPagesPersistenceService.findViewedPages(fileId, file.getAssignee()); + var viewedPagesForCurrentAssignee = viewedPagesPersistenceService.findViewedPages(fileId, file.getAssignee()); - Map viewedPages = viewedPagesForCurrentReviewer.stream().collect(Collectors.toMap(ViewedPageEntity::getPage, ViewedPageEntity::getViewedTime)); + Map viewedPages = viewedPagesForCurrentAssignee.stream().collect(Collectors.toMap(ViewedPageEntity::getPage, ViewedPageEntity::getViewedTime)); boolean hasRedactions = false; boolean hasHints = false; 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 9c2a41493..fbe45313d 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 @@ -62,7 +62,7 @@ public class FileService { if (existingStatus.getAssignee() != null && !request.getUploader() .equalsIgnoreCase(existingStatus.getAssignee())) { - throw new ConflictException("Only the reviewer can overwrite a file"); + throw new ConflictException("Only the current assignee can overwrite a file"); } } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileStatusService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileStatusService.java index e3f44f419..760a82341 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileStatusService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileStatusService.java @@ -194,24 +194,24 @@ public class FileStatusService { } - public void setAssignee(String dossierId, String fileId, String currentReviewer) { + public void setAssignee(String dossierId, String fileId, String assignee) { - if (StringUtils.isNotEmpty(currentReviewer) && !dossierPersistenceService.getAndValidateDossier(dossierId) + if (StringUtils.isNotEmpty(assignee) && !dossierPersistenceService.getAndValidateDossier(dossierId) .getMemberIds() - .contains(currentReviewer)) { - throw new UserNotFoundException("User=" + currentReviewer + " must be member or owner of dossier=" + dossierId); + .contains(assignee)) { + throw new UserNotFoundException("User=" + assignee + " must be member or owner of dossier=" + dossierId); } FileEntity fileStatus = fileStatusPersistenceService.getStatus(fileId); String lastReviewer = fileStatus.getLastReviewer(); String lastApprover = fileStatus.getLastApprover(); - if(StringUtils.isNotEmpty(currentReviewer) && WorkflowStatus.UNDER_REVIEW.equals(fileStatus.getWorkflowStatus())) { - lastReviewer = currentReviewer; + if(StringUtils.isNotEmpty(assignee) && WorkflowStatus.UNDER_REVIEW.equals(fileStatus.getWorkflowStatus())) { + lastReviewer = assignee; } - if(StringUtils.isNotEmpty(currentReviewer) && WorkflowStatus.UNDER_APPROVAL.equals(fileStatus.getWorkflowStatus())) { - lastApprover = currentReviewer; + if(StringUtils.isNotEmpty(assignee) && WorkflowStatus.UNDER_APPROVAL.equals(fileStatus.getWorkflowStatus())) { + lastApprover = assignee; } - fileStatusPersistenceService.setAssignee(fileId, currentReviewer, lastReviewer, lastApprover); + fileStatusPersistenceService.setAssignee(fileId, assignee, lastReviewer, lastApprover); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/resources/db/changelog/1-initial-schema.changelog.yaml b/persistence-service-v1/persistence-service-server-v1/src/main/resources/db/changelog/1-initial-schema.changelog.yaml index 4672228ec..e7b7193f8 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/resources/db/changelog/1-initial-schema.changelog.yaml +++ b/persistence-service-v1/persistence-service-server-v1/src/main/resources/db/changelog/1-initial-schema.changelog.yaml @@ -60,7 +60,7 @@ databaseChangeLog: name: approval_date type: TIMESTAMP WITHOUT TIME ZONE - column: - name: current_reviewer + name: assignee type: VARCHAR(255) - column: name: deleted @@ -119,6 +119,9 @@ databaseChangeLog: - column: name: last_reviewer type: VARCHAR(255) + - column: + name: last_approver + type: VARCHAR(255) - column: name: last_updated type: TIMESTAMP WITHOUT TIME ZONE