From 6751c2ffd189efac1a18bcc03d5581f3a541d639 Mon Sep 17 00:00:00 2001 From: ADAM M SANADI Date: Tue, 3 Dec 2024 18:09:51 +0530 Subject: [PATCH] avniproject/avni-webapp#1387 | Fixed identifier user assignment errors on edit- 'Element doesn't exist' and 'Identifier prefix is not assigned to the user'. --- .../org/avni/server/domain/IdentifierUserAssignment.java | 8 ++++---- .../server/web/IdentifierUserAssignmentWebController.java | 4 +++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/avni-server-api/src/main/java/org/avni/server/domain/IdentifierUserAssignment.java b/avni-server-api/src/main/java/org/avni/server/domain/IdentifierUserAssignment.java index 18755a319..29f3dbc69 100644 --- a/avni-server-api/src/main/java/org/avni/server/domain/IdentifierUserAssignment.java +++ b/avni-server-api/src/main/java/org/avni/server/domain/IdentifierUserAssignment.java @@ -73,14 +73,14 @@ public boolean isExhausted() { public void validate() throws ValidationException { String prefix = identifierSource.getType().equals(IdentifierGeneratorType.userPoolBasedIdentifierGenerator) ? identifierSource.getPrefix() : assignedTo.getUserSettings().getIdPrefix(); - if (Long.parseLong(identifierStart.replace(prefix, "")) > Long.parseLong(identifierEnd.replace(prefix, ""))) - throw new ValidationException("Identifier start should be less than identifier end"); - - if (identifierSource.getType().equals(IdentifierGeneratorType.userBasedIdentifierGenerator) && assignedTo.getUserSettings().getIdPrefix() == null) + if (identifierSource.getType().equals(IdentifierGeneratorType.userBasedIdentifierGenerator) && (assignedTo.getUserSettings().getIdPrefix() == null || assignedTo.getUserSettings().getIdPrefix().isEmpty())) throw new ValidationException("Id prefix is not assigned to the user"); if (!(identifierStart.startsWith(prefix) && identifierEnd.startsWith(prefix))) throw new ValidationException("Both Identifier Start and End should match the prefix " + prefix); + + if (Long.parseLong(identifierStart.replace(prefix, "")) > Long.parseLong(identifierEnd.replace(prefix, ""))) + throw new ValidationException("Identifier start should be less than identifier end"); } @Override diff --git a/avni-server-api/src/main/java/org/avni/server/web/IdentifierUserAssignmentWebController.java b/avni-server-api/src/main/java/org/avni/server/web/IdentifierUserAssignmentWebController.java index d450133e6..376c43c03 100644 --- a/avni-server-api/src/main/java/org/avni/server/web/IdentifierUserAssignmentWebController.java +++ b/avni-server-api/src/main/java/org/avni/server/web/IdentifierUserAssignmentWebController.java @@ -63,7 +63,7 @@ public ResponseEntity getOne(@PathVariable("id") Long id) { @PostMapping(value = "/web/identifierUserAssignment") @Transactional - ResponseEntity saveIdentifierAssignment(@RequestBody IdentifierUserAssignmentContractWeb request) { + public ResponseEntity saveIdentifierAssignment(@RequestBody IdentifierUserAssignmentContractWeb request) { accessControlService.checkPrivilege(PrivilegeType.EditIdentifierUserAssignment); IdentifierUserAssignment identifierUserAssignment = getIdentifierUserAssignment(request); @@ -116,6 +116,8 @@ private IdentifierUserAssignment getIdentifierUserAssignment(IdentifierUserAssig identifierUserAssignment.setIdentifierSource(request.getIdentifierSourceId() == null ? null : identifierSourceRepository.findOne(request.getIdentifierSourceId())); identifierUserAssignment.setIdentifierStart(request.getIdentifierStart()); identifierUserAssignment.setIdentifierEnd(request.getIdentifierEnd()); + identifierUserAssignment.setId(request.getId()); + identifierUserAssignment.setOrganisationId(request.getOrganisationId()); return identifierUserAssignment; } }