From 6768f3f81cf28c0d976fe8166460dd539c38173d Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Mon, 11 Oct 2021 16:01:50 +0300 Subject: [PATCH 1/3] allow set null for reviewer/approver --- .../service/v1/api/resources/StatusResource.java | 3 ++- .../annotations/ManualRedactionEntryEntity.java | 2 +- .../persistence/FileStatusPersistenceService.java | 2 +- .../server/controller/FileStatusController.java | 15 ++++++--------- 4 files changed, 10 insertions(+), 12 deletions(-) diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/StatusResource.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/StatusResource.java index fda563f8f..8bf954af6 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/StatusResource.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/StatusResource.java @@ -22,6 +22,7 @@ public interface StatusResource { String EXCLUDED_STATUS_PARAM = "excluded"; String APPROVER_ID_REQUEST_PARAM = "approverId"; + String REVIEWER_ID_REQUEST_PARAM = "reviewerId"; @ResponseBody @ResponseStatus(value = HttpStatus.OK) @@ -47,7 +48,7 @@ public interface StatusResource { @PostMapping(value = STATUS_PATH + "/reviewer" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE) void setCurrentFileReviewer(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestBody JSONPrimitive currentReviewer); + @RequestParam(value = APPROVER_ID_REQUEST_PARAM, required =false) String reviewerId); @PostMapping(value = STATUS_PATH + "/underreview" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/ManualRedactionEntryEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/ManualRedactionEntryEntity.java index 69e0ff618..2410c6cc7 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/ManualRedactionEntryEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/ManualRedactionEntryEntity.java @@ -24,7 +24,7 @@ public class ManualRedactionEntryEntity { private AnnotationEntityId id; @Column(name = "user_id") private String user; - @Column + @Column(length = 4000) private String typeId; @Column private String value; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileStatusPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileStatusPersistenceService.java index 4c3785bf4..4889ea3b6 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileStatusPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileStatusPersistenceService.java @@ -276,7 +276,7 @@ public class FileStatusPersistenceService { fileRepository.findById(fileId).ifPresentOrElse((file) -> { file.setCurrentReviewer(currentReviewer); file.setLastReviewer(lastReviewer); - file.setStatus(FileStatus.UNDER_REVIEW); + file.setStatus(currentReviewer == null ? FileStatus.UNASSIGNED :FileStatus.UNDER_REVIEW); }, () -> { throw new NotFoundException("Unknown file=" + fileId); }); 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 8f9b6364d..30a6519cc 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 @@ -3,7 +3,6 @@ package com.iqser.red.service.peristence.v1.server.controller; import com.iqser.red.service.peristence.v1.server.service.*; import com.iqser.red.service.peristence.v1.server.utils.FileModelMapper; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity; -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.FileStatus; import com.iqser.red.service.persistence.service.v1.api.resources.StatusResource; @@ -70,10 +69,10 @@ public class FileStatusController implements StatusResource { @Override public void setCurrentFileReviewer(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestBody JSONPrimitive currentFileReviewerRequest) { + @RequestParam(value = REVIEWER_ID_REQUEST_PARAM, required = false) String reviewerId) { - fileStatusService.setCurrentReviewer(dossierId, fileId, currentFileReviewerRequest.getValue()); - fileStatusService.setStatusSuccessful(fileId, FileStatus.UNDER_REVIEW); + fileStatusService.setCurrentReviewer(dossierId, fileId, reviewerId); + fileStatusService.setStatusSuccessful(fileId, reviewerId != null ? FileStatus.UNDER_REVIEW : FileStatus.UNASSIGNED); analysisFlagsCalculationService.calculateFlags(dossierId, fileId); } @@ -85,7 +84,7 @@ public class FileStatusController implements StatusResource { FileEntity fileStatus = fileStatusService.getStatus(fileId); String lastReviewer = fileStatus.getLastReviewer(); fileStatusService.setCurrentReviewer(dossierId, fileId, lastReviewer); - fileStatusService.setStatusSuccessful(fileId, FileStatus.UNDER_REVIEW); + fileStatusService.setStatusSuccessful(fileId, lastReviewer != null ? FileStatus.UNDER_REVIEW : FileStatus.UNASSIGNED); analysisFlagsCalculationService.calculateFlags(dossierId, fileId); } @@ -97,10 +96,8 @@ public class FileStatusController implements StatusResource { var dossier = dossierService.getDossierById(dossierId); - String dossierOwner = dossier.getOwnerId(); - - fileStatusService.setCurrentReviewer(dossierId, fileId, approverId != null ? approverId : dossierOwner); - fileStatusService.setStatusSuccessful(fileId, FileStatus.UNDER_APPROVAL); + fileStatusService.setCurrentReviewer(dossierId, fileId, approverId); + fileStatusService.setStatusSuccessful(fileId, approverId != null ? FileStatus.UNDER_APPROVAL : FileStatus.UNASSIGNED); analysisFlagsCalculationService.calculateFlags(dossierId, fileId); } From 5000127952a35e71c2b78f794e8d12c196d01ab0 Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Mon, 11 Oct 2021 16:01:52 +0300 Subject: [PATCH 2/3] allow set null for reviewer/approver --- .../peristence/v1/server/controller/FileStatusController.java | 3 --- 1 file changed, 3 deletions(-) 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 30a6519cc..25445f2d5 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 @@ -93,9 +93,6 @@ public class FileStatusController implements StatusResource { @PathVariable(FILE_ID) String fileId, @RequestParam(value = APPROVER_ID_REQUEST_PARAM, required = false) String approverId) { - - var dossier = dossierService.getDossierById(dossierId); - fileStatusService.setCurrentReviewer(dossierId, fileId, approverId); fileStatusService.setStatusSuccessful(fileId, approverId != null ? FileStatus.UNDER_APPROVAL : FileStatus.UNASSIGNED); analysisFlagsCalculationService.calculateFlags(dossierId, fileId); From 62cbda7214c7dee1233c683ae906ad989c20f833 Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Mon, 11 Oct 2021 17:02:37 +0300 Subject: [PATCH 3/3] legal basis api reviewer to null --- .../legalbasis/LegalBasis.java | 1 - .../resources/LegalBasisMappingResource.java | 8 ++- .../v1/api/resources/StatusResource.java | 2 +- .../configuration/LegalBasisEntity.java | 11 ++--- .../LegalBasisMappingEntity.java | 2 +- .../LegalBasisMappingPersistenceService.java | 49 +++++++++++++++++-- .../LegalBasisMappingController.java | 9 ++++ .../controller/ViewedPagesController.java | 8 +++ .../v1/server/integration/tests/FileTest.java | 4 +- .../integration/tests/LegalBasisTest.java | 26 +++++++++- 10 files changed, 101 insertions(+), 19 deletions(-) diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/legalbasis/LegalBasis.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/legalbasis/LegalBasis.java index 0b921ea80..81e8f256f 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/legalbasis/LegalBasis.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/legalbasis/LegalBasis.java @@ -11,7 +11,6 @@ import lombok.NoArgsConstructor; @Builder public class LegalBasis { - private long id; private String name; private String description; private String reason; diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/LegalBasisMappingResource.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/LegalBasisMappingResource.java index 7b7811efa..2bd36c7f4 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/LegalBasisMappingResource.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/LegalBasisMappingResource.java @@ -10,16 +10,22 @@ import java.util.List; public interface LegalBasisMappingResource { String LEGAL_BASIS_PATH = "/legalBasis"; + String DELETE_PATH = "/delete"; String VERSION_PATH = "/version"; String DOSSIER_TEMPLATE_PARAMETER_NAME = "dossierTemplateId"; String DOSSIER_TEMPLATE_PATH_VARIABLE = "/{" + DOSSIER_TEMPLATE_PARAMETER_NAME + "}"; + @PostMapping(value = LEGAL_BASIS_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE + DELETE_PATH, consumes = MediaType.APPLICATION_JSON_VALUE) + void deleteLegalBasis(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody List legalBasisNames); + + @PutMapping(value = LEGAL_BASIS_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE) + void addOrUpdateLegalBasis(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody LegalBasis legalBasis); + @ResponseStatus(HttpStatus.NO_CONTENT) @PostMapping(value = LEGAL_BASIS_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE) void setLegalBasisMapping(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody List legalBasisMapping); - @ResponseBody @ResponseStatus(value = HttpStatus.OK) @GetMapping(value = LEGAL_BASIS_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE) diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/StatusResource.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/StatusResource.java index 8bf954af6..d2499bd12 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/StatusResource.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/StatusResource.java @@ -48,7 +48,7 @@ public interface StatusResource { @PostMapping(value = STATUS_PATH + "/reviewer" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE) void setCurrentFileReviewer(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestParam(value = APPROVER_ID_REQUEST_PARAM, required =false) String reviewerId); + @RequestParam(value = REVIEWER_ID_REQUEST_PARAM, required =false) String reviewerId); @PostMapping(value = STATUS_PATH + "/underreview" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/LegalBasisEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/LegalBasisEntity.java index 8b43ab5d3..f3e20f09b 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/LegalBasisEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/LegalBasisEntity.java @@ -8,17 +8,12 @@ import lombok.NoArgsConstructor; import javax.persistence.*; @Data -@NoArgsConstructor -@Entity -@AllArgsConstructor @Builder -@Table(name = "legal_basis") +@Embeddable +@AllArgsConstructor +@NoArgsConstructor public class LegalBasisEntity { - @Id - @GeneratedValue - private long id; - @Column private String name; @Column(columnDefinition = "text") private String description; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/LegalBasisMappingEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/LegalBasisMappingEntity.java index 3e3ae43b5..0cd6cfaa9 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/LegalBasisMappingEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/LegalBasisMappingEntity.java @@ -18,7 +18,7 @@ public class LegalBasisMappingEntity { @Column private long version; - @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY) + @ElementCollection private List legalBasis = new ArrayList<>(); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/LegalBasisMappingPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/LegalBasisMappingPersistenceService.java index d36d230a1..6f9021646 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/LegalBasisMappingPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/LegalBasisMappingPersistenceService.java @@ -2,14 +2,15 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persis import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.LegalBasisEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.LegalBasisMappingEntity; -import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.LegalBasisMappingRepository; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.legalbasis.LegalBasis; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import javax.transaction.Transactional; +import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; @@ -22,6 +23,36 @@ public class LegalBasisMappingPersistenceService { private final LegalBasisMappingRepository legalBasisMappingRepository; + @Transactional + public void deleteLegalBasis(String dossierTemplateId, List legalBasisNames) { + var mapping = getLegalBasisMappingOrCreate(dossierTemplateId); + var filteredLegalBasis = mapping.getLegalBasis().stream().filter(l -> !legalBasisNames.contains(l.getName())).collect(Collectors.toList()); + + mapping.setLegalBasis(filteredLegalBasis); + mapping.setVersion(mapping.getVersion() + 1); + legalBasisMappingRepository.save(mapping); + + } + + @Transactional + public void addOrUpdateLegalBasis(String dossierTemplateId, LegalBasis legalBasis) { + var mapping = getLegalBasisMappingOrCreate(dossierTemplateId); + + mapping.getLegalBasis().stream().filter(l -> l.getName().equals(legalBasis.getName())).findAny().ifPresentOrElse(existingBasis -> { + existingBasis.setReason(legalBasis.getReason()); + existingBasis.setDescription(legalBasis.getDescription()); + }, () -> mapping.getLegalBasis().add(LegalBasisEntity.builder() + .name(legalBasis.getName()) + .description(legalBasis.getDescription()) + .reason(legalBasis.getReason()).build())); + + + mapping.setVersion(mapping.getVersion() + 1); + legalBasisMappingRepository.save(mapping); + + } + + @Transactional public void setLegalBasisMapping(String dossierTemplateId, List legalBasisMapping) { @@ -40,9 +71,21 @@ public class LegalBasisMappingPersistenceService { } + @Transactional public List getLegalBasisMapping(String dossierTemplateId) { - return legalBasisMappingRepository.findById(dossierTemplateId).map(LegalBasisMappingEntity::getLegalBasis) - .orElseThrow(() -> new NotFoundException("Legal Basis Not configured!")); + return getLegalBasisMappingOrCreate(dossierTemplateId).getLegalBasis(); + } + + private LegalBasisMappingEntity getLegalBasisMappingOrCreate(String dossierTemplateId) { + return legalBasisMappingRepository.findById(dossierTemplateId).orElseGet(() -> { + // create on get if not present + var lbm = new LegalBasisMappingEntity(); + lbm.setDossierTemplateId(dossierTemplateId); + lbm.setLegalBasis(new ArrayList<>()); + lbm.setVersion(1); + return legalBasisMappingRepository.save(lbm); + + }); } public long getVersion(String dossierTemplateId) { diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/LegalBasisMappingController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/LegalBasisMappingController.java index af9d22726..9f68be805 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/LegalBasisMappingController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/LegalBasisMappingController.java @@ -21,6 +21,15 @@ public class LegalBasisMappingController implements LegalBasisMappingResource { private final LegalBasisMappingPersistenceService legalBasisMappingPersistenceService; + @Override + public void deleteLegalBasis(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody List legalBasisNames) { + legalBasisMappingPersistenceService.deleteLegalBasis(dossierTemplateId, legalBasisNames); + } + + @Override + public void addOrUpdateLegalBasis(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody LegalBasis legalBasis) { + legalBasisMappingPersistenceService.addOrUpdateLegalBasis(dossierTemplateId, legalBasis); + } @Override @Transactional diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/ViewedPagesController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/ViewedPagesController.java index 26b093809..71c017758 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/ViewedPagesController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/ViewedPagesController.java @@ -1,5 +1,7 @@ package com.iqser.red.service.peristence.v1.server.controller; +import com.iqser.red.service.peristence.v1.server.service.AnalysisFlagsCalculationService; +import com.iqser.red.service.peristence.v1.server.service.FileStatusService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.ViewedPagesPersistenceService; import com.iqser.red.service.persistence.service.v1.api.model.annotations.ViewedPage; import com.iqser.red.service.persistence.service.v1.api.resources.ViewedPagesResource; @@ -17,12 +19,16 @@ import static com.iqser.red.service.persistence.management.v1.processor.utils.Ma public class ViewedPagesController implements ViewedPagesResource { private final ViewedPagesPersistenceService viewedPagesPersistenceService; + private final FileStatusService fileStatusService; + private final AnalysisFlagsCalculationService analysisFlagsCalculationService; public void addPage(@PathVariable(FILE_ID) String fileId, @PathVariable(ROLE) String role, @RequestBody Integer page) { viewedPagesPersistenceService.insertPage(fileId, role, page); + var file = fileStatusService.getStatus(fileId); + analysisFlagsCalculationService.calculateFlags(file.getDossierId(), fileId); } @@ -30,6 +36,8 @@ public class ViewedPagesController implements ViewedPagesResource { @RequestBody Integer page) { viewedPagesPersistenceService.removePage(fileId, role, page); + var file = fileStatusService.getStatus(fileId); + analysisFlagsCalculationService.calculateFlags(file.getDossierId(), fileId); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileTest.java index 40a102370..b8ea9a261 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileTest.java @@ -54,7 +54,7 @@ public class FileTest extends AbstractPersistenceServerServiceTest { var loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); - fileClient.setCurrentFileReviewer(dossier.getId(), file.getId(), JSONPrimitive.of("1")); + fileClient.setCurrentFileReviewer(dossier.getId(), file.getId(),"1"); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getCurrentReviewer()).isEqualTo("1"); assertThat(loadedFile.getStatus()).isEqualTo(FileStatus.UNDER_REVIEW); @@ -70,7 +70,7 @@ public class FileTest extends AbstractPersistenceServerServiceTest { assertThat(loadedFile.getExcludedPages()).isEmpty(); - fileClient.setCurrentFileReviewer(dossier.getId(), file.getId(), JSONPrimitive.of("1")); + fileClient.setCurrentFileReviewer(dossier.getId(), file.getId(), "1"); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getCurrentReviewer()).isEqualTo("1"); assertThat(loadedFile.getStatus()).isEqualTo(FileStatus.UNDER_REVIEW); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/LegalBasisTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/LegalBasisTest.java index bec322643..17bb9bf8d 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/LegalBasisTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/LegalBasisTest.java @@ -40,7 +40,7 @@ public class LegalBasisTest extends AbstractPersistenceServerServiceTest { mappings.add(LegalBasis.builder().name("test 1").description("test 1").reason("test 1").build()); mappings.add(LegalBasis.builder().name("test 2").description("test 2").reason("test 2").build()); legalBasisClient.setLegalBasisMapping(dossierTemplate.getId(), mappings); - assertThat(legalBasisClient.getVersion(dossierTemplate.getId())).isEqualTo(1); + assertThat(legalBasisClient.getVersion(dossierTemplate.getId())).isEqualTo(2); var mapping = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId()); @@ -48,9 +48,31 @@ public class LegalBasisTest extends AbstractPersistenceServerServiceTest { assertThat(mapping.stream().map(LegalBasis::getName).collect(Collectors.toList())).containsExactlyInAnyOrder("test 1", "test 2"); + var legalBasis = LegalBasis.builder().name("test 3").description("test 3").reason("test 3").build(); + legalBasisClient.addOrUpdateLegalBasis(dossierTemplate.getId(), legalBasis); + + + mapping = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId()); + assertThat(mapping.size()).isEqualTo(3); + assertThat(mapping.stream().map(LegalBasis::getName).collect(Collectors.toList())).containsExactlyInAnyOrder("test 1", "test 2", "test 3"); + + + legalBasis = LegalBasis.builder().name("test 3").reason("test 3").description("test 3 - updated").build(); + legalBasisClient.addOrUpdateLegalBasis(dossierTemplate.getId(), legalBasis); + + mapping = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId()); + assertThat(mapping.size()).isEqualTo(3); + assertThat(mapping.stream().map(LegalBasis::getDescription).collect(Collectors.toList())).containsExactlyInAnyOrder("test 1", "test 2", "test 3 - updated"); + + + legalBasisClient.deleteLegalBasis(dossierTemplate.getId(),Lists.newArrayList("test 1")); + mapping = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId()); + assertThat(mapping.size()).isEqualTo(2); + + legalBasisClient.setLegalBasisMapping(dossierTemplate.getId(), Lists.newArrayList()); assertThat(legalBasisClient.getLegalBasisMapping(dossierTemplate.getId())).isEmpty(); - assertThat(legalBasisClient.getVersion(dossierTemplate.getId())).isEqualTo(2); + assertThat(legalBasisClient.getVersion(dossierTemplate.getId())).isEqualTo(6); } }