From 980d370e4d11082af57e409c0c3325a15da6923b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominique=20Eifl=C3=A4nder?= Date: Tue, 28 Sep 2021 10:37:44 +0200 Subject: [PATCH] Fixed duplicate label validation --- .../v1/server/controller/DictionaryController.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DictionaryController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DictionaryController.java index f746f77d3..35a8c5d48 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DictionaryController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DictionaryController.java @@ -119,7 +119,7 @@ public class DictionaryController implements DictionaryResource { if (typeValueRequest.getLabel() != null) { - checkForDuplicateLabels(typeResult.getDossierTemplateId(), typeResult.getDossierId(), typeId, typeValueRequest.getLabel()); + checkForDuplicateLabels(typeResult.getDossierTemplateId(), typeResult.getDossierId(), typeValueRequest.getType(), typeValueRequest.getLabel()); } @@ -154,11 +154,12 @@ public class DictionaryController implements DictionaryResource { typeRequest.setLabel(label); } - checkForDuplicateLabels(typeRequest.getDossierTemplateId(), typeRequest.getDossierId(), typeRequest.getId(), typeRequest.getLabel()); + checkForDuplicateLabels(typeRequest.getDossierTemplateId(), typeRequest.getDossierId(), typeRequest.getType(), typeRequest.getLabel()); if (dictionaryPersistenceService.getCumulatedTypes(typeRequest.getDossierTemplateId(), typeRequest.getDossierId()) .stream() - .anyMatch(typeResult -> typeResult.getType().equals(typeRequest.getType()))) { + .anyMatch(typeResult -> typeRequest.getDossierId() != null && typeResult.getDossierId() != null && typeRequest.getDossierId().equals(typeResult.getDossierId()) && typeRequest.getType().equals(typeResult.getType()) && typeRequest.getDossierTemplateId().equals(typeResult.getDossierTemplateId()) + || typeRequest.getType().equals(typeResult.getType()) && typeRequest.getDossierTemplateId().equals(typeResult.getDossierTemplateId()))) { throw new ConflictException("The type already exists, could not be added again."); } String color = typeRequest.getHexColor(); @@ -276,11 +277,12 @@ public class DictionaryController implements DictionaryResource { } - private void checkForDuplicateLabels(String dossierTemplateId, String dossierId, String typeId, String labelToCheck) { + private void checkForDuplicateLabels(String dossierTemplateId, String dossierId, String type, String labelToCheck) { List typeResponse = dictionaryPersistenceService.getCumulatedTypes(dossierTemplateId, dossierId); for (Type res : typeResponse) { - if (!typeId.equals(res.getId()) && labelToCheck.equals(res.getLabel())) { + if (dossierId != null && res.getDossierId() != null && res.getDossierId().equals(dossierId) && !type.equals(res.getType()) && res.getDossierTemplateId().equals(dossierTemplateId) && dossierId.equals(dossierId) && labelToCheck.equals(res.getLabel()) + || !type.equals(res.getType()) && res.getDossierTemplateId().equals(dossierTemplateId) && labelToCheck.equals(res.getLabel())) { throw new ConflictException("Label must be unique."); } }