From 32411a668ffa1f88b8bf01fc6ad25a6639606233 Mon Sep 17 00:00:00 2001 From: Andrei Isvoran Date: Thu, 16 May 2024 16:03:30 +0300 Subject: [PATCH] RED-6853 - Update dictionary entries --- .../impl/controller/DictionaryController.java | 4 +-- .../external/resource/DictionaryResource.java | 2 +- .../processor/service/DictionaryService.java | 4 +-- .../integration/tests/DictionaryTest.java | 26 +++++++++++++++++++ 4 files changed, 31 insertions(+), 5 deletions(-) diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DictionaryController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DictionaryController.java index 5afb9e2b2..d3978fbe9 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DictionaryController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DictionaryController.java @@ -129,9 +129,9 @@ public class DictionaryController implements DictionaryResource { .details(Map.of("Type", type, "Number of added entries", - updateEntries.entriesToAdd().size(), + updateEntries.entriesToAdd() == null ? 0 : updateEntries.entriesToAdd().size(), "Number of deleted entries", - updateEntries.entriesToDelete().size())) + updateEntries.entriesToDelete() == null ? 0 : updateEntries.entriesToDelete().size())) .build()); } diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DictionaryResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DictionaryResource.java index 4d72f5e18..29acf7654 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DictionaryResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DictionaryResource.java @@ -229,7 +229,7 @@ public interface DictionaryResource { @ResponseStatus(HttpStatus.ACCEPTED) @PostMapping(value = DICTIONARY_REST_PATH + DIFFERENCE + DOSSIER_TEMPLATE_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Returns the difference between the dictionaries of the dossier template and all the dossiers inside the template for a list of given types.", description = "None") - @ApiResponses(value = {@ApiResponse(responseCode = "202", description = "Successfully returned DictionaryDifferenceResponse."), @ApiResponse(responseCode = "400", description = "The request is not valid.")}) + @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "Successfully returned DictionaryDifferenceResponse."), @ApiResponse(responseCode = "400", description = "The request is not valid.")}) DictionaryDifferenceResponse getDictionaryDifference(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody Set types); } \ No newline at end of file diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DictionaryService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DictionaryService.java index f596613f9..0294ef525 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DictionaryService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DictionaryService.java @@ -132,7 +132,7 @@ public class DictionaryService { if (entriesToDelete != null && !entriesToDelete.isEmpty()) { deleteGlobalEntries(type, dossierTemplateId, entriesToDelete, dictionaryEntryType); } - if (entriesToAdd != null && !entriesToAdd.isEmpty()) { + if (entriesToAdd != null && !entriesToAdd.isEmpty() && !entriesToAdd.stream().allMatch(String::isEmpty)) { addGlobalEntries(type, dossierTemplateId, entriesToAdd, false, dictionaryEntryType); } } @@ -150,7 +150,7 @@ public class DictionaryService { if (entriesToDelete != null && !entriesToDelete.isEmpty()) { deleteDossierEntries(type, dossierTemplateId, entriesToDelete, dossierId, dictionaryEntryType); } - if (entriesToAdd != null && !entriesToAdd.isEmpty()) { + if (entriesToAdd != null && !entriesToAdd.isEmpty() && !entriesToAdd.stream().allMatch(String::isEmpty)) { addDossierEntries(type, dossierTemplateId, entriesToAdd, false, dossierId, dictionaryEntryType); } } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DictionaryTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DictionaryTest.java index 354c59727..fe3a917ca 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DictionaryTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DictionaryTest.java @@ -594,6 +594,32 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { } + @Test + public void testUpdateDossierEntriesWithEmptyFields() { + + var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate(); + var createdType = createDossierRedactionsDictionary(dossierTemplate.getId()); + + var entriesToAdd = new ArrayList(); + var entriesToDelete = new ArrayList(); + + UpdateEntries updateEntries = new UpdateEntries(null, entriesToDelete); + UpdateEntries finalUpdateEntries = updateEntries; + Assertions.assertDoesNotThrow(() -> dictionaryClient.updateEntries(createdType.getType(), + createdType.getDossierTemplateId(), + finalUpdateEntries, + null, + DictionaryEntryType.ENTRY)); + + updateEntries = new UpdateEntries(entriesToAdd, null); + UpdateEntries finalUpdateEntries1 = updateEntries; + Assertions.assertDoesNotThrow(() -> dictionaryClient.updateEntries(createdType.getType(), + createdType.getDossierTemplateId(), + finalUpdateEntries1, + null, + DictionaryEntryType.ENTRY)); + } + @Test public void testDossierTemplateAndDossierMissmatched() { -- 2.47.2