From db902550a23216ac4ceb846be10c70da598a5a74 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Mon, 11 Dec 2023 14:47:03 +0000 Subject: [PATCH 01/64] Upgrading perftest branch to V16 and adding subnet_suffix --- src/integrationTest/resources/application.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/integrationTest/resources/application.yml b/src/integrationTest/resources/application.yml index 38370e63d4..670257b215 100644 --- a/src/integrationTest/resources/application.yml +++ b/src/integrationTest/resources/application.yml @@ -1,6 +1,6 @@ spring: flyway: - schemas: DBREFDATA + schemas: dbrefdata locations: classpath:db/migration jpa: From 530bf254cca822af27872d18b9c4dfe79ea684b5 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Tue, 20 Feb 2024 13:32:26 +0000 Subject: [PATCH 02/64] Update name for an organisation moving code to controller --- ...rofessionalInternalUserFunctionalTest.java | 29 ++++++++ .../constants/ProfessionalApiConstants.java | 5 ++ .../OrganisationInternalController.java | 71 +++++++++++++++++++ .../OrganisationCreationRequestValidator.java | 12 ++++ .../service/OrganisationService.java | 5 +- .../service/impl/OrganisationServiceImpl.java | 21 ++++++ 6 files changed, 142 insertions(+), 1 deletion(-) diff --git a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java index a076370360..dcab10f74d 100644 --- a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java +++ b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java @@ -775,6 +775,35 @@ void updatePaymentAccountsShouldReturnForbiddenWhenToggledOff() { log.info("updatePaymentAccountsShouldReturnForbiddenWhenToggledOff :: END"); } + @Test + // @ToggleEnable(mapKey = "OrganisationInternalController.updatesOrganisationName", withFeature = true) + @ExtendWith(FeatureToggleConditionExtension.class) + void updateOrganisationNameShouldReturnSuccess() { + log.info("updateOrganisationNameShouldReturnSuccess :: STARTED"); + setUpTestData(); + + Map response = professionalApiClient.createOrganisation(); + String organisationIdentifier = (String) response.get("organisationIdentifier"); + assertThat(organisationIdentifier).isNotEmpty(); + + JsonPath orgResponse = professionalApiClient.retrieveOrganisationDetails( + organisationIdentifier, hmctsAdmin,OK); + + assertNotNull(orgResponse.get("name")); + + OrganisationCreationRequest organisationCreationRequest = createOrganisationRequest().name("Updated Name").build(); + + professionalApiClient.updateOrganisation(organisationCreationRequest, hmctsAdmin,intActiveOrgId, OK); + + JsonPath orgupdatedNameResponse = professionalApiClient.retrieveOrganisationDetails( + organisationIdentifier, hmctsAdmin,OK); + assertThat(response).isNotNull(); + assertNotNull(orgupdatedNameResponse.get("name")); + assertThat(orgupdatedNameResponse.get("name").toString()).contains("Updated Name"); + + log.info("updateOrganisationNameShouldReturnSuccess :: END"); + } + @Test void findOrganisationsWithPaginationShouldReturnSuccess() { log.info("findOrganisationsWithPaginationShouldReturnSuccess :: STARTED"); diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/constants/ProfessionalApiConstants.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/constants/ProfessionalApiConstants.java index 8e2ec54d1e..670623e11a 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/constants/ProfessionalApiConstants.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/constants/ProfessionalApiConstants.java @@ -20,6 +20,10 @@ private ProfessionalApiConstants() { public static final String NO_ORG_FOUND_FOR_GIVEN_ID = "No Organisation was found with the given organisationIdentifier "; + + public static final String NO_CONTACT_FOUND_FOR_GIVEN_ORG + = "No Contact Information was found with the given organisationIdentifier "; + public static final String ORG_NOT_ACTIVE_NO_USERS_RETURNED = "Organisation is not Active hence not returning any users"; public static final String ERROR_MESSAGE_403_FORBIDDEN = "403 Forbidden"; @@ -69,6 +73,7 @@ private ProfessionalApiConstants() { public static final String EMPTY_USER_ID = "User Id cannot be empty"; public static final String ERROR_MSG_NO_ORGANISATION_FOUND = "No organisation belongs to given email"; + public static final String ERROR_MSG_EMAIL_FOUND = "email address "; public static final String ERROR_MSG_NO_PBA_FOUND = "No PBAs associated with given email"; public static final String PBA_STATUS_MESSAGE_ACCEPTED = "Edited by Admin"; public static final String PBA_STATUS_MESSAGE_AUTO_ACCEPTED = "Auto approved by Admin"; diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java index ec1b05682e..521ab46596 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java @@ -31,6 +31,7 @@ import uk.gov.hmcts.reform.professionalapi.controller.request.MfaUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.NewUserCreationRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationCreationRequest; +import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationOtherOrgsCreationRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.PbaRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.UpdatePbaRequest; import uk.gov.hmcts.reform.professionalapi.controller.response.DeleteOrganisationResponse; @@ -51,10 +52,12 @@ import javax.validation.constraints.Pattern; import static org.apache.commons.lang3.BooleanUtils.isNotTrue; +import static org.apache.commons.lang3.StringUtils.isNotBlank; import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; import static uk.gov.hmcts.reform.professionalapi.controller.constants.ProfessionalApiConstants.ORGANISATION_IDENTIFIER_FORMAT_REGEX; import static uk.gov.hmcts.reform.professionalapi.controller.constants.ProfessionalApiConstants.ORG_ID_VALIDATION_ERROR_MESSAGE; import static uk.gov.hmcts.reform.professionalapi.controller.constants.ProfessionalApiConstants.ORG_NOT_ACTIVE; +import static uk.gov.hmcts.reform.professionalapi.util.RefDataUtil.removeEmptySpaces; @RequestMapping( path = "refdata/internal/v1/organisations" @@ -680,4 +683,72 @@ public ResponseEntity retrieveOrganisationByUserId( @PathVariable("userId") String userId) { return organisationService.retrieveOrganisationByUserId(userId); } + + + @Operation( + summary = "Updates an Organisation's name", + description = "**IDAM Roles to access API** :
prd-admin", + security = { + @SecurityRequirement(name = "ServiceAuthorization"), + @SecurityRequirement(name = "Authorization") + }) + + @ApiResponse( + responseCode = "200", + description = "Organisation name has been updated", + content = @Content(schema = @Schema(implementation = String.class)) + ) + @ApiResponse( + responseCode = "400", + description = "If Organisation request sent with null/invalid values for mandatory fields", + content = @Content + ) + @ApiResponse( + responseCode = "403", + description = "Forbidden Error: Access denied", + content = @Content + ) + @ApiResponse( + responseCode = "404", + description = "No Organisation found with the given ID", + content = @Content + ) + @ApiResponse( + responseCode = "500", + description = "Internal Server Error", + content = @Content + ) + + @PutMapping( + value = "/name/{orgId}", + consumes = APPLICATION_JSON_VALUE, + produces = APPLICATION_JSON_VALUE + ) + @ResponseStatus(value = HttpStatus.CREATED) + @ResponseBody + @Secured({"prd-admin"}) + public ResponseEntity updatesOrganisationName( + @io.swagger.v3.oas.annotations.parameters.RequestBody(description = "organisationCreationRequest") + @Valid @NotNull @RequestBody OrganisationOtherOrgsCreationRequest organisationCreationRequest, + @Pattern(regexp = ORGANISATION_IDENTIFIER_FORMAT_REGEX, message = ORG_ID_VALIDATION_ERROR_MESSAGE) + @PathVariable("orgId") @NotBlank String organisationIdentifier) { + + var orgId = removeEmptySpaces(organisationIdentifier); + organisationCreationRequestValidator.validateOrganisationIdentifier(orgId); + + if (isNotBlank(organisationCreationRequest.getSraId())) { + organisationCreationRequestValidator.validateOrganisationSraIdInRequest(organisationCreationRequest); + } + if (isNotBlank(organisationCreationRequest.getName()) ) { + organisationCreationRequestValidator.validateOrganisationNameInRequest(organisationCreationRequest); + } + + var updateOrganisationResponse = + organisationService.updateOrganisationNameOrSra(organisationCreationRequest, orgId); + + return ResponseEntity + .status(200) + .body(updateOrganisationResponse); + } + } diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/validator/OrganisationCreationRequestValidator.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/validator/OrganisationCreationRequestValidator.java index 3fa738cce7..40149ca4b6 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/validator/OrganisationCreationRequestValidator.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/validator/OrganisationCreationRequestValidator.java @@ -194,6 +194,18 @@ public void validateOrganisationRequest(OrganisationCreationRequest request) { requestContactInformation(request.getContactInformation()); } + public void validateOrganisationNameInRequest(OrganisationCreationRequest request) { + requestValues(request.getName()); + requestSuperUserValidateAccount(request.getSuperUser()); + + } + + public void validateOrganisationSraIdInRequest(OrganisationCreationRequest request) { + requestValues(request.getSraId()); + requestSuperUserValidateAccount(request.getSuperUser()); + + } + private void validateOrgAttributesRequest(List orgAttributes) { if (orgAttributes != null) { orgAttributes.forEach(orgAttribute -> { diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/OrganisationService.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/OrganisationService.java index a0213a4bb0..92545f53d9 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/OrganisationService.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/OrganisationService.java @@ -39,8 +39,11 @@ OrganisationEntityResponseV2 retrieveOrganisationForV2Api(String organisationIde OrganisationEntityResponse retrieveOrganisation(String organisationIdentifier, boolean isPendingPbaRequired); + OrganisationResponse updateOrganisationNameOrSra( + OrganisationCreationRequest organisationCreationRequest, String organisationIdentifier); + OrganisationResponse updateOrganisation(OrganisationCreationRequest organisationCreationRequest, - String organisationIdentifier,Boolean isOrgApprovalRequest); + String organisationIdentifier, Boolean isOrgApprovalRequest); Organisation getOrganisationByOrgIdentifier(String organisationIdentifier); diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java index 0f316cc666..a432e10c20 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java @@ -63,6 +63,7 @@ import uk.gov.hmcts.reform.professionalapi.repository.PaymentAccountRepository; import uk.gov.hmcts.reform.professionalapi.repository.PrdEnumRepository; import uk.gov.hmcts.reform.professionalapi.repository.ProfessionalUserRepository; +import uk.gov.hmcts.reform.professionalapi.repository.UserAttributeRepository; import uk.gov.hmcts.reform.professionalapi.service.OrganisationService; import uk.gov.hmcts.reform.professionalapi.service.PrdEnumService; import uk.gov.hmcts.reform.professionalapi.service.ProfessionalUserService; @@ -86,6 +87,7 @@ import static java.lang.Boolean.TRUE; import static org.apache.commons.lang3.ObjectUtils.isNotEmpty; +import static org.apache.commons.lang3.StringUtils.isNotBlank; import static org.springframework.util.CollectionUtils.isEmpty; import static uk.gov.hmcts.reform.professionalapi.controller.constants.ProfessionalApiConstants.ERROR_MSG_PARTIAL_SUCCESS; import static uk.gov.hmcts.reform.professionalapi.controller.constants.ProfessionalApiConstants.FALSE; @@ -123,6 +125,8 @@ public class OrganisationServiceImpl implements OrganisationService { @Autowired BulkCustomerDetailsRepository bulkCustomerDetailsRepository; @Autowired + UserAttributeRepository userAttributeRepository; + @Autowired UserAccountMapService userAccountMapService; @Autowired UserProfileFeignClient userProfileFeignClient; @@ -541,6 +545,23 @@ public OrganisationsDetailResponseV2 findByOrganisationStatusForV2Api(String sta return organisationsDetailResponse; } + @Override + public OrganisationResponse updateOrganisationNameOrSra( + OrganisationCreationRequest organisationCreationRequest, String organisationIdentifier) { + + var existingOrganisation = organisationRepository.findByOrganisationIdentifier(organisationIdentifier); + if(isNotBlank(organisationCreationRequest.getName())){ + existingOrganisation.setName(RefDataUtil.removeEmptySpaces(organisationCreationRequest.getName())); + } + if(isNotBlank(organisationCreationRequest.getSraId())){ + existingOrganisation.setSraId(RefDataUtil.removeEmptySpaces(organisationCreationRequest.getSraId())); + } + + var savedOrganisation = organisationRepository.save(existingOrganisation); + + return new OrganisationResponse(savedOrganisation); + } + @Override public OrganisationResponse updateOrganisation( OrganisationCreationRequest organisationCreationRequest, String organisationIdentifier, From 0a6934fbaf56c8fe97195c5a5098423cf087a29d Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Tue, 20 Feb 2024 21:11:49 +0000 Subject: [PATCH 03/64] Update name for an organisation adding test cases --- .../OrganisationInternalController.java | 13 ++----- .../request/OrganisationCreationRequest.java | 4 +- .../OrganisationCreationRequestValidator.java | 12 ++---- .../service/OrganisationService.java | 2 +- .../service/impl/OrganisationServiceImpl.java | 4 +- .../OrganisationInternalControllerTest.java | 39 +++++++++++++++++++ ...anisationCreationRequestValidatorTest.java | 30 ++++++++++++++ 7 files changed, 82 insertions(+), 22 deletions(-) diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java index 521ab46596..08a6898464 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java @@ -729,7 +729,7 @@ public ResponseEntity retrieveOrganisationByUserId( @Secured({"prd-admin"}) public ResponseEntity updatesOrganisationName( @io.swagger.v3.oas.annotations.parameters.RequestBody(description = "organisationCreationRequest") - @Valid @NotNull @RequestBody OrganisationOtherOrgsCreationRequest organisationCreationRequest, + @Valid @NotNull @RequestBody OrganisationCreationRequest organisationCreationRequest, @Pattern(regexp = ORGANISATION_IDENTIFIER_FORMAT_REGEX, message = ORG_ID_VALIDATION_ERROR_MESSAGE) @PathVariable("orgId") @NotBlank String organisationIdentifier) { @@ -737,18 +737,13 @@ public ResponseEntity updatesOrganisationName( organisationCreationRequestValidator.validateOrganisationIdentifier(orgId); if (isNotBlank(organisationCreationRequest.getSraId())) { - organisationCreationRequestValidator.validateOrganisationSraIdInRequest(organisationCreationRequest); + organisationCreationRequestValidator.validateOrganisationSraIdInRequest(organisationCreationRequest.getSraId()); } if (isNotBlank(organisationCreationRequest.getName()) ) { - organisationCreationRequestValidator.validateOrganisationNameInRequest(organisationCreationRequest); + organisationCreationRequestValidator.validateOrganisationNameInRequest(organisationCreationRequest.getName()); } - var updateOrganisationResponse = - organisationService.updateOrganisationNameOrSra(organisationCreationRequest, orgId); - - return ResponseEntity - .status(200) - .body(updateOrganisationResponse); + return organisationService.updateOrganisationNameOrSra(organisationCreationRequest, orgId); } } diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationCreationRequest.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationCreationRequest.java index cd3ec61a26..bfe0ee8bad 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationCreationRequest.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationCreationRequest.java @@ -16,13 +16,13 @@ public class OrganisationCreationRequest { @NotNull - private final String name; + private String name; private String status; private String statusMessage; - private final String sraId; + private String sraId; private String sraRegulated; diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/validator/OrganisationCreationRequestValidator.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/validator/OrganisationCreationRequestValidator.java index 40149ca4b6..686bccac1a 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/validator/OrganisationCreationRequestValidator.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/validator/OrganisationCreationRequestValidator.java @@ -194,16 +194,12 @@ public void validateOrganisationRequest(OrganisationCreationRequest request) { requestContactInformation(request.getContactInformation()); } - public void validateOrganisationNameInRequest(OrganisationCreationRequest request) { - requestValues(request.getName()); - requestSuperUserValidateAccount(request.getSuperUser()); - + public void validateOrganisationNameInRequest(String name) { + requestValues(name); } - public void validateOrganisationSraIdInRequest(OrganisationCreationRequest request) { - requestValues(request.getSraId()); - requestSuperUserValidateAccount(request.getSuperUser()); - + public void validateOrganisationSraIdInRequest(String sraId) { + requestValues(sraId); } private void validateOrgAttributesRequest(List orgAttributes) { diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/OrganisationService.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/OrganisationService.java index 92545f53d9..4c05c37fc6 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/OrganisationService.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/OrganisationService.java @@ -39,7 +39,7 @@ OrganisationEntityResponseV2 retrieveOrganisationForV2Api(String organisationIde OrganisationEntityResponse retrieveOrganisation(String organisationIdentifier, boolean isPendingPbaRequired); - OrganisationResponse updateOrganisationNameOrSra( + ResponseEntity updateOrganisationNameOrSra( OrganisationCreationRequest organisationCreationRequest, String organisationIdentifier); OrganisationResponse updateOrganisation(OrganisationCreationRequest organisationCreationRequest, diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java index a432e10c20..efae1bdf2e 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java @@ -546,7 +546,7 @@ public OrganisationsDetailResponseV2 findByOrganisationStatusForV2Api(String sta } @Override - public OrganisationResponse updateOrganisationNameOrSra( + public ResponseEntity updateOrganisationNameOrSra( OrganisationCreationRequest organisationCreationRequest, String organisationIdentifier) { var existingOrganisation = organisationRepository.findByOrganisationIdentifier(organisationIdentifier); @@ -559,7 +559,7 @@ public OrganisationResponse updateOrganisationNameOrSra( var savedOrganisation = organisationRepository.save(existingOrganisation); - return new OrganisationResponse(savedOrganisation); + return ResponseEntity.status(200).body(savedOrganisation); } @Override diff --git a/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java b/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java index 1bd9f354fc..c137cb9934 100644 --- a/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java +++ b/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java @@ -70,6 +70,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; @@ -571,4 +572,42 @@ void testRetrieveOrgByPbaStatus() { .getOrganisationsByPbaStatus(pbaStatus.toString()); } + @Test + void testUpdateOrgName() { + final HttpStatus expectedHttpStatus = HttpStatus.OK; + String updatedName = "NewName"; + organisation.setName(updatedName); + ResponseEntity updateResponseEntity = ResponseEntity.status(200).body(organisation); + + organisationCreationRequest.setName(updatedName); + + doNothing().when(organisationCreationRequestValidatorMock).validateOrganisationIdentifier(any(String.class)); + + doNothing().when(organisationCreationRequestValidatorMock).validateOrganisationSraIdInRequest(any(String.class)); + + doNothing().when(organisationCreationRequestValidatorMock).validateOrganisationNameInRequest(any(String.class)); + + + when(organisationServiceMock.updateOrganisationNameOrSra(organisationCreationRequest,organisation.getOrganisationIdentifier())) + .thenReturn(updateResponseEntity); + + + ResponseEntity response = organisationInternalController.updatesOrganisationName(organisationCreationRequest, + organisation.getOrganisationIdentifier()); + + assertThat(response).isNotNull(); + assertThat(response.getStatusCode()).isEqualTo(expectedHttpStatus); + assertThat(((Organisation) response.getBody()).getName()).isEqualTo(organisationCreationRequest.getName()); + + verify(organisationCreationRequestValidatorMock, times(1)) + .validateOrganisationIdentifier(any(String.class)); + verify(organisationCreationRequestValidatorMock, times(1)) + .validateOrganisationSraIdInRequest(any(String.class)); + verify(organisationCreationRequestValidatorMock, times(1)) + .validateOrganisationNameInRequest(any(String.class)); + verify(organisationServiceMock, times(1)) + .updateOrganisationNameOrSra(organisationCreationRequest, organisation.getOrganisationIdentifier()); + + } + } diff --git a/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/request/validator/OrganisationCreationRequestValidatorTest.java b/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/request/validator/OrganisationCreationRequestValidatorTest.java index 8f43bb7ab2..1dd0097240 100644 --- a/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/request/validator/OrganisationCreationRequestValidatorTest.java +++ b/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/request/validator/OrganisationCreationRequestValidatorTest.java @@ -583,4 +583,34 @@ void test_validateOrganisationRequestWithOrgAttributeKeyEmpty(String key,String organisationCreationRequestValidator.validate(organisationOtherOrgsCreationRequest)); } + + + @Test + void test_validateOrganisationSraIdInRequestNull() { + assertThrows(InvalidRequest.class, () -> + organisationCreationRequestValidator.validateOrganisationSraIdInRequest(null)); + + } + + @Test + void test_validateOrganisationSraIdInRequestEmpty() { + assertThrows(InvalidRequest.class, () -> + organisationCreationRequestValidator.validateOrganisationSraIdInRequest(" ")); + + } + + @Test + void test_validateOrganisationNameInRequestNull() { + assertThrows(InvalidRequest.class, () -> + organisationCreationRequestValidator.validateOrganisationNameInRequest(null)); + } + + @Test + void test_validateOrganisationNameInRequestEmpty() { + assertThrows(InvalidRequest.class, () -> + organisationCreationRequestValidator.validateOrganisationNameInRequest(" ")); + } + + + } From c93a0f85ba721450681a606cbeb8382ed6d0de5f Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Wed, 21 Feb 2024 13:34:12 +0000 Subject: [PATCH 04/64] Update name for an organisation adding test cases --- ...rofessionalInternalUserFunctionalTest.java | 15 +++++---- .../OrganisationInternalController.java | 11 +++---- .../OrganisationCreationRequestValidator.java | 8 ----- .../OrganisationInternalControllerTest.java | 17 +++------- ...anisationCreationRequestValidatorTest.java | 28 ---------------- .../impl/OrganisationServiceImplTest.java | 32 +++++++++++++++++++ 6 files changed, 50 insertions(+), 61 deletions(-) diff --git a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java index dcab10f74d..c78c70aa7b 100644 --- a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java +++ b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java @@ -778,10 +778,11 @@ void updatePaymentAccountsShouldReturnForbiddenWhenToggledOff() { @Test // @ToggleEnable(mapKey = "OrganisationInternalController.updatesOrganisationName", withFeature = true) @ExtendWith(FeatureToggleConditionExtension.class) - void updateOrganisationNameShouldReturnSuccess() { + void updateOrganisationNameAndSraShouldReturnSuccess() { log.info("updateOrganisationNameShouldReturnSuccess :: STARTED"); setUpTestData(); - + String updatedName = "updatedName"; + String updatedSra = "updatedSraId"; Map response = professionalApiClient.createOrganisation(); String organisationIdentifier = (String) response.get("organisationIdentifier"); assertThat(organisationIdentifier).isNotEmpty(); @@ -791,15 +792,17 @@ void updateOrganisationNameShouldReturnSuccess() { assertNotNull(orgResponse.get("name")); - OrganisationCreationRequest organisationCreationRequest = createOrganisationRequest().name("Updated Name").build(); + OrganisationCreationRequest organisationCreationRequest = createOrganisationRequest().name(updatedName).sraId(updatedSra).build(); professionalApiClient.updateOrganisation(organisationCreationRequest, hmctsAdmin,intActiveOrgId, OK); - JsonPath orgupdatedNameResponse = professionalApiClient.retrieveOrganisationDetails( + JsonPath orgUpdatedNameResponse = professionalApiClient.retrieveOrganisationDetails( organisationIdentifier, hmctsAdmin,OK); assertThat(response).isNotNull(); - assertNotNull(orgupdatedNameResponse.get("name")); - assertThat(orgupdatedNameResponse.get("name").toString()).contains("Updated Name"); + assertNotNull(orgUpdatedNameResponse.get("name")); + assertThat(orgUpdatedNameResponse.get("name").toString()).contains(updatedName); + assertNotNull(orgUpdatedNameResponse.get("sraId")); + assertThat(orgUpdatedNameResponse.get("sraId").toString()).contains(updatedSra); log.info("updateOrganisationNameShouldReturnSuccess :: END"); } diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java index 08a6898464..e1e41baaef 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java @@ -51,8 +51,8 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Pattern; +import static org.apache.commons.lang.StringUtils.isBlank; import static org.apache.commons.lang3.BooleanUtils.isNotTrue; -import static org.apache.commons.lang3.StringUtils.isNotBlank; import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; import static uk.gov.hmcts.reform.professionalapi.controller.constants.ProfessionalApiConstants.ORGANISATION_IDENTIFIER_FORMAT_REGEX; import static uk.gov.hmcts.reform.professionalapi.controller.constants.ProfessionalApiConstants.ORG_ID_VALIDATION_ERROR_MESSAGE; @@ -720,7 +720,7 @@ public ResponseEntity retrieveOrganisationByUserId( ) @PutMapping( - value = "/name/{orgId}", + value = "/nameSra/{orgId}", consumes = APPLICATION_JSON_VALUE, produces = APPLICATION_JSON_VALUE ) @@ -736,11 +736,8 @@ public ResponseEntity updatesOrganisationName( var orgId = removeEmptySpaces(organisationIdentifier); organisationCreationRequestValidator.validateOrganisationIdentifier(orgId); - if (isNotBlank(organisationCreationRequest.getSraId())) { - organisationCreationRequestValidator.validateOrganisationSraIdInRequest(organisationCreationRequest.getSraId()); - } - if (isNotBlank(organisationCreationRequest.getName()) ) { - organisationCreationRequestValidator.validateOrganisationNameInRequest(organisationCreationRequest.getName()); + if(isBlank(organisationCreationRequest.getName()) && isBlank(organisationCreationRequest.getSraId())) { + throw new InvalidRequest("Name or SRA Id not found"); } return organisationService.updateOrganisationNameOrSra(organisationCreationRequest, orgId); diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/validator/OrganisationCreationRequestValidator.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/validator/OrganisationCreationRequestValidator.java index 686bccac1a..3fa738cce7 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/validator/OrganisationCreationRequestValidator.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/validator/OrganisationCreationRequestValidator.java @@ -194,14 +194,6 @@ public void validateOrganisationRequest(OrganisationCreationRequest request) { requestContactInformation(request.getContactInformation()); } - public void validateOrganisationNameInRequest(String name) { - requestValues(name); - } - - public void validateOrganisationSraIdInRequest(String sraId) { - requestValues(sraId); - } - private void validateOrgAttributesRequest(List orgAttributes) { if (orgAttributes != null) { orgAttributes.forEach(orgAttribute -> { diff --git a/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java b/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java index c137cb9934..f15bb642b5 100644 --- a/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java +++ b/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java @@ -573,38 +573,31 @@ void testRetrieveOrgByPbaStatus() { } @Test - void testUpdateOrgName() { + void testUpdateOrgNameAndSra() { final HttpStatus expectedHttpStatus = HttpStatus.OK; String updatedName = "NewName"; + String updatedSra = "NewSRA"; organisation.setName(updatedName); + organisation.setSraId(updatedSra); ResponseEntity updateResponseEntity = ResponseEntity.status(200).body(organisation); organisationCreationRequest.setName(updatedName); - + organisationCreationRequest.setSraId(updatedSra); doNothing().when(organisationCreationRequestValidatorMock).validateOrganisationIdentifier(any(String.class)); - doNothing().when(organisationCreationRequestValidatorMock).validateOrganisationSraIdInRequest(any(String.class)); - - doNothing().when(organisationCreationRequestValidatorMock).validateOrganisationNameInRequest(any(String.class)); - - when(organisationServiceMock.updateOrganisationNameOrSra(organisationCreationRequest,organisation.getOrganisationIdentifier())) .thenReturn(updateResponseEntity); - ResponseEntity response = organisationInternalController.updatesOrganisationName(organisationCreationRequest, organisation.getOrganisationIdentifier()); assertThat(response).isNotNull(); assertThat(response.getStatusCode()).isEqualTo(expectedHttpStatus); assertThat(((Organisation) response.getBody()).getName()).isEqualTo(organisationCreationRequest.getName()); + assertThat(((Organisation) response.getBody()).getSraId()).isEqualTo(organisationCreationRequest.getSraId()); verify(organisationCreationRequestValidatorMock, times(1)) .validateOrganisationIdentifier(any(String.class)); - verify(organisationCreationRequestValidatorMock, times(1)) - .validateOrganisationSraIdInRequest(any(String.class)); - verify(organisationCreationRequestValidatorMock, times(1)) - .validateOrganisationNameInRequest(any(String.class)); verify(organisationServiceMock, times(1)) .updateOrganisationNameOrSra(organisationCreationRequest, organisation.getOrganisationIdentifier()); diff --git a/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/request/validator/OrganisationCreationRequestValidatorTest.java b/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/request/validator/OrganisationCreationRequestValidatorTest.java index 1dd0097240..4160a38a4a 100644 --- a/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/request/validator/OrganisationCreationRequestValidatorTest.java +++ b/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/request/validator/OrganisationCreationRequestValidatorTest.java @@ -585,32 +585,4 @@ void test_validateOrganisationRequestWithOrgAttributeKeyEmpty(String key,String - @Test - void test_validateOrganisationSraIdInRequestNull() { - assertThrows(InvalidRequest.class, () -> - organisationCreationRequestValidator.validateOrganisationSraIdInRequest(null)); - - } - - @Test - void test_validateOrganisationSraIdInRequestEmpty() { - assertThrows(InvalidRequest.class, () -> - organisationCreationRequestValidator.validateOrganisationSraIdInRequest(" ")); - - } - - @Test - void test_validateOrganisationNameInRequestNull() { - assertThrows(InvalidRequest.class, () -> - organisationCreationRequestValidator.validateOrganisationNameInRequest(null)); - } - - @Test - void test_validateOrganisationNameInRequestEmpty() { - assertThrows(InvalidRequest.class, () -> - organisationCreationRequestValidator.validateOrganisationNameInRequest(" ")); - } - - - } diff --git a/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java b/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java index 3ce4345db3..af5343ce58 100644 --- a/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java +++ b/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java @@ -1613,6 +1613,38 @@ void test_updateStatusAndMessage() { verify(paymentAccountMock, times(1)).setStatusMessage("statusMessage"); } + + @Test + void test_updateOrganisationNameAndSra() { + Organisation organisationMock = mock(Organisation.class); + String newName="TestOrgName"; + String newSraId="TestSraId"; + String orgIdentifier="9KS20WT"; + organisationCreationRequest.setName(newName); + organisationCreationRequest.setSraId(newSraId); + + when(organisationRepository.findByOrganisationIdentifier(any(String.class))).thenReturn(organisationMock); + + when(organisationCreationRequest.getName()).thenReturn(newName); + assertNotNull(organisationCreationRequest.getName()); + when(organisationCreationRequest.getSraId()).thenReturn(newSraId); + assertNotNull(organisationCreationRequest.getSraId()); + + organisationMock.setName(newName); + organisationMock.setSraId(newSraId); + + when(organisationRepository.save(organisationMock)).thenReturn(organisationMock); + + ResponseEntity updatedOrganisation = sut.updateOrganisationNameOrSra(organisationCreationRequest,orgIdentifier); + + assertThat(updatedOrganisation).isNotNull(); + + verify(organisationRepository, times(1)) + .findByOrganisationIdentifier(orgIdentifier); + verify(organisationRepository, times(1)) + .save(organisationMock); + } + @Test void test_AllAttributesAddedToSuperUser() { prdEnums.add(new PrdEnum(new PrdEnumId(0, "SIDAM_ROLE"), From c163fbf5b9a5746276ec4b84b44463c6f698f8ed Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Wed, 21 Feb 2024 13:35:50 +0000 Subject: [PATCH 05/64] Update name for an organisation adding test cases --- src/integrationTest/resources/application.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/integrationTest/resources/application.yml b/src/integrationTest/resources/application.yml index 670257b215..38370e63d4 100644 --- a/src/integrationTest/resources/application.yml +++ b/src/integrationTest/resources/application.yml @@ -1,6 +1,6 @@ spring: flyway: - schemas: dbrefdata + schemas: DBREFDATA locations: classpath:db/migration jpa: From 8743c98f34542dd1db9229c076568e82cc3549e3 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Wed, 21 Feb 2024 13:46:57 +0000 Subject: [PATCH 06/64] Update name for an organisation adding test cases --- .../ProfessionalInternalUserFunctionalTest.java | 7 ++++--- .../internal/OrganisationInternalController.java | 1 - .../service/impl/OrganisationServiceImpl.java | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java index c78c70aa7b..bdb8889715 100644 --- a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java +++ b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java @@ -776,7 +776,6 @@ void updatePaymentAccountsShouldReturnForbiddenWhenToggledOff() { } @Test - // @ToggleEnable(mapKey = "OrganisationInternalController.updatesOrganisationName", withFeature = true) @ExtendWith(FeatureToggleConditionExtension.class) void updateOrganisationNameAndSraShouldReturnSuccess() { log.info("updateOrganisationNameShouldReturnSuccess :: STARTED"); @@ -792,9 +791,11 @@ void updateOrganisationNameAndSraShouldReturnSuccess() { assertNotNull(orgResponse.get("name")); - OrganisationCreationRequest organisationCreationRequest = createOrganisationRequest().name(updatedName).sraId(updatedSra).build(); + OrganisationCreationRequest organisationCreationRequest = createOrganisationRequest() + .name(updatedName).sraId(updatedSra).build(); - professionalApiClient.updateOrganisation(organisationCreationRequest, hmctsAdmin,intActiveOrgId, OK); + professionalApiClient.updateOrganisation(organisationCreationRequest, + hmctsAdmin,intActiveOrgId, OK); JsonPath orgUpdatedNameResponse = professionalApiClient.retrieveOrganisationDetails( organisationIdentifier, hmctsAdmin,OK); diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java index e1e41baaef..1c38d4af9f 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java @@ -31,7 +31,6 @@ import uk.gov.hmcts.reform.professionalapi.controller.request.MfaUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.NewUserCreationRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationCreationRequest; -import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationOtherOrgsCreationRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.PbaRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.UpdatePbaRequest; import uk.gov.hmcts.reform.professionalapi.controller.response.DeleteOrganisationResponse; diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java index efae1bdf2e..227a9c84a1 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java @@ -550,10 +550,10 @@ public ResponseEntity updateOrganisationNameOrSra( OrganisationCreationRequest organisationCreationRequest, String organisationIdentifier) { var existingOrganisation = organisationRepository.findByOrganisationIdentifier(organisationIdentifier); - if(isNotBlank(organisationCreationRequest.getName())){ + if(isNotBlank(organisationCreationRequest.getName())) { existingOrganisation.setName(RefDataUtil.removeEmptySpaces(organisationCreationRequest.getName())); } - if(isNotBlank(organisationCreationRequest.getSraId())){ + if(isNotBlank(organisationCreationRequest.getSraId())) { existingOrganisation.setSraId(RefDataUtil.removeEmptySpaces(organisationCreationRequest.getSraId())); } From 9ab2dfa7f8ffd1e25031bc629fae91bbbbfc020e Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Wed, 21 Feb 2024 19:37:52 +0000 Subject: [PATCH 07/64] Update name for an organisation adding test cases --- .../internal/OrganisationInternalController.java | 2 +- .../service/impl/OrganisationServiceImpl.java | 4 ++-- .../internal/OrganisationInternalControllerTest.java | 10 +++++----- .../service/impl/OrganisationServiceImplTest.java | 12 +++++++----- 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java index 1c38d4af9f..c397af50e1 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java @@ -735,7 +735,7 @@ public ResponseEntity updatesOrganisationName( var orgId = removeEmptySpaces(organisationIdentifier); organisationCreationRequestValidator.validateOrganisationIdentifier(orgId); - if(isBlank(organisationCreationRequest.getName()) && isBlank(organisationCreationRequest.getSraId())) { + if (isBlank(organisationCreationRequest.getName()) && isBlank(organisationCreationRequest.getSraId())) { throw new InvalidRequest("Name or SRA Id not found"); } diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java index 227a9c84a1..3cb7d7a631 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java @@ -550,10 +550,10 @@ public ResponseEntity updateOrganisationNameOrSra( OrganisationCreationRequest organisationCreationRequest, String organisationIdentifier) { var existingOrganisation = organisationRepository.findByOrganisationIdentifier(organisationIdentifier); - if(isNotBlank(organisationCreationRequest.getName())) { + if (isNotBlank(organisationCreationRequest.getName())) { existingOrganisation.setName(RefDataUtil.removeEmptySpaces(organisationCreationRequest.getName())); } - if(isNotBlank(organisationCreationRequest.getSraId())) { + if (isNotBlank(organisationCreationRequest.getSraId())) { existingOrganisation.setSraId(RefDataUtil.removeEmptySpaces(organisationCreationRequest.getSraId())); } diff --git a/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java b/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java index f15bb642b5..d375c13f8d 100644 --- a/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java +++ b/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java @@ -583,13 +583,13 @@ void testUpdateOrgNameAndSra() { organisationCreationRequest.setName(updatedName); organisationCreationRequest.setSraId(updatedSra); - doNothing().when(organisationCreationRequestValidatorMock).validateOrganisationIdentifier(any(String.class)); + doNothing().when(organisationCreationRequestValidatorMock).validateOrganisationIdentifier(any(String.class)); - when(organisationServiceMock.updateOrganisationNameOrSra(organisationCreationRequest,organisation.getOrganisationIdentifier())) - .thenReturn(updateResponseEntity); + when(organisationServiceMock.updateOrganisationNameOrSra(organisationCreationRequest, + organisation.getOrganisationIdentifier())).thenReturn(updateResponseEntity); - ResponseEntity response = organisationInternalController.updatesOrganisationName(organisationCreationRequest, - organisation.getOrganisationIdentifier()); + ResponseEntity response = organisationInternalController + .updatesOrganisationName(organisationCreationRequest,organisation.getOrganisationIdentifier()); assertThat(response).isNotNull(); assertThat(response.getStatusCode()).isEqualTo(expectedHttpStatus); diff --git a/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java b/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java index af5343ce58..a1bbb6d41f 100644 --- a/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java +++ b/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java @@ -1617,13 +1617,14 @@ void test_updateStatusAndMessage() { @Test void test_updateOrganisationNameAndSra() { Organisation organisationMock = mock(Organisation.class); - String newName="TestOrgName"; - String newSraId="TestSraId"; - String orgIdentifier="9KS20WT"; + String newName = "TestOrgName"; + String newSraId = "TestSraId"; + String orgIdentifier = "9KS20WT"; organisationCreationRequest.setName(newName); organisationCreationRequest.setSraId(newSraId); - when(organisationRepository.findByOrganisationIdentifier(any(String.class))).thenReturn(organisationMock); + when(organisationRepository.findByOrganisationIdentifier(any(String.class))) + .thenReturn(organisationMock); when(organisationCreationRequest.getName()).thenReturn(newName); assertNotNull(organisationCreationRequest.getName()); @@ -1635,7 +1636,8 @@ void test_updateOrganisationNameAndSra() { when(organisationRepository.save(organisationMock)).thenReturn(organisationMock); - ResponseEntity updatedOrganisation = sut.updateOrganisationNameOrSra(organisationCreationRequest,orgIdentifier); + ResponseEntity updatedOrganisation = sut.updateOrganisationNameOrSra( + organisationCreationRequest,orgIdentifier); assertThat(updatedOrganisation).isNotNull(); From 379ba0b8ab3a580944bd89fb0f3033b6c3ff088a Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Wed, 21 Feb 2024 21:02:22 +0000 Subject: [PATCH 08/64] Update name for an organisation adding test cases --- .../service/impl/OrganisationServiceImplTest.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java b/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java index a1bbb6d41f..be02cc304e 100644 --- a/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java +++ b/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java @@ -1626,9 +1626,7 @@ void test_updateOrganisationNameAndSra() { when(organisationRepository.findByOrganisationIdentifier(any(String.class))) .thenReturn(organisationMock); - when(organisationCreationRequest.getName()).thenReturn(newName); assertNotNull(organisationCreationRequest.getName()); - when(organisationCreationRequest.getSraId()).thenReturn(newSraId); assertNotNull(organisationCreationRequest.getSraId()); organisationMock.setName(newName); From f6ce243b42eaa82b1573cf23976a098c6aa7624d Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Wed, 21 Feb 2024 21:07:40 +0000 Subject: [PATCH 09/64] Update name for an organisation adding test cases --- .../internal/OrganisationInternalControllerTest.java | 4 ++-- .../service/impl/OrganisationServiceImplTest.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java b/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java index d375c13f8d..0352ead666 100644 --- a/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java +++ b/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java @@ -579,12 +579,12 @@ void testUpdateOrgNameAndSra() { String updatedSra = "NewSRA"; organisation.setName(updatedName); organisation.setSraId(updatedSra); - ResponseEntity updateResponseEntity = ResponseEntity.status(200).body(organisation); - organisationCreationRequest.setName(updatedName); organisationCreationRequest.setSraId(updatedSra); + doNothing().when(organisationCreationRequestValidatorMock).validateOrganisationIdentifier(any(String.class)); + ResponseEntity updateResponseEntity = ResponseEntity.status(200).body(organisation); when(organisationServiceMock.updateOrganisationNameOrSra(organisationCreationRequest, organisation.getOrganisationIdentifier())).thenReturn(updateResponseEntity); diff --git a/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java b/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java index be02cc304e..0bf209c0cf 100644 --- a/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java +++ b/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java @@ -1619,7 +1619,7 @@ void test_updateOrganisationNameAndSra() { Organisation organisationMock = mock(Organisation.class); String newName = "TestOrgName"; String newSraId = "TestSraId"; - String orgIdentifier = "9KS20WT"; + final String orgIdentifier = "9KS20WT"; organisationCreationRequest.setName(newName); organisationCreationRequest.setSraId(newSraId); From 570432d08e53710b3aa9212aa0a94e530af26c79 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS <139119493+SabinaHMCTS@users.noreply.github.com> Date: Tue, 27 Feb 2024 17:17:57 +0000 Subject: [PATCH 10/64] Update OrganisationCreationRequestValidatorTest.java --- .../validator/OrganisationCreationRequestValidatorTest.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/request/validator/OrganisationCreationRequestValidatorTest.java b/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/request/validator/OrganisationCreationRequestValidatorTest.java index 4160a38a4a..8f43bb7ab2 100644 --- a/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/request/validator/OrganisationCreationRequestValidatorTest.java +++ b/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/request/validator/OrganisationCreationRequestValidatorTest.java @@ -583,6 +583,4 @@ void test_validateOrganisationRequestWithOrgAttributeKeyEmpty(String key,String organisationCreationRequestValidator.validate(organisationOtherOrgsCreationRequest)); } - - } From 9927c5e06b0032bbedfff42ef37242d1acf30963 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS <139119493+SabinaHMCTS@users.noreply.github.com> Date: Tue, 27 Feb 2024 17:19:42 +0000 Subject: [PATCH 11/64] Update ProfessionalInternalUserFunctionalTest.java --- .../ProfessionalInternalUserFunctionalTest.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java index c40d63054b..7dc0fbc21e 100644 --- a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java +++ b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java @@ -784,7 +784,6 @@ void updatePaymentAccountsShouldReturnForbiddenWhenToggledOff() { @ExtendWith(FeatureToggleConditionExtension.class) void updateOrganisationNameAndSraShouldReturnSuccess() { log.info("updateOrganisationNameShouldReturnSuccess :: STARTED"); - setUpTestData(); String updatedName = "updatedName"; String updatedSra = "updatedSraId"; Map response = professionalApiClient.createOrganisation(); @@ -800,7 +799,7 @@ void updateOrganisationNameAndSraShouldReturnSuccess() { .name(updatedName).sraId(updatedSra).build(); professionalApiClient.updateOrganisation(organisationCreationRequest, - hmctsAdmin,intActiveOrgId, OK); + hmctsAdmin,organisationIdentifier, OK); JsonPath orgUpdatedNameResponse = professionalApiClient.retrieveOrganisationDetails( organisationIdentifier, hmctsAdmin,OK); From f6a762ac828872ab0820241df323d47dd0efa5b6 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Tue, 27 Feb 2024 23:49:59 +0000 Subject: [PATCH 12/64] Update name sra for an organisation adding test cases --- .../ProfessionalInternalUserFunctionalTest.java | 2 +- .../client/ProfessionalApiClient.java | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java index 7dc0fbc21e..b8698f0a9f 100644 --- a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java +++ b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java @@ -798,7 +798,7 @@ void updateOrganisationNameAndSraShouldReturnSuccess() { OrganisationCreationRequest organisationCreationRequest = createOrganisationRequest() .name(updatedName).sraId(updatedSra).build(); - professionalApiClient.updateOrganisation(organisationCreationRequest, + professionalApiClient.updatesOrganisationName(organisationCreationRequest, hmctsAdmin,organisationIdentifier, OK); JsonPath orgUpdatedNameResponse = professionalApiClient.retrieveOrganisationDetails( diff --git a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java index c2afa21ad1..387dfa241a 100644 --- a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java +++ b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java @@ -1224,6 +1224,21 @@ public void updateOrganisation(OrganisationCreationRequest organisationCreationR .statusCode(expectedStatus.value()); } + public void updatesOrganisationName(OrganisationCreationRequest organisationCreationRequest, String role, + String organisationIdentifier, HttpStatus expectedStatus) { + + Response response = getMultipleAuthHeadersInternal() + .body(organisationCreationRequest) + .put("/refdata/internal/v1/organisations/nameSra/" + organisationIdentifier) + .andReturn(); + + log.info("{}:: Update organisation Name or SRA id response: {}", loggingComponentName, response.getStatusCode()); + + response.then() + .assertThat() + .statusCode(expectedStatus.value()); + } + public void updateOrganisationToReview(String organisationIdentifier, String statusMessage, String role) { OrganisationCreationRequest organisationCreationRequest = createOrganisationRequest() From 1029f2c9418ee6eda475ed55270fb71ea49558f2 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Tue, 27 Feb 2024 23:58:05 +0000 Subject: [PATCH 13/64] Update name sra for an organisation adding test cases --- .../controller/internal/OrganisationInternalControllerTest.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java b/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java index 64178830d5..885449ac6d 100644 --- a/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java +++ b/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java @@ -584,6 +584,8 @@ void testUpdateOrgNameAndSra() { organisationCreationRequest.setSraId(updatedSra); doNothing().when(organisationCreationRequestValidatorMock).validateOrganisationIdentifier(any(String.class)); + assertThat(organisationCreationRequest.getName()).isNotEmpty(); + assertThat(organisationCreationRequest.getSraId()).isNotEmpty(); ResponseEntity updateResponseEntity = ResponseEntity.status(200).body(organisation); when(organisationServiceMock.updateOrganisationNameOrSra(organisationCreationRequest, From 0afe4d2c021080a68dce3e21e2d36567dfbb8572 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Thu, 29 Feb 2024 09:44:46 +0000 Subject: [PATCH 14/64] Update name sra for an organisation adding test cases --- .../client/ProfessionalApiClient.java | 3 +- .../UpdateOrgNameSraIdIntegrationTest.java | 72 +++++++++++++++++++ .../util/ProfessionalReferenceDataClient.java | 21 ++++++ .../OrganisationInternalController.java | 7 +- .../service/OrganisationService.java | 2 +- .../service/impl/OrganisationServiceImpl.java | 4 +- .../OrganisationInternalControllerTest.java | 12 ++-- .../impl/OrganisationServiceImplTest.java | 2 +- 8 files changed, 110 insertions(+), 13 deletions(-) create mode 100644 src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgNameSraIdIntegrationTest.java diff --git a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java index 387dfa241a..ad3954db33 100644 --- a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java +++ b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java @@ -1232,7 +1232,8 @@ public void updatesOrganisationName(OrganisationCreationRequest organisationCrea .put("/refdata/internal/v1/organisations/nameSra/" + organisationIdentifier) .andReturn(); - log.info("{}:: Update organisation Name or SRA id response: {}", loggingComponentName, response.getStatusCode()); + log.info("{}:: Update organisation Name or SRA id response: {}", + loggingComponentName, response.getStatusCode()); response.then() .assertThat() diff --git a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgNameSraIdIntegrationTest.java b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgNameSraIdIntegrationTest.java new file mode 100644 index 0000000000..17e8efe078 --- /dev/null +++ b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgNameSraIdIntegrationTest.java @@ -0,0 +1,72 @@ +package uk.gov.hmcts.reform.professionalapi; + +import org.junit.jupiter.api.Test; +import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationCreationRequest; +import uk.gov.hmcts.reform.professionalapi.util.AuthorizationEnabledIntegrationTest; + +import java.util.Map; + +import static org.assertj.core.api.Assertions.assertThat; +import static uk.gov.hmcts.reform.professionalapi.helper.OrganisationFixtures.organisationRequestWithAllFields; +import static uk.gov.hmcts.reform.professionalapi.helper.OrganisationFixtures.organisationRequestWithAllFieldsAreUpdated; + + +class UpdateOrgNameSraIdIntegrationTest extends AuthorizationEnabledIntegrationTest { + + + @Test + void update_name_or_sra_of_an_active_organisation_with_prd_admin_role_should_return_200() { + Map updateResponse = professionalReferenceDataClient + .updateOrgNameSraIdStatus(organisationRequestWithAllFields().build(), hmctsAdmin,getOrganisationId()); + + assertThat(updateResponse).containsEntry("http_status", 200); + } + + @Test + void update_name_or_sra_with_bad_request_should_return_400() { + Map updateResponse = professionalReferenceDataClient + .updateOrgNameSraIdStatus(null, hmctsAdmin,getOrganisationId()); + + assertThat(updateResponse).containsEntry("http_status", "400"); + } + + @Test + void update_name_or_sra_with_invalid_name_and_sra_should_return_400() { + OrganisationCreationRequest organisationUpdateRequest = organisationRequestWithAllFieldsAreUpdated() + .name("") + .sraId(null) + .build(); + Map updateResponse = professionalReferenceDataClient + .updateOrgNameSraIdStatus(organisationUpdateRequest, hmctsAdmin,getOrganisationId()); + + assertThat(updateResponse).containsEntry("http_status", "400"); + assertThat(updateResponse.get("response_body").toString()).contains("Name or SRA Id not found"); + } + + void update_name_or_sra_with_invalid_name_and_valid_sra_should_return_200() { + OrganisationCreationRequest organisationUpdateRequest = organisationRequestWithAllFieldsAreUpdated() + .name(null) + .build(); + Map updateResponse = professionalReferenceDataClient + .updateOrgNameSraIdStatus(organisationUpdateRequest, hmctsAdmin,getOrganisationId()); + + assertThat(updateResponse).containsEntry("http_status", 200); + } + + void update_name_or_sra_with_invalid_sra_and_valid_name_should_return_200() { + OrganisationCreationRequest organisationUpdateRequest = organisationRequestWithAllFieldsAreUpdated() + .sraId(null) + .build(); + Map updateResponse = professionalReferenceDataClient + .updateOrgNameSraIdStatus(organisationUpdateRequest, hmctsAdmin,getOrganisationId()); + + assertThat(updateResponse).containsEntry("http_status", 200); + } + + private String getOrganisationId() { + String organisationIdentifier = createOrganisationRequest(); + updateOrganisation(organisationIdentifier, hmctsAdmin, "ACTIVE"); + + return organisationIdentifier; + } +} diff --git a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/util/ProfessionalReferenceDataClient.java b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/util/ProfessionalReferenceDataClient.java index 9f05b9c5e1..f665b8e632 100644 --- a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/util/ProfessionalReferenceDataClient.java +++ b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/util/ProfessionalReferenceDataClient.java @@ -1021,4 +1021,25 @@ public Map findOrganisationsByUserId(String userId, String role) return getResponse(responseEntity); } + + public Map updateOrgNameSraIdStatus( + OrganisationCreationRequest organisationCreationRequest, String role, String organisationIdentifier) { + + ResponseEntity responseEntity = null; + String urlPath = "http://localhost:" + prdApiPort + APP_INT_BASE_PATH + "/nameSra/" + organisationIdentifier; + try { + HttpEntity requestEntity = new HttpEntity<>(organisationCreationRequest, + getMultipleAuthHeaders(role)); + responseEntity = restTemplate.exchange(urlPath, HttpMethod.PUT, requestEntity, Map.class); + } catch (RestClientResponseException ex) { + HashMap statusAndBody = new HashMap<>(2); + statusAndBody.put("http_status", String.valueOf(ex.getRawStatusCode())); + statusAndBody.put("response_body", ex.getResponseBodyAsString()); + return statusAndBody; + } + + Map organisationResponse = new HashMap<>(); + organisationResponse.put("http_status", responseEntity.getStatusCodeValue()); + return organisationResponse; + } } diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java index 3b1470ca2b..3e37586aca 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java @@ -740,7 +740,7 @@ public ResponseEntity retrieveOrganisationByUserId( @ResponseStatus(value = HttpStatus.CREATED) @ResponseBody @Secured({"prd-admin"}) - public ResponseEntity updatesOrganisationName( + public ResponseEntity updateOrganisationNameOrSra( @io.swagger.v3.oas.annotations.parameters.RequestBody(description = "organisationCreationRequest") @Valid @NotNull @RequestBody OrganisationCreationRequest organisationCreationRequest, @Pattern(regexp = ORGANISATION_IDENTIFIER_FORMAT_REGEX, message = ORG_ID_VALIDATION_ERROR_MESSAGE) @@ -753,7 +753,10 @@ public ResponseEntity updatesOrganisationName( throw new InvalidRequest("Name or SRA Id not found"); } - return organisationService.updateOrganisationNameOrSra(organisationCreationRequest, orgId); + OrganisationResponse organisationResponse = organisationService.updateOrganisationNameOrSra(organisationCreationRequest, orgId); + + ResponseEntity resp = ResponseEntity.status(200).body(organisationResponse); + return resp; } diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/OrganisationService.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/OrganisationService.java index 2479b73763..e0eb5fab75 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/OrganisationService.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/OrganisationService.java @@ -46,7 +46,7 @@ OrganisationsDetailResponseV2 findByOrganisationStatusForV2Api(LocalDateTime for OrganisationEntityResponse retrieveOrganisation(String organisationIdentifier, boolean isPendingPbaRequired); - ResponseEntity updateOrganisationNameOrSra( + OrganisationResponse updateOrganisationNameOrSra( OrganisationCreationRequest organisationCreationRequest, String organisationIdentifier); OrganisationResponse updateOrganisation(OrganisationCreationRequest organisationCreationRequest, diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java index 2f5bc41eb5..85f4d25308 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java @@ -612,7 +612,7 @@ public OrganisationsDetailResponseV2 findByOrganisationStatusForV2Api(LocalDateT } @Override - public ResponseEntity updateOrganisationNameOrSra( + public OrganisationResponse updateOrganisationNameOrSra( OrganisationCreationRequest organisationCreationRequest, String organisationIdentifier) { var existingOrganisation = organisationRepository.findByOrganisationIdentifier(organisationIdentifier); @@ -625,7 +625,7 @@ public ResponseEntity updateOrganisationNameOrSra( var savedOrganisation = organisationRepository.save(existingOrganisation); - return ResponseEntity.status(200).body(savedOrganisation); + return new OrganisationResponse(savedOrganisation); } @Override diff --git a/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java b/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java index 885449ac6d..2c119b1e56 100644 --- a/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java +++ b/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java @@ -587,17 +587,17 @@ void testUpdateOrgNameAndSra() { assertThat(organisationCreationRequest.getName()).isNotEmpty(); assertThat(organisationCreationRequest.getSraId()).isNotEmpty(); - ResponseEntity updateResponseEntity = ResponseEntity.status(200).body(organisation); + when(organisationServiceMock.updateOrganisationNameOrSra(organisationCreationRequest, - organisation.getOrganisationIdentifier())).thenReturn(updateResponseEntity); + organisation.getOrganisationIdentifier())).thenReturn(new OrganisationResponse(organisation)); - ResponseEntity response = organisationInternalController - .updatesOrganisationName(organisationCreationRequest,organisation.getOrganisationIdentifier()); + ResponseEntity response = organisationInternalController + .updateOrganisationNameOrSra(organisationCreationRequest,organisation.getOrganisationIdentifier()); assertThat(response).isNotNull(); assertThat(response.getStatusCode()).isEqualTo(expectedHttpStatus); - assertThat(((Organisation) response.getBody()).getName()).isEqualTo(organisationCreationRequest.getName()); - assertThat(((Organisation) response.getBody()).getSraId()).isEqualTo(organisationCreationRequest.getSraId()); + assertThat(response.getBody().getOrganisationIdentifier()).isEqualTo(organisation.getOrganisationIdentifier()); + verify(organisationCreationRequestValidatorMock, times(1)) .validateOrganisationIdentifier(any(String.class)); diff --git a/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java b/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java index 8ea1b65a90..1deaa813bf 100644 --- a/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java +++ b/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java @@ -1952,7 +1952,7 @@ void test_updateOrganisationNameAndSra() { when(organisationRepository.save(organisationMock)).thenReturn(organisationMock); - ResponseEntity updatedOrganisation = sut.updateOrganisationNameOrSra( + OrganisationResponse updatedOrganisation = sut.updateOrganisationNameOrSra( organisationCreationRequest,orgIdentifier); assertThat(updatedOrganisation).isNotNull(); From dafd8107a265aab34aed874642d0f1ae1de20d30 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Thu, 29 Feb 2024 10:39:47 +0000 Subject: [PATCH 15/64] Update name sra for an organisation adding test cases --- .../controller/internal/OrganisationInternalController.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java index 3e37586aca..d16b7ac8bf 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java @@ -753,7 +753,8 @@ public ResponseEntity updateOrganisationNameOrSra( throw new InvalidRequest("Name or SRA Id not found"); } - OrganisationResponse organisationResponse = organisationService.updateOrganisationNameOrSra(organisationCreationRequest, orgId); + OrganisationResponse organisationResponse = organisationService + .updateOrganisationNameOrSra(organisationCreationRequest, orgId); ResponseEntity resp = ResponseEntity.status(200).body(organisationResponse); return resp; From 3cb3dbd293650c2a733a071b9b9dc32fb4876a10 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Thu, 29 Feb 2024 11:06:43 +0000 Subject: [PATCH 16/64] Update name sra for an organisation adding test cases --- .../service/impl/OrganisationServiceImpl.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java index 85f4d25308..b265106efe 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java @@ -64,7 +64,6 @@ import uk.gov.hmcts.reform.professionalapi.repository.PaymentAccountRepository; import uk.gov.hmcts.reform.professionalapi.repository.PrdEnumRepository; import uk.gov.hmcts.reform.professionalapi.repository.ProfessionalUserRepository; -import uk.gov.hmcts.reform.professionalapi.repository.UserAttributeRepository; import uk.gov.hmcts.reform.professionalapi.service.OrganisationService; import uk.gov.hmcts.reform.professionalapi.service.PrdEnumService; import uk.gov.hmcts.reform.professionalapi.service.ProfessionalUserService; @@ -92,8 +91,8 @@ import java.util.stream.Stream; import static java.lang.Boolean.TRUE; +import static org.apache.commons.lang.StringUtils.isNotBlank; import static org.apache.commons.lang3.ObjectUtils.isNotEmpty; -import static org.apache.commons.lang3.StringUtils.isNotBlank; import static org.springframework.util.CollectionUtils.isEmpty; import static uk.gov.hmcts.reform.professionalapi.controller.constants.ProfessionalApiConstants.ERROR_MSG_PARTIAL_SUCCESS; import static uk.gov.hmcts.reform.professionalapi.controller.constants.ProfessionalApiConstants.FALSE; @@ -131,8 +130,6 @@ public class OrganisationServiceImpl implements OrganisationService { @Autowired BulkCustomerDetailsRepository bulkCustomerDetailsRepository; @Autowired - UserAttributeRepository userAttributeRepository; - @Autowired UserAccountMapService userAccountMapService; @Autowired UserProfileFeignClient userProfileFeignClient; From 76e261c27ff43957a120655344e2f6dca1cc57ef Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Tue, 12 Mar 2024 21:15:52 +0000 Subject: [PATCH 17/64] fixing review comments --- ...rofessionalInternalUserFunctionalTest.java | 1 + .../UpdateOrgNameSraIdIntegrationTest.java | 2 ++ .../OrganisationInternalController.java | 2 +- .../service/impl/OrganisationServiceImpl.java | 31 +++++++++++++++---- .../impl/OrganisationServiceImplTest.java | 17 +++++++++- 5 files changed, 45 insertions(+), 8 deletions(-) diff --git a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java index 18ddc7b253..b73549c754 100644 --- a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java +++ b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java @@ -781,6 +781,7 @@ void updatePaymentAccountsShouldReturnForbiddenWhenToggledOff() { } @Test + @ToggleEnable(mapKey = "OrganisationInternalController.updateOrganisationNameOrSra", withFeature = false) @ExtendWith(FeatureToggleConditionExtension.class) void updateOrganisationNameAndSraShouldReturnSuccess() { log.info("updateOrganisationNameShouldReturnSuccess :: STARTED"); diff --git a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgNameSraIdIntegrationTest.java b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgNameSraIdIntegrationTest.java index 17e8efe078..14f0c6a974 100644 --- a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgNameSraIdIntegrationTest.java +++ b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgNameSraIdIntegrationTest.java @@ -43,6 +43,7 @@ void update_name_or_sra_with_invalid_name_and_sra_should_return_400() { assertThat(updateResponse.get("response_body").toString()).contains("Name or SRA Id not found"); } + @Test void update_name_or_sra_with_invalid_name_and_valid_sra_should_return_200() { OrganisationCreationRequest organisationUpdateRequest = organisationRequestWithAllFieldsAreUpdated() .name(null) @@ -53,6 +54,7 @@ void update_name_or_sra_with_invalid_name_and_valid_sra_should_return_200() { assertThat(updateResponse).containsEntry("http_status", 200); } + @Test void update_name_or_sra_with_invalid_sra_and_valid_name_should_return_200() { OrganisationCreationRequest organisationUpdateRequest = organisationRequestWithAllFieldsAreUpdated() .sraId(null) diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java index d16b7ac8bf..49a9d49d5d 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java @@ -750,7 +750,7 @@ public ResponseEntity updateOrganisationNameOrSra( organisationCreationRequestValidator.validateOrganisationIdentifier(orgId); if (isBlank(organisationCreationRequest.getName()) && isBlank(organisationCreationRequest.getSraId())) { - throw new InvalidRequest("Name or SRA Id not found"); + throw new InvalidRequest("Name or SRA Id is required"); } OrganisationResponse organisationResponse = organisationService diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java index b265106efe..5a8f6b74bf 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java @@ -149,6 +149,11 @@ public class OrganisationServiceImpl implements OrganisationService { @Value("${loggingComponentName}") private String loggingComponentName; + private static final String ATTRIBUTE_KEY = "regulators-0"; + + private static final String ATTRIBUTE_VALUE = "{\"regulatorType\":\"Solicitor Regulation Authority (SRA)\",\"organisationRegistrationNumber\":\"3456789100\"}"; + + @Override @Transactional public OrganisationResponse createOrganisationFrom( @@ -181,7 +186,6 @@ public OrganisationResponse createOrganisationFrom( if (organisationCreationRequest instanceof OrganisationOtherOrgsCreationRequest orgCreationRequestV2) { addAttributeToOrganisation(orgCreationRequestV2.getOrgAttributes(), organisation); } - return new OrganisationResponse(organisation); } @@ -613,13 +617,28 @@ public OrganisationResponse updateOrganisationNameOrSra( OrganisationCreationRequest organisationCreationRequest, String organisationIdentifier) { var existingOrganisation = organisationRepository.findByOrganisationIdentifier(organisationIdentifier); - if (isNotBlank(organisationCreationRequest.getName())) { - existingOrganisation.setName(RefDataUtil.removeEmptySpaces(organisationCreationRequest.getName())); - } - if (isNotBlank(organisationCreationRequest.getSraId())) { - existingOrganisation.setSraId(RefDataUtil.removeEmptySpaces(organisationCreationRequest.getSraId())); + if (existingOrganisation == null) { + throw new EmptyResultDataAccessException(ONE); + } else { + if (isNotBlank(organisationCreationRequest.getName())) { + existingOrganisation.setName(RefDataUtil.removeEmptySpaces(organisationCreationRequest.getName())); + } + if (isNotBlank(organisationCreationRequest.getSraId())) { + existingOrganisation.setSraId(RefDataUtil.removeEmptySpaces(organisationCreationRequest.getSraId())); + } } + OrgAttribute attribute = new OrgAttribute(); + attribute.setKey(RefDataUtil.removeEmptySpaces(ATTRIBUTE_KEY)); + attribute.setValue(RefDataUtil + .removeEmptySpaces(ATTRIBUTE_VALUE)); + attribute.setOrganisation(existingOrganisation); + orgAttributeRepository.save(attribute); + + List attributes = new ArrayList<>(); + attributes.add(attribute); + existingOrganisation.setOrgAttributes(attributes); + var savedOrganisation = organisationRepository.save(existingOrganisation); return new OrganisationResponse(savedOrganisation); diff --git a/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java b/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java index 1deaa813bf..6ea9422013 100644 --- a/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java +++ b/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java @@ -1934,13 +1934,20 @@ void test_updateStatusAndMessage() { @Test void test_updateOrganisationNameAndSra() { - Organisation organisationMock = mock(Organisation.class); String newName = "TestOrgName"; String newSraId = "TestSraId"; final String orgIdentifier = "9KS20WT"; organisationCreationRequest.setName(newName); organisationCreationRequest.setSraId(newSraId); + String orgId = UUID.randomUUID().toString().substring(0, 7); + + when(organisationRepository.findByOrganisationIdentifier(orgId)).thenReturn(null); + assertThrows(EmptyResultDataAccessException.class, () -> + sut.retrieveOrganisation(orgId, false)); + verify(organisationRepository, times(1)) + .findByOrganisationIdentifier(any(String.class)); + Organisation organisationMock = mock(Organisation.class); when(organisationRepository.findByOrganisationIdentifier(any(String.class))) .thenReturn(organisationMock); @@ -1950,6 +1957,10 @@ void test_updateOrganisationNameAndSra() { organisationMock.setName(newName); organisationMock.setSraId(newSraId); + OrgAttribute orgAttributeMock = mock(OrgAttribute.class); + + when(orgAttributeRepository.save(any(OrgAttribute.class))).thenReturn(orgAttributeMock); + when(organisationRepository.save(organisationMock)).thenReturn(organisationMock); OrganisationResponse updatedOrganisation = sut.updateOrganisationNameOrSra( @@ -1961,8 +1972,12 @@ void test_updateOrganisationNameAndSra() { .findByOrganisationIdentifier(orgIdentifier); verify(organisationRepository, times(1)) .save(organisationMock); + verify(orgAttributeRepository, times(1)) + .save(any(OrgAttribute.class)); } + + @Test void test_AllAttributesAddedToSuperUser() { prdEnums.add(new PrdEnum(new PrdEnumId(0, "SIDAM_ROLE"), From 88e1cff003594bf18c1e06f2a600a4457f9b3eb2 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Wed, 13 Mar 2024 09:23:45 +0000 Subject: [PATCH 18/64] fixing review comments --- .../professionalapi/service/impl/OrganisationServiceImpl.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java index 5a8f6b74bf..45c6f3de2f 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java @@ -151,7 +151,9 @@ public class OrganisationServiceImpl implements OrganisationService { private static final String ATTRIBUTE_KEY = "regulators-0"; - private static final String ATTRIBUTE_VALUE = "{\"regulatorType\":\"Solicitor Regulation Authority (SRA)\",\"organisationRegistrationNumber\":\"3456789100\"}"; + private static final String ATTRIBUTE_VALUE = + "{\"regulatorType\":\"Solicitor Regulation Authority (SRA)\"," + + "\"organisationRegistrationNumber\":\"3456789100\"}"; @Override From 6edef7d3ee1f48b53b5a024ddccd6f8c2d4cfc5b Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Wed, 13 Mar 2024 10:55:12 +0000 Subject: [PATCH 19/64] fixing review comments --- .../service/impl/OrganisationServiceImpl.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java index 45c6f3de2f..f9f8caa0a3 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java @@ -149,11 +149,7 @@ public class OrganisationServiceImpl implements OrganisationService { @Value("${loggingComponentName}") private String loggingComponentName; - private static final String ATTRIBUTE_KEY = "regulators-0"; - private static final String ATTRIBUTE_VALUE = - "{\"regulatorType\":\"Solicitor Regulation Authority (SRA)\"," - + "\"organisationRegistrationNumber\":\"3456789100\"}"; @Override @@ -617,7 +613,9 @@ public OrganisationsDetailResponseV2 findByOrganisationStatusForV2Api(LocalDateT @Override public OrganisationResponse updateOrganisationNameOrSra( OrganisationCreationRequest organisationCreationRequest, String organisationIdentifier) { - + final String ATTRIBUTE_KEY = "regulators-0"; + final String ATTRIBUTE_VALUE = "{\"regulatorType\":\"Solicitor Regulation Authority (SRA)\"," + + "\"organisationRegistrationNumber\":\""+organisationCreationRequest.getSraId()+"\"}"; var existingOrganisation = organisationRepository.findByOrganisationIdentifier(organisationIdentifier); if (existingOrganisation == null) { throw new EmptyResultDataAccessException(ONE); From 5e994275fbc0bc06251d32f27c644700ea38a3c9 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Wed, 13 Mar 2024 11:20:06 +0000 Subject: [PATCH 20/64] fixing review comments --- .../service/impl/OrganisationServiceImpl.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java index f9f8caa0a3..a60cf6147e 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java @@ -613,9 +613,9 @@ public OrganisationsDetailResponseV2 findByOrganisationStatusForV2Api(LocalDateT @Override public OrganisationResponse updateOrganisationNameOrSra( OrganisationCreationRequest organisationCreationRequest, String organisationIdentifier) { - final String ATTRIBUTE_KEY = "regulators-0"; - final String ATTRIBUTE_VALUE = "{\"regulatorType\":\"Solicitor Regulation Authority (SRA)\"," - + "\"organisationRegistrationNumber\":\""+organisationCreationRequest.getSraId()+"\"}"; + final String attributeKey = "regulators-0"; + final String attributeValue = "{\"regulatorType\":\"Solicitor Regulation Authority (SRA)\"," + + "\"organisationRegistrationNumber\":\"" + organisationCreationRequest.getSraId() + "\"}"; var existingOrganisation = organisationRepository.findByOrganisationIdentifier(organisationIdentifier); if (existingOrganisation == null) { throw new EmptyResultDataAccessException(ONE); @@ -629,9 +629,9 @@ public OrganisationResponse updateOrganisationNameOrSra( } OrgAttribute attribute = new OrgAttribute(); - attribute.setKey(RefDataUtil.removeEmptySpaces(ATTRIBUTE_KEY)); + attribute.setKey(RefDataUtil.removeEmptySpaces(attributeKey)); attribute.setValue(RefDataUtil - .removeEmptySpaces(ATTRIBUTE_VALUE)); + .removeEmptySpaces(attributeValue)); attribute.setOrganisation(existingOrganisation); orgAttributeRepository.save(attribute); From 357d65f0d9d1b57032d23337c43e52bf72204117 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Wed, 20 Mar 2024 18:56:14 +0000 Subject: [PATCH 21/64] Update name sra for an organisation adding test cases --- .../UpdateOrgNameSraIdIntegrationTest.java | 29 ++++++++++++++----- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgNameSraIdIntegrationTest.java b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgNameSraIdIntegrationTest.java index 14f0c6a974..aa2dc36f65 100644 --- a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgNameSraIdIntegrationTest.java +++ b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgNameSraIdIntegrationTest.java @@ -32,35 +32,50 @@ void update_name_or_sra_with_bad_request_should_return_400() { @Test void update_name_or_sra_with_invalid_name_and_sra_should_return_400() { + java.util.Map responseForOrganisationCreation = professionalReferenceDataClient + .createOrganisation(organisationRequestWithAllFieldsAreUpdated().build()); + OrganisationCreationRequest organisationUpdateRequest = organisationRequestWithAllFieldsAreUpdated() .name("") - .sraId(null) + .sraId("") .build(); + Map updateResponse = professionalReferenceDataClient - .updateOrgNameSraIdStatus(organisationUpdateRequest, hmctsAdmin,getOrganisationId()); + .updateOrgNameSraIdStatus(organisationUpdateRequest, + hmctsAdmin,(String) responseForOrganisationCreation.get(ORG_IDENTIFIER)); assertThat(updateResponse).containsEntry("http_status", "400"); - assertThat(updateResponse.get("response_body").toString()).contains("Name or SRA Id not found"); + assertThat(updateResponse.get("response_body").toString()).contains("Name or SRA Id is required"); } @Test void update_name_or_sra_with_invalid_name_and_valid_sra_should_return_200() { + java.util.Map responseForOrganisationCreation = professionalReferenceDataClient + .createOrganisation(organisationRequestWithAllFieldsAreUpdated().build()); + OrganisationCreationRequest organisationUpdateRequest = organisationRequestWithAllFieldsAreUpdated() - .name(null) + .name("") .build(); + Map updateResponse = professionalReferenceDataClient - .updateOrgNameSraIdStatus(organisationUpdateRequest, hmctsAdmin,getOrganisationId()); + .updateOrgNameSraIdStatus(organisationUpdateRequest, + hmctsAdmin,(String)responseForOrganisationCreation.get(ORG_IDENTIFIER)); assertThat(updateResponse).containsEntry("http_status", 200); } @Test void update_name_or_sra_with_invalid_sra_and_valid_name_should_return_200() { + java.util.Map responseForOrganisationCreation = professionalReferenceDataClient + .createOrganisation(organisationRequestWithAllFieldsAreUpdated().build()); + OrganisationCreationRequest organisationUpdateRequest = organisationRequestWithAllFieldsAreUpdated() - .sraId(null) + .sraId(" ") .build(); + Map updateResponse = professionalReferenceDataClient - .updateOrgNameSraIdStatus(organisationUpdateRequest, hmctsAdmin,getOrganisationId()); + .updateOrgNameSraIdStatus(organisationUpdateRequest, + hmctsAdmin,(String)responseForOrganisationCreation.get(ORG_IDENTIFIER)); assertThat(updateResponse).containsEntry("http_status", 200); } From fd295ab53c6efcede255e29253907b101f37de5a Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Wed, 20 Mar 2024 19:47:53 +0000 Subject: [PATCH 22/64] Update name sra for an organisation adding test cases --- .../professionalapi/ProfessionalInternalUserFunctionalTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java index b73549c754..9ccda24d94 100644 --- a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java +++ b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java @@ -782,7 +782,6 @@ void updatePaymentAccountsShouldReturnForbiddenWhenToggledOff() { @Test @ToggleEnable(mapKey = "OrganisationInternalController.updateOrganisationNameOrSra", withFeature = false) - @ExtendWith(FeatureToggleConditionExtension.class) void updateOrganisationNameAndSraShouldReturnSuccess() { log.info("updateOrganisationNameShouldReturnSuccess :: STARTED"); String updatedName = "updatedName"; From 8dc916ef03187014b4d1841358ce5c47fb2e4b2f Mon Sep 17 00:00:00 2001 From: SabinaHMCTS <139119493+SabinaHMCTS@users.noreply.github.com> Date: Tue, 14 May 2024 21:14:52 +0100 Subject: [PATCH 23/64] Update ProfessionalInternalUserFunctionalTest.java --- .../professionalapi/ProfessionalInternalUserFunctionalTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java index 9ccda24d94..5f523a4e78 100644 --- a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java +++ b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java @@ -808,7 +808,7 @@ void updateOrganisationNameAndSraShouldReturnSuccess() { assertThat(orgUpdatedNameResponse.get("name").toString()).contains(updatedName); assertNotNull(orgUpdatedNameResponse.get("sraId")); assertThat(orgUpdatedNameResponse.get("sraId").toString()).contains(updatedSra); - + assertThat(orgUpdatedNameResponse.get("orgAttributes").toString()).contains("regulators-0"); log.info("updateOrganisationNameShouldReturnSuccess :: END"); } From 94b25b5319cff605be5864a1bb39cc29756b9f5b Mon Sep 17 00:00:00 2001 From: SabinaHMCTS <139119493+SabinaHMCTS@users.noreply.github.com> Date: Tue, 14 May 2024 21:34:54 +0100 Subject: [PATCH 24/64] Update ProfessionalInternalUserFunctionalTest.java --- .../professionalapi/ProfessionalInternalUserFunctionalTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java index 5f523a4e78..b8607b9ffe 100644 --- a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java +++ b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java @@ -808,7 +808,7 @@ void updateOrganisationNameAndSraShouldReturnSuccess() { assertThat(orgUpdatedNameResponse.get("name").toString()).contains(updatedName); assertNotNull(orgUpdatedNameResponse.get("sraId")); assertThat(orgUpdatedNameResponse.get("sraId").toString()).contains(updatedSra); - assertThat(orgUpdatedNameResponse.get("orgAttributes").toString()).contains("regulators-0"); + log.info("updateOrganisationNameShouldReturnSuccess :: END"); } From 0ae9a035e7a4000816706fb1d4bb5a61ef1e487f Mon Sep 17 00:00:00 2001 From: SabinaHMCTS <139119493+SabinaHMCTS@users.noreply.github.com> Date: Tue, 14 May 2024 22:11:31 +0100 Subject: [PATCH 25/64] Update OrganisationServiceImpl.java --- .../professionalapi/service/impl/OrganisationServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java index a60cf6147e..ddaa655136 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java @@ -611,6 +611,7 @@ public OrganisationsDetailResponseV2 findByOrganisationStatusForV2Api(LocalDateT } @Override + @Transactional public OrganisationResponse updateOrganisationNameOrSra( OrganisationCreationRequest organisationCreationRequest, String organisationIdentifier) { final String attributeKey = "regulators-0"; From dbefdbb4089509853084a81586527e66c8f9895d Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Tue, 11 Jun 2024 18:12:33 +0100 Subject: [PATCH 26/64] update admin unit tests --- .../controller/constants/ProfessionalApiConstants.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/constants/ProfessionalApiConstants.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/constants/ProfessionalApiConstants.java index 1cdd85f78c..c10af83530 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/constants/ProfessionalApiConstants.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/constants/ProfessionalApiConstants.java @@ -21,9 +21,6 @@ private ProfessionalApiConstants() { public static final String NO_ORG_FOUND_FOR_GIVEN_ID = "No Organisation was found with the given organisationIdentifier "; - public static final String NO_CONTACT_FOUND_FOR_GIVEN_ORG - = "No Contact Information was found with the given organisationIdentifier "; - public static final String ORG_NOT_ACTIVE_NO_USERS_RETURNED = "Organisation is not Active hence not returning any users"; public static final String ERROR_MESSAGE_403_FORBIDDEN = "403 Forbidden"; @@ -73,7 +70,6 @@ private ProfessionalApiConstants() { public static final String EMPTY_USER_ID = "User Id cannot be empty"; public static final String ERROR_MSG_NO_ORGANISATION_FOUND = "No organisation belongs to given email"; - public static final String ERROR_MSG_EMAIL_FOUND = "email address "; public static final String ERROR_MSG_NO_PBA_FOUND = "No PBAs associated with given email"; public static final String PBA_STATUS_MESSAGE_ACCEPTED = "Edited by Admin"; public static final String PBA_STATUS_MESSAGE_AUTO_ACCEPTED = "Auto approved by Admin"; From 31d9f06fc2b1f757b5609eac7f64642e59c0b385 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Tue, 11 Jun 2024 21:32:47 +0100 Subject: [PATCH 27/64] update admin unit tests --- .../service/impl/OrganisationServiceImpl.java | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java index ddaa655136..1974f9a70b 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java @@ -626,20 +626,18 @@ public OrganisationResponse updateOrganisationNameOrSra( } if (isNotBlank(organisationCreationRequest.getSraId())) { existingOrganisation.setSraId(RefDataUtil.removeEmptySpaces(organisationCreationRequest.getSraId())); + OrgAttribute attribute = new OrgAttribute(); + attribute.setKey(RefDataUtil.removeEmptySpaces(attributeKey)); + attribute.setValue(RefDataUtil + .removeEmptySpaces(attributeValue)); + attribute.setOrganisation(existingOrganisation); + orgAttributeRepository.save(attribute); + List attributes = new ArrayList<>(); + attributes.add(attribute); + existingOrganisation.setOrgAttributes(attributes); } } - OrgAttribute attribute = new OrgAttribute(); - attribute.setKey(RefDataUtil.removeEmptySpaces(attributeKey)); - attribute.setValue(RefDataUtil - .removeEmptySpaces(attributeValue)); - attribute.setOrganisation(existingOrganisation); - orgAttributeRepository.save(attribute); - - List attributes = new ArrayList<>(); - attributes.add(attribute); - existingOrganisation.setOrgAttributes(attributes); - var savedOrganisation = organisationRepository.save(existingOrganisation); return new OrganisationResponse(savedOrganisation); From 1a9631141329d94c8dcc5dd0830b4f36078b05a7 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Fri, 23 Aug 2024 16:44:45 +0100 Subject: [PATCH 28/64] update functional tests --- ...rofessionalInternalUserFunctionalTest.java | 47 +++++++++- .../client/ProfessionalApiClient.java | 2 +- .../UpdateOrgNameSraIdIntegrationTest.java | 4 + .../util/ProfessionalReferenceDataClient.java | 1 + .../OrganisationInternalController.java | 14 +-- .../OrganisationNameSraUpdateRequest.java | 27 ++++++ .../service/OrganisationService.java | 5 +- .../service/impl/OrganisationServiceImpl.java | 85 ++++++++++++------- .../OrganisationInternalControllerTest.java | 24 +++--- .../impl/OrganisationServiceImplTest.java | 17 ++-- 10 files changed, 166 insertions(+), 60 deletions(-) create mode 100644 src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationNameSraUpdateRequest.java diff --git a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java index b8607b9ffe..5cba1c8933 100644 --- a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java +++ b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java @@ -16,6 +16,7 @@ import uk.gov.hmcts.reform.professionalapi.controller.request.MfaUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.NewUserCreationRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationCreationRequest; +import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationNameSraUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.PbaRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.PbaUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.UpdatePbaRequest; @@ -785,7 +786,7 @@ void updatePaymentAccountsShouldReturnForbiddenWhenToggledOff() { void updateOrganisationNameAndSraShouldReturnSuccess() { log.info("updateOrganisationNameShouldReturnSuccess :: STARTED"); String updatedName = "updatedName"; - String updatedSra = "updatedSraId"; + String updatedSra = randomAlphabetic(7); Map response = professionalApiClient.createOrganisation(); String organisationIdentifier = (String) response.get("organisationIdentifier"); assertThat(organisationIdentifier).isNotEmpty(); @@ -798,6 +799,12 @@ void updateOrganisationNameAndSraShouldReturnSuccess() { OrganisationCreationRequest organisationCreationRequest = createOrganisationRequest() .name(updatedName).sraId(updatedSra).build(); + OrganisationNameSraUpdateRequest organisationNameSraUpdateRequest = + new OrganisationNameSraUpdateRequest(updatedName,updatedSra); + + organisationCreationRequest.setSraId(organisationNameSraUpdateRequest.getSraId()); + organisationCreationRequest.setName(organisationNameSraUpdateRequest.getName()); + professionalApiClient.updatesOrganisationName(organisationCreationRequest, hmctsAdmin,organisationIdentifier, OK); @@ -812,6 +819,44 @@ void updateOrganisationNameAndSraShouldReturnSuccess() { log.info("updateOrganisationNameShouldReturnSuccess :: END"); } + @Test + @ToggleEnable(mapKey = "OrganisationInternalController.updateOrganisationNameOrSra", withFeature = false) + void updateOrganisationNameAndSraShouldReturnFailure() { + log.info("updateOrganisationNameShouldReturnSuccess :: STARTED"); + String updatedName = "updatedName"; + String updatedSra = "updatedSraId"; + Map response = professionalApiClient.createOrganisation(); + String organisationIdentifier = (String) response.get("organisationIdentifier"); + assertThat(organisationIdentifier).isNotEmpty(); + + JsonPath orgResponse = professionalApiClient.retrieveOrganisationDetails( + organisationIdentifier, hmctsAdmin,OK); + + assertNotNull(orgResponse.get("name")); + + OrganisationCreationRequest organisationCreationRequest = createOrganisationRequest() + .name(updatedName).sraId(updatedSra).build(); + + OrganisationNameSraUpdateRequest organisationNameSraUpdateRequest = + new OrganisationNameSraUpdateRequest(updatedName,updatedSra); + + organisationCreationRequest.setSraId(organisationNameSraUpdateRequest.getSraId()); + organisationCreationRequest.setName(organisationNameSraUpdateRequest.getName()); + + professionalApiClient.updatesOrganisationName(organisationCreationRequest, + hmctsAdmin,organisationIdentifier, OK); + + JsonPath orgUpdatedNameResponse = professionalApiClient.retrieveOrganisationDetails( + organisationIdentifier, hmctsAdmin,OK); + assertThat(response).isNotNull(); + assertNotNull(orgUpdatedNameResponse.get("name")); + assertThat(orgUpdatedNameResponse.get("name").toString()).contains(updatedName); + assertNotNull(orgUpdatedNameResponse.get("sraId")); + assertThat(orgUpdatedNameResponse.get("sraId").toString()).contains(updatedSra); + + log.info("updateOrganisationNameShouldReturnSuccess :: END"); + } + @Test void findOrganisationsWithPaginationShouldReturnSuccess() { log.info("findOrganisationsWithPaginationShouldReturnSuccess :: STARTED"); diff --git a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java index 5d8cc23eae..5ac1d1d019 100644 --- a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java +++ b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java @@ -1316,7 +1316,7 @@ public void updateOrganisation(OrganisationCreationRequest organisationCreationR } public void updatesOrganisationName(OrganisationCreationRequest organisationCreationRequest, String role, - String organisationIdentifier, HttpStatus expectedStatus) { + String organisationIdentifier, HttpStatus expectedStatus) { Response response = getMultipleAuthHeadersInternal() .body(organisationCreationRequest) diff --git a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgNameSraIdIntegrationTest.java b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgNameSraIdIntegrationTest.java index aa2dc36f65..aa488c95ef 100644 --- a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgNameSraIdIntegrationTest.java +++ b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgNameSraIdIntegrationTest.java @@ -28,6 +28,10 @@ void update_name_or_sra_with_bad_request_should_return_400() { .updateOrgNameSraIdStatus(null, hmctsAdmin,getOrganisationId()); assertThat(updateResponse).containsEntry("http_status", "400"); + assertThat(updateResponse.get("response_body").toString()) + .contains("Required request body is missing:" + + " public org.springframework.http.ResponseEntity" + + ""); } @Test diff --git a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/util/ProfessionalReferenceDataClient.java b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/util/ProfessionalReferenceDataClient.java index f613185c10..6c341cfa34 100644 --- a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/util/ProfessionalReferenceDataClient.java +++ b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/util/ProfessionalReferenceDataClient.java @@ -1042,6 +1042,7 @@ public Map updateOrgNameSraIdStatus( Map organisationResponse = new HashMap<>(); organisationResponse.put("http_status", responseEntity.getStatusCodeValue()); + organisationResponse.put("response_body", responseEntity.getBody()); return organisationResponse; } diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java index 49a9d49d5d..3116411b2a 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java @@ -34,6 +34,7 @@ import uk.gov.hmcts.reform.professionalapi.controller.request.NewUserCreationRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationByProfileIdsRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationCreationRequest; +import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationNameSraUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.PbaRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.UpdatePbaRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.validator.impl.OrganisationByProfileIdsRequestValidator; @@ -740,23 +741,24 @@ public ResponseEntity retrieveOrganisationByUserId( @ResponseStatus(value = HttpStatus.CREATED) @ResponseBody @Secured({"prd-admin"}) - public ResponseEntity updateOrganisationNameOrSra( + public ResponseEntity updateOrganisationNameOrSra( @io.swagger.v3.oas.annotations.parameters.RequestBody(description = "organisationCreationRequest") - @Valid @NotNull @RequestBody OrganisationCreationRequest organisationCreationRequest, + @Valid @NotNull @RequestBody OrganisationNameSraUpdateRequest organisationNameSraUpdateRequest, @Pattern(regexp = ORGANISATION_IDENTIFIER_FORMAT_REGEX, message = ORG_ID_VALIDATION_ERROR_MESSAGE) @PathVariable("orgId") @NotBlank String organisationIdentifier) { var orgId = removeEmptySpaces(organisationIdentifier); organisationCreationRequestValidator.validateOrganisationIdentifier(orgId); - if (isBlank(organisationCreationRequest.getName()) && isBlank(organisationCreationRequest.getSraId())) { + if (isBlank(organisationNameSraUpdateRequest.getName()) + && isBlank(organisationNameSraUpdateRequest.getSraId())) { throw new InvalidRequest("Name or SRA Id is required"); } - OrganisationResponse organisationResponse = organisationService - .updateOrganisationNameOrSra(organisationCreationRequest, orgId); + OrganisationsDetailResponse organisationsDetailResponse = organisationService + .updateOrganisationNameOrSra(organisationNameSraUpdateRequest, orgId); - ResponseEntity resp = ResponseEntity.status(200).body(organisationResponse); + ResponseEntity resp = ResponseEntity.status(200).body(organisationsDetailResponse); return resp; } diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationNameSraUpdateRequest.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationNameSraUpdateRequest.java new file mode 100644 index 0000000000..8b8edc79e8 --- /dev/null +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationNameSraUpdateRequest.java @@ -0,0 +1,27 @@ +package uk.gov.hmcts.reform.professionalapi.controller.request; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Builder; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotNull; + +@Getter +@Setter +@Builder(builderMethodName = "anOrganisationCreationRequest") +public class OrganisationNameSraUpdateRequest { + + @NotNull + private String name; + private String sraId; + + @JsonCreator + public OrganisationNameSraUpdateRequest( + @JsonProperty("name") String name, + @JsonProperty("sraId") String sraId) { + this.name = name; + this.sraId = sraId; + } +} \ No newline at end of file diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/OrganisationService.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/OrganisationService.java index e0eb5fab75..68475b9d9b 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/OrganisationService.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/OrganisationService.java @@ -5,6 +5,7 @@ import uk.gov.hmcts.reform.professionalapi.controller.request.ContactInformationCreationRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrgAttributeRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationCreationRequest; +import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationNameSraUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.PbaRequest; import uk.gov.hmcts.reform.professionalapi.controller.response.BulkCustomerOrganisationsDetailResponse; import uk.gov.hmcts.reform.professionalapi.controller.response.DeleteOrganisationResponse; @@ -46,8 +47,8 @@ OrganisationsDetailResponseV2 findByOrganisationStatusForV2Api(LocalDateTime for OrganisationEntityResponse retrieveOrganisation(String organisationIdentifier, boolean isPendingPbaRequired); - OrganisationResponse updateOrganisationNameOrSra( - OrganisationCreationRequest organisationCreationRequest, String organisationIdentifier); + OrganisationsDetailResponse updateOrganisationNameOrSra( + OrganisationNameSraUpdateRequest organisationNameSraUpdateRequest, String organisationIdentifier); OrganisationResponse updateOrganisation(OrganisationCreationRequest organisationCreationRequest, String organisationIdentifier, Boolean isOrgApprovalRequest); diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java index 1974f9a70b..161b25d10b 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java @@ -26,6 +26,7 @@ import uk.gov.hmcts.reform.professionalapi.controller.request.InvalidRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrgAttributeRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationCreationRequest; +import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationNameSraUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationOtherOrgsCreationRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.PbaRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.RetrieveUserProfilesRequest; @@ -610,39 +611,6 @@ public OrganisationsDetailResponseV2 findByOrganisationStatusForV2Api(LocalDateT return organisationsDetailResponse; } - @Override - @Transactional - public OrganisationResponse updateOrganisationNameOrSra( - OrganisationCreationRequest organisationCreationRequest, String organisationIdentifier) { - final String attributeKey = "regulators-0"; - final String attributeValue = "{\"regulatorType\":\"Solicitor Regulation Authority (SRA)\"," - + "\"organisationRegistrationNumber\":\"" + organisationCreationRequest.getSraId() + "\"}"; - var existingOrganisation = organisationRepository.findByOrganisationIdentifier(organisationIdentifier); - if (existingOrganisation == null) { - throw new EmptyResultDataAccessException(ONE); - } else { - if (isNotBlank(organisationCreationRequest.getName())) { - existingOrganisation.setName(RefDataUtil.removeEmptySpaces(organisationCreationRequest.getName())); - } - if (isNotBlank(organisationCreationRequest.getSraId())) { - existingOrganisation.setSraId(RefDataUtil.removeEmptySpaces(organisationCreationRequest.getSraId())); - OrgAttribute attribute = new OrgAttribute(); - attribute.setKey(RefDataUtil.removeEmptySpaces(attributeKey)); - attribute.setValue(RefDataUtil - .removeEmptySpaces(attributeValue)); - attribute.setOrganisation(existingOrganisation); - orgAttributeRepository.save(attribute); - List attributes = new ArrayList<>(); - attributes.add(attribute); - existingOrganisation.setOrgAttributes(attributes); - } - } - - var savedOrganisation = organisationRepository.save(existingOrganisation); - - return new OrganisationResponse(savedOrganisation); - } - @Override public OrganisationResponse updateOrganisation( OrganisationCreationRequest organisationCreationRequest, String organisationIdentifier, @@ -1092,5 +1060,56 @@ private boolean getMoreAvailable(Page pageableOrganisations) { return !pageableOrganisations.isLast(); } + public OrgAttribute saveOrganisationAttributes(Organisation existingOrganisation, + OrganisationNameSraUpdateRequest organisationNameSraUpdateRequest) { + final String attributeKey = "regulators-0"; + final String attributeValue = "{\"regulatorType\":\"Solicitor Regulation Authority (SRA)\"," + + "\"organisationRegistrationNumber\":\"" + organisationNameSraUpdateRequest.getSraId() + "\"}"; + + existingOrganisation.setSraId( + RefDataUtil.removeEmptySpaces(organisationNameSraUpdateRequest.getSraId())); + OrgAttribute attribute = new OrgAttribute(); + attribute.setKey(RefDataUtil.removeEmptySpaces(attributeKey)); + attribute.setValue(RefDataUtil + .removeEmptySpaces(attributeValue)); + attribute.setOrganisation(existingOrganisation); + OrgAttribute savedAttribute = orgAttributeRepository.save(attribute); + List attributes = new ArrayList<>(); + attributes.add(attribute); + existingOrganisation.setOrgAttributes(attributes); + + return savedAttribute; + } + + @Override + @Transactional + public OrganisationsDetailResponse updateOrganisationNameOrSra( + OrganisationNameSraUpdateRequest organisationNameSraUpdateRequest, String organisationIdentifier) { + + var existingOrganisation = organisationRepository.findByOrganisationIdentifier(organisationIdentifier); + OrgAttribute savedAttribute = null; + if (existingOrganisation == null) { + throw new EmptyResultDataAccessException(ONE); + } else { + if (isNotBlank(organisationNameSraUpdateRequest.getName())) { + existingOrganisation.setName(RefDataUtil.removeEmptySpaces(organisationNameSraUpdateRequest.getName())); + } + if (isNotBlank(organisationNameSraUpdateRequest.getSraId())) { + savedAttribute = saveOrganisationAttributes(existingOrganisation,organisationNameSraUpdateRequest); + } + } + Organisation savedOrganisation; + if (savedAttribute != null) { + savedOrganisation = organisationRepository.save(existingOrganisation); + } else { + log.error("{}:: error saving Organisation Attribute::", loggingComponentName); + throw new EmptyResultDataAccessException("Error saving organisation attributes", 1); + } + + return new OrganisationsDetailResponse(List.of(savedOrganisation),false,false,false); + } + + + } diff --git a/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java b/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java index 2c119b1e56..b2701e95d1 100644 --- a/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java +++ b/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java @@ -24,6 +24,7 @@ import uk.gov.hmcts.reform.professionalapi.controller.request.MfaUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.NewUserCreationRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationCreationRequest; +import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationNameSraUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationOtherOrgsCreationRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.PbaRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.UserCreationRequest; @@ -88,6 +89,7 @@ class OrganisationInternalControllerTest { private PaymentAccountService paymentAccountServiceMock; private Organisation organisation; private OrganisationCreationRequest organisationCreationRequest; + private OrganisationNameSraUpdateRequest organisationNameSraUpdateRequest; private OrganisationOtherOrgsCreationRequest organisationOtherOrgsCreationRequest; private OrganisationCreationRequestValidator organisationCreationRequestValidatorMock; private PaymentAccountValidator paymentAccountValidatorMock; @@ -162,7 +164,7 @@ void setUp() throws Exception { organisationOtherOrgsCreationRequest = new OrganisationOtherOrgsCreationRequest("test", "PENDING", null, "sra-id", "false", "number02", "company-url", userCreationRequest, null, null,"Doctor",null); - + organisationNameSraUpdateRequest = new OrganisationNameSraUpdateRequest("name","sraId"); organisation.setOrganisationIdentifier("AK57L4T"); organisationResponse = new OrganisationResponse(organisation); @@ -580,29 +582,29 @@ void testUpdateOrgNameAndSra() { String updatedSra = "NewSRA"; organisation.setName(updatedName); organisation.setSraId(updatedSra); - organisationCreationRequest.setName(updatedName); - organisationCreationRequest.setSraId(updatedSra); + organisationNameSraUpdateRequest.setName(updatedName); + organisationNameSraUpdateRequest.setSraId(updatedSra); doNothing().when(organisationCreationRequestValidatorMock).validateOrganisationIdentifier(any(String.class)); - assertThat(organisationCreationRequest.getName()).isNotEmpty(); - assertThat(organisationCreationRequest.getSraId()).isNotEmpty(); + assertThat(organisationNameSraUpdateRequest.getName()).isNotEmpty(); + assertThat(organisationNameSraUpdateRequest.getSraId()).isNotEmpty(); - when(organisationServiceMock.updateOrganisationNameOrSra(organisationCreationRequest, - organisation.getOrganisationIdentifier())).thenReturn(new OrganisationResponse(organisation)); + when(organisationServiceMock.updateOrganisationNameOrSra(organisationNameSraUpdateRequest, + organisation.getOrganisationIdentifier())).thenReturn(new OrganisationsDetailResponse(List.of(organisation), + false,false,false)); - ResponseEntity response = organisationInternalController - .updateOrganisationNameOrSra(organisationCreationRequest,organisation.getOrganisationIdentifier()); + ResponseEntity response = organisationInternalController + .updateOrganisationNameOrSra(organisationNameSraUpdateRequest,organisation.getOrganisationIdentifier()); assertThat(response).isNotNull(); assertThat(response.getStatusCode()).isEqualTo(expectedHttpStatus); - assertThat(response.getBody().getOrganisationIdentifier()).isEqualTo(organisation.getOrganisationIdentifier()); verify(organisationCreationRequestValidatorMock, times(1)) .validateOrganisationIdentifier(any(String.class)); verify(organisationServiceMock, times(1)) - .updateOrganisationNameOrSra(organisationCreationRequest, organisation.getOrganisationIdentifier()); + .updateOrganisationNameOrSra(organisationNameSraUpdateRequest, organisation.getOrganisationIdentifier()); } diff --git a/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java b/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java index 6ea9422013..1f29e0f1b3 100644 --- a/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java +++ b/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java @@ -32,6 +32,7 @@ import uk.gov.hmcts.reform.professionalapi.controller.request.InvalidRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrgAttributeRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationCreationRequest; +import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationNameSraUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationOtherOrgsCreationRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.PbaRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.UserCreationRequest; @@ -181,6 +182,8 @@ class OrganisationServiceImplTest { private ContactInformationCreationRequest contactInformationCreationRequest; private OrganisationCreationRequest organisationCreationRequest; + private OrganisationNameSraUpdateRequest organisationNameSraUpdateRequest; + private OrganisationOtherOrgsCreationRequest organisationOtherOrgsCreationRequest; private List organisations; @@ -276,6 +279,8 @@ void setUp() { contactInformationCreationRequests, "Doctor", orgAttributeRequests); deleteOrganisationResponse = new DeleteOrganisationResponse(204, "successfully deleted"); + organisationNameSraUpdateRequest = new OrganisationNameSraUpdateRequest("name","sraId"); + when(dxAddressRepositoryMock.save(any(DxAddress.class))).thenReturn(dxAddress); when(contactInformationRepositoryMock.save(any(ContactInformation.class))).thenReturn(contactInformation); when(professionalUserRepositoryMock.save(any(ProfessionalUser.class))).thenReturn(professionalUser); @@ -1937,8 +1942,8 @@ void test_updateOrganisationNameAndSra() { String newName = "TestOrgName"; String newSraId = "TestSraId"; final String orgIdentifier = "9KS20WT"; - organisationCreationRequest.setName(newName); - organisationCreationRequest.setSraId(newSraId); + organisationNameSraUpdateRequest.setName(newName); + organisationNameSraUpdateRequest.setSraId(newSraId); String orgId = UUID.randomUUID().toString().substring(0, 7); when(organisationRepository.findByOrganisationIdentifier(orgId)).thenReturn(null); @@ -1951,8 +1956,8 @@ void test_updateOrganisationNameAndSra() { when(organisationRepository.findByOrganisationIdentifier(any(String.class))) .thenReturn(organisationMock); - assertNotNull(organisationCreationRequest.getName()); - assertNotNull(organisationCreationRequest.getSraId()); + assertNotNull(organisationNameSraUpdateRequest.getName()); + assertNotNull(organisationNameSraUpdateRequest.getSraId()); organisationMock.setName(newName); organisationMock.setSraId(newSraId); @@ -1963,8 +1968,8 @@ void test_updateOrganisationNameAndSra() { when(organisationRepository.save(organisationMock)).thenReturn(organisationMock); - OrganisationResponse updatedOrganisation = sut.updateOrganisationNameOrSra( - organisationCreationRequest,orgIdentifier); + OrganisationsDetailResponse updatedOrganisation = sut.updateOrganisationNameOrSra( + organisationNameSraUpdateRequest,orgIdentifier); assertThat(updatedOrganisation).isNotNull(); From ed30490569da54d54a61f1e75fb494cbee745a69 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS <139119493+SabinaHMCTS@users.noreply.github.com> Date: Tue, 27 Aug 2024 14:22:46 +0100 Subject: [PATCH 29/64] Update OrganisationServiceImpl.java --- .../service/impl/OrganisationServiceImpl.java | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java index 161b25d10b..61123b4d54 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java @@ -1087,7 +1087,7 @@ public OrganisationsDetailResponse updateOrganisationNameOrSra( OrganisationNameSraUpdateRequest organisationNameSraUpdateRequest, String organisationIdentifier) { var existingOrganisation = organisationRepository.findByOrganisationIdentifier(organisationIdentifier); - OrgAttribute savedAttribute = null; + Organisation savedOrganisation = null; if (existingOrganisation == null) { throw new EmptyResultDataAccessException(ONE); } else { @@ -1095,15 +1095,13 @@ public OrganisationsDetailResponse updateOrganisationNameOrSra( existingOrganisation.setName(RefDataUtil.removeEmptySpaces(organisationNameSraUpdateRequest.getName())); } if (isNotBlank(organisationNameSraUpdateRequest.getSraId())) { - savedAttribute = saveOrganisationAttributes(existingOrganisation,organisationNameSraUpdateRequest); + OrgAttribute savedAttribute = saveOrganisationAttributes(existingOrganisation,organisationNameSraUpdateRequest); + if (savedAttribute == null) { + log.error("{}:: error saving Organisation Attribute::", loggingComponentName); + throw new EmptyResultDataAccessException("Error saving organisation attributes", 1); + } } - } - Organisation savedOrganisation; - if (savedAttribute != null) { savedOrganisation = organisationRepository.save(existingOrganisation); - } else { - log.error("{}:: error saving Organisation Attribute::", loggingComponentName); - throw new EmptyResultDataAccessException("Error saving organisation attributes", 1); } return new OrganisationsDetailResponse(List.of(savedOrganisation),false,false,false); From 76a321d6162c5ae6a1913d330f2bd4264c97cf5b Mon Sep 17 00:00:00 2001 From: SabinaHMCTS <139119493+SabinaHMCTS@users.noreply.github.com> Date: Tue, 27 Aug 2024 16:37:51 +0100 Subject: [PATCH 30/64] Update OrganisationInternalController.java --- .../controller/internal/OrganisationInternalController.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java index dd816de7e2..ba68825488 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java @@ -745,7 +745,6 @@ public ResponseEntity retrieveOrganisationByUserId( public ResponseEntity updateOrganisationNameOrSra( @io.swagger.v3.oas.annotations.parameters.RequestBody(description = "organisationCreationRequest") @Valid @NotNull @RequestBody OrganisationNameSraUpdateRequest organisationNameSraUpdateRequest, - @Pattern(regexp = ORGANISATION_IDENTIFIER_FORMAT_REGEX, message = ORG_ID_VALIDATION_ERROR_MESSAGE) @PathVariable("orgId") @NotBlank String organisationIdentifier) { var orgId = removeEmptySpaces(organisationIdentifier); From 69971f47bfc1e29e0cc3b6387f9564af51dd315c Mon Sep 17 00:00:00 2001 From: SabinaHMCTS <139119493+SabinaHMCTS@users.noreply.github.com> Date: Tue, 27 Aug 2024 16:48:42 +0100 Subject: [PATCH 31/64] Update OrganisationServiceImpl.java --- .../professionalapi/service/impl/OrganisationServiceImpl.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java index 61123b4d54..e8e9995188 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java @@ -1095,7 +1095,8 @@ public OrganisationsDetailResponse updateOrganisationNameOrSra( existingOrganisation.setName(RefDataUtil.removeEmptySpaces(organisationNameSraUpdateRequest.getName())); } if (isNotBlank(organisationNameSraUpdateRequest.getSraId())) { - OrgAttribute savedAttribute = saveOrganisationAttributes(existingOrganisation,organisationNameSraUpdateRequest); + OrgAttribute savedAttribute = saveOrganisationAttributes + (existingOrganisation,organisationNameSraUpdateRequest); if (savedAttribute == null) { log.error("{}:: error saving Organisation Attribute::", loggingComponentName); throw new EmptyResultDataAccessException("Error saving organisation attributes", 1); From 7f82f306db2b7e773ed9f21d7504913582142091 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS <139119493+SabinaHMCTS@users.noreply.github.com> Date: Thu, 29 Aug 2024 19:29:32 +0100 Subject: [PATCH 32/64] Update ProfessionalInternalUserFunctionalTest.java --- .../ProfessionalInternalUserFunctionalTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java index 5cba1c8933..c196c3d570 100644 --- a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java +++ b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java @@ -815,7 +815,7 @@ void updateOrganisationNameAndSraShouldReturnSuccess() { assertThat(orgUpdatedNameResponse.get("name").toString()).contains(updatedName); assertNotNull(orgUpdatedNameResponse.get("sraId")); assertThat(orgUpdatedNameResponse.get("sraId").toString()).contains(updatedSra); - + deleteOrganisation(organisationIdentifier); log.info("updateOrganisationNameShouldReturnSuccess :: END"); } @@ -853,7 +853,7 @@ void updateOrganisationNameAndSraShouldReturnFailure() { assertThat(orgUpdatedNameResponse.get("name").toString()).contains(updatedName); assertNotNull(orgUpdatedNameResponse.get("sraId")); assertThat(orgUpdatedNameResponse.get("sraId").toString()).contains(updatedSra); - + deleteOrganisation(organisationIdentifier); log.info("updateOrganisationNameShouldReturnSuccess :: END"); } From f6bc99be116a75aa5f8b32644794e615c98591bf Mon Sep 17 00:00:00 2001 From: SabinaHMCTS <139119493+SabinaHMCTS@users.noreply.github.com> Date: Thu, 29 Aug 2024 19:34:19 +0100 Subject: [PATCH 33/64] Update UpdateOrgNameSraIdIntegrationTest.java --- .../UpdateOrgNameSraIdIntegrationTest.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgNameSraIdIntegrationTest.java b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgNameSraIdIntegrationTest.java index aa488c95ef..a17914e91b 100644 --- a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgNameSraIdIntegrationTest.java +++ b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgNameSraIdIntegrationTest.java @@ -20,6 +20,7 @@ void update_name_or_sra_of_an_active_organisation_with_prd_admin_role_should_ret .updateOrgNameSraIdStatus(organisationRequestWithAllFields().build(), hmctsAdmin,getOrganisationId()); assertThat(updateResponse).containsEntry("http_status", 200); + deleteOrganisation(getOrganisationId()); } @Test @@ -50,6 +51,7 @@ void update_name_or_sra_with_invalid_name_and_sra_should_return_400() { assertThat(updateResponse).containsEntry("http_status", "400"); assertThat(updateResponse.get("response_body").toString()).contains("Name or SRA Id is required"); + deleteOrganisation((String) responseForOrganisationCreation.get(ORG_IDENTIFIER)); } @Test @@ -66,6 +68,7 @@ void update_name_or_sra_with_invalid_name_and_valid_sra_should_return_200() { hmctsAdmin,(String)responseForOrganisationCreation.get(ORG_IDENTIFIER)); assertThat(updateResponse).containsEntry("http_status", 200); + deleteOrganisation((String) responseForOrganisationCreation.get(ORG_IDENTIFIER)); } @Test @@ -82,6 +85,7 @@ void update_name_or_sra_with_invalid_sra_and_valid_name_should_return_200() { hmctsAdmin,(String)responseForOrganisationCreation.get(ORG_IDENTIFIER)); assertThat(updateResponse).containsEntry("http_status", 200); + deleteOrganisation((String) responseForOrganisationCreation.get(ORG_IDENTIFIER)); } private String getOrganisationId() { @@ -90,4 +94,11 @@ private String getOrganisationId() { return organisationIdentifier; } + + public void deleteOrganisation(String orgIdentifier) { + Map deleteResponse = professionalReferenceDataClient.deleteOrganisation(hmctsAdmin, + orgIdentifier); + + assertThat(deleteResponse.get("http_status")).isEqualTo(204); + } } From dc30a3246758ca5fd2ae5d7f7c00c85b6e9f87cf Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Mon, 2 Sep 2024 09:59:00 +0100 Subject: [PATCH 34/64] Fixing build --- .../ProfessionalInternalUserFunctionalTest.java | 7 +++++++ .../service/impl/OrganisationServiceImpl.java | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java index c196c3d570..7b78f91730 100644 --- a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java +++ b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java @@ -1308,4 +1308,11 @@ private static List> sortByValue(final List (String) map.get(key))) .collect(Collectors.toList()); } + + public void deleteOrganisation(String orgIdentifierResponse) { + log.info("deleteActiveOrganisation :: STARTED"); + professionalApiClient.deleteOrganisation(orgIdentifierResponse, hmctsAdmin, NO_CONTENT); + professionalApiClient.retrieveOrganisationDetails(orgIdentifierResponse, hmctsAdmin, NOT_FOUND); + log.info("deleteActiveOrganisation :: END"); + } } diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java index e8e9995188..dd5eb5e4d8 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java @@ -1095,8 +1095,8 @@ public OrganisationsDetailResponse updateOrganisationNameOrSra( existingOrganisation.setName(RefDataUtil.removeEmptySpaces(organisationNameSraUpdateRequest.getName())); } if (isNotBlank(organisationNameSraUpdateRequest.getSraId())) { - OrgAttribute savedAttribute = saveOrganisationAttributes - (existingOrganisation,organisationNameSraUpdateRequest); + OrgAttribute savedAttribute = saveOrganisationAttributes( + existingOrganisation,organisationNameSraUpdateRequest); if (savedAttribute == null) { log.error("{}:: error saving Organisation Attribute::", loggingComponentName); throw new EmptyResultDataAccessException("Error saving organisation attributes", 1); From 437cdd991a8ba93c80f9a0dadfb84b40b332f851 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Mon, 2 Sep 2024 19:28:42 +0100 Subject: [PATCH 35/64] Changing endpoint to only update Organisation Name --- ...rofessionalInternalUserFunctionalTest.java | 25 +++----- .../client/ProfessionalApiClient.java | 4 +- ...java => UpdateOrgNameIntegrationTest.java} | 63 ++++++++++--------- .../util/ProfessionalReferenceDataClient.java | 4 +- .../constants/ProfessionalApiConstants.java | 1 - .../OrganisationInternalController.java | 15 +++-- ...ava => OrganisationNameUpdateRequest.java} | 9 +-- .../service/OrganisationService.java | 6 +- .../service/impl/OrganisationServiceImpl.java | 43 ++----------- .../OrganisationInternalControllerTest.java | 24 +++---- .../impl/OrganisationServiceImplTest.java | 21 +++---- 11 files changed, 83 insertions(+), 132 deletions(-) rename src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/{UpdateOrgNameSraIdIntegrationTest.java => UpdateOrgNameIntegrationTest.java} (68%) rename src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/{OrganisationNameSraUpdateRequest.java => OrganisationNameUpdateRequest.java} (64%) diff --git a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java index 7b78f91730..02a0b90aec 100644 --- a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java +++ b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java @@ -16,7 +16,7 @@ import uk.gov.hmcts.reform.professionalapi.controller.request.MfaUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.NewUserCreationRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationCreationRequest; -import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationNameSraUpdateRequest; +import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationNameUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.PbaRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.PbaUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.UpdatePbaRequest; @@ -783,10 +783,9 @@ void updatePaymentAccountsShouldReturnForbiddenWhenToggledOff() { @Test @ToggleEnable(mapKey = "OrganisationInternalController.updateOrganisationNameOrSra", withFeature = false) - void updateOrganisationNameAndSraShouldReturnSuccess() { + void updateOrganisationNameShouldReturnSuccess() { log.info("updateOrganisationNameShouldReturnSuccess :: STARTED"); String updatedName = "updatedName"; - String updatedSra = randomAlphabetic(7); Map response = professionalApiClient.createOrganisation(); String organisationIdentifier = (String) response.get("organisationIdentifier"); assertThat(organisationIdentifier).isNotEmpty(); @@ -797,13 +796,12 @@ void updateOrganisationNameAndSraShouldReturnSuccess() { assertNotNull(orgResponse.get("name")); OrganisationCreationRequest organisationCreationRequest = createOrganisationRequest() - .name(updatedName).sraId(updatedSra).build(); + .name(updatedName).build(); - OrganisationNameSraUpdateRequest organisationNameSraUpdateRequest = - new OrganisationNameSraUpdateRequest(updatedName,updatedSra); + OrganisationNameUpdateRequest organisationNameUpdateRequest = + new OrganisationNameUpdateRequest(updatedName); - organisationCreationRequest.setSraId(organisationNameSraUpdateRequest.getSraId()); - organisationCreationRequest.setName(organisationNameSraUpdateRequest.getName()); + organisationCreationRequest.setName(organisationNameUpdateRequest.getName()); professionalApiClient.updatesOrganisationName(organisationCreationRequest, hmctsAdmin,organisationIdentifier, OK); @@ -813,8 +811,6 @@ void updateOrganisationNameAndSraShouldReturnSuccess() { assertThat(response).isNotNull(); assertNotNull(orgUpdatedNameResponse.get("name")); assertThat(orgUpdatedNameResponse.get("name").toString()).contains(updatedName); - assertNotNull(orgUpdatedNameResponse.get("sraId")); - assertThat(orgUpdatedNameResponse.get("sraId").toString()).contains(updatedSra); deleteOrganisation(organisationIdentifier); log.info("updateOrganisationNameShouldReturnSuccess :: END"); } @@ -837,11 +833,10 @@ void updateOrganisationNameAndSraShouldReturnFailure() { OrganisationCreationRequest organisationCreationRequest = createOrganisationRequest() .name(updatedName).sraId(updatedSra).build(); - OrganisationNameSraUpdateRequest organisationNameSraUpdateRequest = - new OrganisationNameSraUpdateRequest(updatedName,updatedSra); + OrganisationNameUpdateRequest organisationNameUpdateRequest = + new OrganisationNameUpdateRequest(updatedName); - organisationCreationRequest.setSraId(organisationNameSraUpdateRequest.getSraId()); - organisationCreationRequest.setName(organisationNameSraUpdateRequest.getName()); + organisationCreationRequest.setName(organisationNameUpdateRequest.getName()); professionalApiClient.updatesOrganisationName(organisationCreationRequest, hmctsAdmin,organisationIdentifier, OK); @@ -851,8 +846,6 @@ void updateOrganisationNameAndSraShouldReturnFailure() { assertThat(response).isNotNull(); assertNotNull(orgUpdatedNameResponse.get("name")); assertThat(orgUpdatedNameResponse.get("name").toString()).contains(updatedName); - assertNotNull(orgUpdatedNameResponse.get("sraId")); - assertThat(orgUpdatedNameResponse.get("sraId").toString()).contains(updatedSra); deleteOrganisation(organisationIdentifier); log.info("updateOrganisationNameShouldReturnSuccess :: END"); } diff --git a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java index 5ac1d1d019..fae96f9621 100644 --- a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java +++ b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java @@ -1320,10 +1320,10 @@ public void updatesOrganisationName(OrganisationCreationRequest organisationCrea Response response = getMultipleAuthHeadersInternal() .body(organisationCreationRequest) - .put("/refdata/internal/v1/organisations/nameSra/" + organisationIdentifier) + .put("/refdata/internal/v1/organisations/name/" + organisationIdentifier) .andReturn(); - log.info("{}:: Update organisation Name or SRA id response: {}", + log.info("{}:: Update organisation Name response: {}", loggingComponentName, response.getStatusCode()); response.then() diff --git a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgNameSraIdIntegrationTest.java b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgNameIntegrationTest.java similarity index 68% rename from src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgNameSraIdIntegrationTest.java rename to src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgNameIntegrationTest.java index a17914e91b..dca41f3b5d 100644 --- a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgNameSraIdIntegrationTest.java +++ b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgNameIntegrationTest.java @@ -11,22 +11,33 @@ import static uk.gov.hmcts.reform.professionalapi.helper.OrganisationFixtures.organisationRequestWithAllFieldsAreUpdated; -class UpdateOrgNameSraIdIntegrationTest extends AuthorizationEnabledIntegrationTest { +class UpdateOrgNameIntegrationTest extends AuthorizationEnabledIntegrationTest { @Test - void update_name_or_sra_of_an_active_organisation_with_prd_admin_role_should_return_200() { + void update_name_of_an_active_organisation_with_prd_admin_role_should_return_200() { + java.util.Map responseForOrganisationCreation = professionalReferenceDataClient + .createOrganisation(organisationRequestWithAllFieldsAreUpdated().build()); + String orgIdentifier = (String)responseForOrganisationCreation.get(ORG_IDENTIFIER); + Map updateResponse = professionalReferenceDataClient - .updateOrgNameSraIdStatus(organisationRequestWithAllFields().build(), hmctsAdmin,getOrganisationId()); + .updateOrgName(organisationRequestWithAllFields().name("updatedName").build(), + hmctsAdmin,orgIdentifier); + Map orgResponse = + professionalReferenceDataClient.retrieveSingleOrganisation(orgIdentifier, hmctsAdmin); + assertThat(orgResponse.get("http_status")).isEqualTo("200 OK"); + assertThat(orgResponse.get(ORG_IDENTIFIER)).isEqualTo(orgIdentifier); + + assertThat(orgResponse.get("name")).isEqualTo("updatedName"); assertThat(updateResponse).containsEntry("http_status", 200); - deleteOrganisation(getOrganisationId()); + deleteOrganisation(orgIdentifier); } @Test - void update_name_or_sra_with_bad_request_should_return_400() { + void update_name_with_bad_request_should_return_400() { Map updateResponse = professionalReferenceDataClient - .updateOrgNameSraIdStatus(null, hmctsAdmin,getOrganisationId()); + .updateOrgName(null, hmctsAdmin,getOrganisationId()); assertThat(updateResponse).containsEntry("http_status", "400"); assertThat(updateResponse.get("response_body").toString()) @@ -36,26 +47,18 @@ void update_name_or_sra_with_bad_request_should_return_400() { } @Test - void update_name_or_sra_with_invalid_name_and_sra_should_return_400() { - java.util.Map responseForOrganisationCreation = professionalReferenceDataClient - .createOrganisation(organisationRequestWithAllFieldsAreUpdated().build()); - - OrganisationCreationRequest organisationUpdateRequest = organisationRequestWithAllFieldsAreUpdated() - .name("") - .sraId("") - .build(); - + void update_name_with_bad_request_OrgId_missing_should_return_400() { Map updateResponse = professionalReferenceDataClient - .updateOrgNameSraIdStatus(organisationUpdateRequest, - hmctsAdmin,(String) responseForOrganisationCreation.get(ORG_IDENTIFIER)); + .updateOrgName(organisationRequestWithAllFields().build(), hmctsAdmin,null); + + assertThat(updateResponse).containsEntry("http_status", "404"); + assertThat(updateResponse.get("response_body").toString()) + .contains("Resource not found"); - assertThat(updateResponse).containsEntry("http_status", "400"); - assertThat(updateResponse.get("response_body").toString()).contains("Name or SRA Id is required"); - deleteOrganisation((String) responseForOrganisationCreation.get(ORG_IDENTIFIER)); } @Test - void update_name_or_sra_with_invalid_name_and_valid_sra_should_return_200() { + void update_name_with_invalid_name_should_return_400() { java.util.Map responseForOrganisationCreation = professionalReferenceDataClient .createOrganisation(organisationRequestWithAllFieldsAreUpdated().build()); @@ -64,30 +67,33 @@ void update_name_or_sra_with_invalid_name_and_valid_sra_should_return_200() { .build(); Map updateResponse = professionalReferenceDataClient - .updateOrgNameSraIdStatus(organisationUpdateRequest, - hmctsAdmin,(String)responseForOrganisationCreation.get(ORG_IDENTIFIER)); + .updateOrgName(organisationUpdateRequest, + hmctsAdmin,(String) responseForOrganisationCreation.get(ORG_IDENTIFIER)); - assertThat(updateResponse).containsEntry("http_status", 200); + assertThat(updateResponse).containsEntry("http_status", "400"); + assertThat(updateResponse.get("response_body").toString()).contains("Name is required"); deleteOrganisation((String) responseForOrganisationCreation.get(ORG_IDENTIFIER)); } @Test - void update_name_or_sra_with_invalid_sra_and_valid_name_should_return_200() { + void update_name_with_invalid_name_should_return_200() { java.util.Map responseForOrganisationCreation = professionalReferenceDataClient .createOrganisation(organisationRequestWithAllFieldsAreUpdated().build()); OrganisationCreationRequest organisationUpdateRequest = organisationRequestWithAllFieldsAreUpdated() - .sraId(" ") + .name(" ") .build(); Map updateResponse = professionalReferenceDataClient - .updateOrgNameSraIdStatus(organisationUpdateRequest, + .updateOrgName(organisationUpdateRequest, hmctsAdmin,(String)responseForOrganisationCreation.get(ORG_IDENTIFIER)); - assertThat(updateResponse).containsEntry("http_status", 200); + assertThat(updateResponse).containsEntry("http_status", "400"); + assertThat(updateResponse.get("response_body").toString()).contains("Name is required"); deleteOrganisation((String) responseForOrganisationCreation.get(ORG_IDENTIFIER)); } + private String getOrganisationId() { String organisationIdentifier = createOrganisationRequest(); updateOrganisation(organisationIdentifier, hmctsAdmin, "ACTIVE"); @@ -100,5 +106,6 @@ public void deleteOrganisation(String orgIdentifier) { orgIdentifier); assertThat(deleteResponse.get("http_status")).isEqualTo(204); + } } diff --git a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/util/ProfessionalReferenceDataClient.java b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/util/ProfessionalReferenceDataClient.java index 6c341cfa34..26194409ea 100644 --- a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/util/ProfessionalReferenceDataClient.java +++ b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/util/ProfessionalReferenceDataClient.java @@ -1024,11 +1024,11 @@ public Map findOrganisationsByUserId(String userId, String role) - public Map updateOrgNameSraIdStatus( + public Map updateOrgName( OrganisationCreationRequest organisationCreationRequest, String role, String organisationIdentifier) { ResponseEntity responseEntity = null; - String urlPath = "http://localhost:" + prdApiPort + APP_INT_BASE_PATH + "/nameSra/" + organisationIdentifier; + String urlPath = "http://localhost:" + prdApiPort + APP_INT_BASE_PATH + "/name/" + organisationIdentifier; try { HttpEntity requestEntity = new HttpEntity<>(organisationCreationRequest, getMultipleAuthHeaders(role)); diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/constants/ProfessionalApiConstants.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/constants/ProfessionalApiConstants.java index c10af83530..8ad52a839c 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/constants/ProfessionalApiConstants.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/constants/ProfessionalApiConstants.java @@ -20,7 +20,6 @@ private ProfessionalApiConstants() { public static final String NO_ORG_FOUND_FOR_GIVEN_ID = "No Organisation was found with the given organisationIdentifier "; - public static final String ORG_NOT_ACTIVE_NO_USERS_RETURNED = "Organisation is not Active hence not returning any users"; public static final String ERROR_MESSAGE_403_FORBIDDEN = "403 Forbidden"; diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java index ba68825488..3b9ff83cc4 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java @@ -34,7 +34,7 @@ import uk.gov.hmcts.reform.professionalapi.controller.request.NewUserCreationRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationByProfileIdsRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationCreationRequest; -import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationNameSraUpdateRequest; +import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationNameUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.PbaRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.UpdatePbaRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.validator.impl.OrganisationByProfileIdsRequestValidator; @@ -735,28 +735,27 @@ public ResponseEntity retrieveOrganisationByUserId( ) @PutMapping( - value = "/nameSra/{orgId}", + value = "/name/{orgId}", consumes = APPLICATION_JSON_VALUE, produces = APPLICATION_JSON_VALUE ) @ResponseStatus(value = HttpStatus.CREATED) @ResponseBody @Secured({"prd-admin"}) - public ResponseEntity updateOrganisationNameOrSra( + public ResponseEntity updateOrganisationName( @io.swagger.v3.oas.annotations.parameters.RequestBody(description = "organisationCreationRequest") - @Valid @NotNull @RequestBody OrganisationNameSraUpdateRequest organisationNameSraUpdateRequest, + @Valid @NotNull @RequestBody OrganisationNameUpdateRequest organisationNameUpdateRequest, @PathVariable("orgId") @NotBlank String organisationIdentifier) { var orgId = removeEmptySpaces(organisationIdentifier); organisationCreationRequestValidator.validateOrganisationIdentifier(orgId); - if (isBlank(organisationNameSraUpdateRequest.getName()) - && isBlank(organisationNameSraUpdateRequest.getSraId())) { - throw new InvalidRequest("Name or SRA Id is required"); + if (isBlank(organisationNameUpdateRequest.getName())) { + throw new InvalidRequest("Name is required"); } OrganisationsDetailResponse organisationsDetailResponse = organisationService - .updateOrganisationNameOrSra(organisationNameSraUpdateRequest, orgId); + .updateOrganisationName(organisationNameUpdateRequest, orgId); ResponseEntity resp = ResponseEntity.status(200).body(organisationsDetailResponse); return resp; diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationNameSraUpdateRequest.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationNameUpdateRequest.java similarity index 64% rename from src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationNameSraUpdateRequest.java rename to src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationNameUpdateRequest.java index 8b8edc79e8..ac23aee60f 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationNameSraUpdateRequest.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationNameUpdateRequest.java @@ -11,17 +11,14 @@ @Getter @Setter @Builder(builderMethodName = "anOrganisationCreationRequest") -public class OrganisationNameSraUpdateRequest { +public class OrganisationNameUpdateRequest { @NotNull private String name; - private String sraId; @JsonCreator - public OrganisationNameSraUpdateRequest( - @JsonProperty("name") String name, - @JsonProperty("sraId") String sraId) { + public OrganisationNameUpdateRequest( + @JsonProperty("name") String name) { this.name = name; - this.sraId = sraId; } } \ No newline at end of file diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/OrganisationService.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/OrganisationService.java index 68475b9d9b..46ca756f2f 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/OrganisationService.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/OrganisationService.java @@ -5,7 +5,7 @@ import uk.gov.hmcts.reform.professionalapi.controller.request.ContactInformationCreationRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrgAttributeRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationCreationRequest; -import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationNameSraUpdateRequest; +import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationNameUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.PbaRequest; import uk.gov.hmcts.reform.professionalapi.controller.response.BulkCustomerOrganisationsDetailResponse; import uk.gov.hmcts.reform.professionalapi.controller.response.DeleteOrganisationResponse; @@ -47,8 +47,8 @@ OrganisationsDetailResponseV2 findByOrganisationStatusForV2Api(LocalDateTime for OrganisationEntityResponse retrieveOrganisation(String organisationIdentifier, boolean isPendingPbaRequired); - OrganisationsDetailResponse updateOrganisationNameOrSra( - OrganisationNameSraUpdateRequest organisationNameSraUpdateRequest, String organisationIdentifier); + OrganisationsDetailResponse updateOrganisationName( + OrganisationNameUpdateRequest organisationNameUpdateRequest, String organisationIdentifier); OrganisationResponse updateOrganisation(OrganisationCreationRequest organisationCreationRequest, String organisationIdentifier, Boolean isOrgApprovalRequest); diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java index dd5eb5e4d8..48a21d77cc 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java @@ -26,7 +26,7 @@ import uk.gov.hmcts.reform.professionalapi.controller.request.InvalidRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrgAttributeRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationCreationRequest; -import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationNameSraUpdateRequest; +import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationNameUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationOtherOrgsCreationRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.PbaRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.RetrieveUserProfilesRequest; @@ -1060,55 +1060,22 @@ private boolean getMoreAvailable(Page pageableOrganisations) { return !pageableOrganisations.isLast(); } - public OrgAttribute saveOrganisationAttributes(Organisation existingOrganisation, - OrganisationNameSraUpdateRequest organisationNameSraUpdateRequest) { - final String attributeKey = "regulators-0"; - final String attributeValue = "{\"regulatorType\":\"Solicitor Regulation Authority (SRA)\"," - + "\"organisationRegistrationNumber\":\"" + organisationNameSraUpdateRequest.getSraId() + "\"}"; - - existingOrganisation.setSraId( - RefDataUtil.removeEmptySpaces(organisationNameSraUpdateRequest.getSraId())); - OrgAttribute attribute = new OrgAttribute(); - attribute.setKey(RefDataUtil.removeEmptySpaces(attributeKey)); - attribute.setValue(RefDataUtil - .removeEmptySpaces(attributeValue)); - attribute.setOrganisation(existingOrganisation); - OrgAttribute savedAttribute = orgAttributeRepository.save(attribute); - List attributes = new ArrayList<>(); - attributes.add(attribute); - existingOrganisation.setOrgAttributes(attributes); - - return savedAttribute; - } - @Override @Transactional - public OrganisationsDetailResponse updateOrganisationNameOrSra( - OrganisationNameSraUpdateRequest organisationNameSraUpdateRequest, String organisationIdentifier) { + public OrganisationsDetailResponse updateOrganisationName( + OrganisationNameUpdateRequest organisationNameUpdateRequest, String organisationIdentifier) { var existingOrganisation = organisationRepository.findByOrganisationIdentifier(organisationIdentifier); Organisation savedOrganisation = null; if (existingOrganisation == null) { throw new EmptyResultDataAccessException(ONE); - } else { - if (isNotBlank(organisationNameSraUpdateRequest.getName())) { - existingOrganisation.setName(RefDataUtil.removeEmptySpaces(organisationNameSraUpdateRequest.getName())); - } - if (isNotBlank(organisationNameSraUpdateRequest.getSraId())) { - OrgAttribute savedAttribute = saveOrganisationAttributes( - existingOrganisation,organisationNameSraUpdateRequest); - if (savedAttribute == null) { - log.error("{}:: error saving Organisation Attribute::", loggingComponentName); - throw new EmptyResultDataAccessException("Error saving organisation attributes", 1); - } - } + } else if (isNotBlank(organisationNameUpdateRequest.getName())) { + existingOrganisation.setName(RefDataUtil.removeEmptySpaces(organisationNameUpdateRequest.getName())); savedOrganisation = organisationRepository.save(existingOrganisation); } return new OrganisationsDetailResponse(List.of(savedOrganisation),false,false,false); } - - } diff --git a/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java b/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java index b2701e95d1..709b471274 100644 --- a/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java +++ b/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java @@ -24,7 +24,7 @@ import uk.gov.hmcts.reform.professionalapi.controller.request.MfaUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.NewUserCreationRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationCreationRequest; -import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationNameSraUpdateRequest; +import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationNameUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationOtherOrgsCreationRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.PbaRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.UserCreationRequest; @@ -89,7 +89,7 @@ class OrganisationInternalControllerTest { private PaymentAccountService paymentAccountServiceMock; private Organisation organisation; private OrganisationCreationRequest organisationCreationRequest; - private OrganisationNameSraUpdateRequest organisationNameSraUpdateRequest; + private OrganisationNameUpdateRequest organisationNameUpdateRequest; private OrganisationOtherOrgsCreationRequest organisationOtherOrgsCreationRequest; private OrganisationCreationRequestValidator organisationCreationRequestValidatorMock; private PaymentAccountValidator paymentAccountValidatorMock; @@ -164,7 +164,7 @@ void setUp() throws Exception { organisationOtherOrgsCreationRequest = new OrganisationOtherOrgsCreationRequest("test", "PENDING", null, "sra-id", "false", "number02", "company-url", userCreationRequest, null, null,"Doctor",null); - organisationNameSraUpdateRequest = new OrganisationNameSraUpdateRequest("name","sraId"); + organisationNameUpdateRequest = new OrganisationNameUpdateRequest("name"); organisation.setOrganisationIdentifier("AK57L4T"); organisationResponse = new OrganisationResponse(organisation); @@ -576,35 +576,29 @@ void testRetrieveOrgByPbaStatus() { } @Test - void testUpdateOrgNameAndSra() { + void testUpdateOrgName() { final HttpStatus expectedHttpStatus = HttpStatus.OK; String updatedName = "NewName"; - String updatedSra = "NewSRA"; organisation.setName(updatedName); - organisation.setSraId(updatedSra); - organisationNameSraUpdateRequest.setName(updatedName); - organisationNameSraUpdateRequest.setSraId(updatedSra); + organisationNameUpdateRequest.setName(updatedName); doNothing().when(organisationCreationRequestValidatorMock).validateOrganisationIdentifier(any(String.class)); - assertThat(organisationNameSraUpdateRequest.getName()).isNotEmpty(); - assertThat(organisationNameSraUpdateRequest.getSraId()).isNotEmpty(); + assertThat(organisationNameUpdateRequest.getName()).isNotEmpty(); - - when(organisationServiceMock.updateOrganisationNameOrSra(organisationNameSraUpdateRequest, + when(organisationServiceMock.updateOrganisationName(organisationNameUpdateRequest, organisation.getOrganisationIdentifier())).thenReturn(new OrganisationsDetailResponse(List.of(organisation), false,false,false)); ResponseEntity response = organisationInternalController - .updateOrganisationNameOrSra(organisationNameSraUpdateRequest,organisation.getOrganisationIdentifier()); + .updateOrganisationName(organisationNameUpdateRequest,organisation.getOrganisationIdentifier()); assertThat(response).isNotNull(); assertThat(response.getStatusCode()).isEqualTo(expectedHttpStatus); - verify(organisationCreationRequestValidatorMock, times(1)) .validateOrganisationIdentifier(any(String.class)); verify(organisationServiceMock, times(1)) - .updateOrganisationNameOrSra(organisationNameSraUpdateRequest, organisation.getOrganisationIdentifier()); + .updateOrganisationName(organisationNameUpdateRequest, organisation.getOrganisationIdentifier()); } diff --git a/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java b/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java index 1f29e0f1b3..1b64526561 100644 --- a/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java +++ b/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java @@ -32,7 +32,7 @@ import uk.gov.hmcts.reform.professionalapi.controller.request.InvalidRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrgAttributeRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationCreationRequest; -import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationNameSraUpdateRequest; +import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationNameUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationOtherOrgsCreationRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.PbaRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.UserCreationRequest; @@ -182,7 +182,7 @@ class OrganisationServiceImplTest { private ContactInformationCreationRequest contactInformationCreationRequest; private OrganisationCreationRequest organisationCreationRequest; - private OrganisationNameSraUpdateRequest organisationNameSraUpdateRequest; + private OrganisationNameUpdateRequest organisationNameUpdateRequest; private OrganisationOtherOrgsCreationRequest organisationOtherOrgsCreationRequest; @@ -279,7 +279,7 @@ void setUp() { contactInformationCreationRequests, "Doctor", orgAttributeRequests); deleteOrganisationResponse = new DeleteOrganisationResponse(204, "successfully deleted"); - organisationNameSraUpdateRequest = new OrganisationNameSraUpdateRequest("name","sraId"); + organisationNameUpdateRequest = new OrganisationNameUpdateRequest("name"); when(dxAddressRepositoryMock.save(any(DxAddress.class))).thenReturn(dxAddress); when(contactInformationRepositoryMock.save(any(ContactInformation.class))).thenReturn(contactInformation); @@ -1940,10 +1940,8 @@ void test_updateStatusAndMessage() { @Test void test_updateOrganisationNameAndSra() { String newName = "TestOrgName"; - String newSraId = "TestSraId"; final String orgIdentifier = "9KS20WT"; - organisationNameSraUpdateRequest.setName(newName); - organisationNameSraUpdateRequest.setSraId(newSraId); + organisationNameUpdateRequest.setName(newName); String orgId = UUID.randomUUID().toString().substring(0, 7); when(organisationRepository.findByOrganisationIdentifier(orgId)).thenReturn(null); @@ -1956,11 +1954,9 @@ void test_updateOrganisationNameAndSra() { when(organisationRepository.findByOrganisationIdentifier(any(String.class))) .thenReturn(organisationMock); - assertNotNull(organisationNameSraUpdateRequest.getName()); - assertNotNull(organisationNameSraUpdateRequest.getSraId()); + assertNotNull(organisationNameUpdateRequest.getName()); organisationMock.setName(newName); - organisationMock.setSraId(newSraId); OrgAttribute orgAttributeMock = mock(OrgAttribute.class); @@ -1968,8 +1964,8 @@ void test_updateOrganisationNameAndSra() { when(organisationRepository.save(organisationMock)).thenReturn(organisationMock); - OrganisationsDetailResponse updatedOrganisation = sut.updateOrganisationNameOrSra( - organisationNameSraUpdateRequest,orgIdentifier); + OrganisationsDetailResponse updatedOrganisation = sut.updateOrganisationName( + organisationNameUpdateRequest,orgIdentifier); assertThat(updatedOrganisation).isNotNull(); @@ -1977,8 +1973,7 @@ void test_updateOrganisationNameAndSra() { .findByOrganisationIdentifier(orgIdentifier); verify(organisationRepository, times(1)) .save(organisationMock); - verify(orgAttributeRepository, times(1)) - .save(any(OrgAttribute.class)); + } From 9279e006222e3eb9e7badad9fb9e6169ee460887 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Tue, 3 Sep 2024 09:31:36 +0100 Subject: [PATCH 36/64] Changing endpoint to only update Organisation Name --- ...rofessionalInternalUserFunctionalTest.java | 29 +++++++------------ .../client/ProfessionalApiClient.java | 5 ++-- .../service/impl/OrganisationServiceImpl.java | 3 +- 3 files changed, 15 insertions(+), 22 deletions(-) diff --git a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java index 02a0b90aec..801afb5c76 100644 --- a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java +++ b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java @@ -785,6 +785,7 @@ void updatePaymentAccountsShouldReturnForbiddenWhenToggledOff() { @ToggleEnable(mapKey = "OrganisationInternalController.updateOrganisationNameOrSra", withFeature = false) void updateOrganisationNameShouldReturnSuccess() { log.info("updateOrganisationNameShouldReturnSuccess :: STARTED"); + //create organisation String updatedName = "updatedName"; Map response = professionalApiClient.createOrganisation(); String organisationIdentifier = (String) response.get("organisationIdentifier"); @@ -792,20 +793,17 @@ void updateOrganisationNameShouldReturnSuccess() { JsonPath orgResponse = professionalApiClient.retrieveOrganisationDetails( organisationIdentifier, hmctsAdmin,OK); - assertNotNull(orgResponse.get("name")); - OrganisationCreationRequest organisationCreationRequest = createOrganisationRequest() - .name(updatedName).build(); - + //create request to update organisation OrganisationNameUpdateRequest organisationNameUpdateRequest = new OrganisationNameUpdateRequest(updatedName); - organisationCreationRequest.setName(organisationNameUpdateRequest.getName()); - - professionalApiClient.updatesOrganisationName(organisationCreationRequest, + //call endpoint to update name as 'updatedname' + professionalApiClient.updatesOrganisationName(organisationNameUpdateRequest, hmctsAdmin,organisationIdentifier, OK); + //retrieve organisation to verify name JsonPath orgUpdatedNameResponse = professionalApiClient.retrieveOrganisationDetails( organisationIdentifier, hmctsAdmin,OK); assertThat(response).isNotNull(); @@ -817,35 +815,28 @@ void updateOrganisationNameShouldReturnSuccess() { @Test @ToggleEnable(mapKey = "OrganisationInternalController.updateOrganisationNameOrSra", withFeature = false) - void updateOrganisationNameAndSraShouldReturnFailure() { + void updateOrganisationNameShouldReturnFailureIfNoName() { log.info("updateOrganisationNameShouldReturnSuccess :: STARTED"); - String updatedName = "updatedName"; - String updatedSra = "updatedSraId"; + Map response = professionalApiClient.createOrganisation(); String organisationIdentifier = (String) response.get("organisationIdentifier"); assertThat(organisationIdentifier).isNotEmpty(); JsonPath orgResponse = professionalApiClient.retrieveOrganisationDetails( organisationIdentifier, hmctsAdmin,OK); - assertNotNull(orgResponse.get("name")); - OrganisationCreationRequest organisationCreationRequest = createOrganisationRequest() - .name(updatedName).sraId(updatedSra).build(); - OrganisationNameUpdateRequest organisationNameUpdateRequest = - new OrganisationNameUpdateRequest(updatedName); - - organisationCreationRequest.setName(organisationNameUpdateRequest.getName()); + new OrganisationNameUpdateRequest(""); - professionalApiClient.updatesOrganisationName(organisationCreationRequest, + professionalApiClient.updatesOrganisationName(organisationNameUpdateRequest, hmctsAdmin,organisationIdentifier, OK); JsonPath orgUpdatedNameResponse = professionalApiClient.retrieveOrganisationDetails( organisationIdentifier, hmctsAdmin,OK); assertThat(response).isNotNull(); assertNotNull(orgUpdatedNameResponse.get("name")); - assertThat(orgUpdatedNameResponse.get("name").toString()).contains(updatedName); + deleteOrganisation(organisationIdentifier); log.info("updateOrganisationNameShouldReturnSuccess :: END"); } diff --git a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java index fae96f9621..bff9034683 100644 --- a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java +++ b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java @@ -21,6 +21,7 @@ import uk.gov.hmcts.reform.professionalapi.controller.request.OrgAttributeRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationByProfileIdsRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationCreationRequest; +import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationNameUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationOtherOrgsCreationRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.PbaRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.UpdatePbaRequest; @@ -1315,11 +1316,11 @@ public void updateOrganisation(OrganisationCreationRequest organisationCreationR .statusCode(expectedStatus.value()); } - public void updatesOrganisationName(OrganisationCreationRequest organisationCreationRequest, String role, + public void updatesOrganisationName(OrganisationNameUpdateRequest organisationNameUpdateRequest, String role, String organisationIdentifier, HttpStatus expectedStatus) { Response response = getMultipleAuthHeadersInternal() - .body(organisationCreationRequest) + .body(organisationNameUpdateRequest) .put("/refdata/internal/v1/organisations/name/" + organisationIdentifier) .andReturn(); diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java index 48a21d77cc..758bb89d52 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java @@ -1074,7 +1074,8 @@ public OrganisationsDetailResponse updateOrganisationName( savedOrganisation = organisationRepository.save(existingOrganisation); } - return new OrganisationsDetailResponse(List.of(savedOrganisation),false,false,false); + return new OrganisationsDetailResponse(List.of(savedOrganisation), + false,false,false); } } From 2792dafb029908bbe2806827120d049a6402547b Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Tue, 3 Sep 2024 11:28:47 +0100 Subject: [PATCH 37/64] Changing endpoint to only update Organisation Name --- ...rofessionalInternalUserFunctionalTest.java | 38 +++++++------------ .../client/ProfessionalApiClient.java | 4 +- .../OrganisationNameUpdateRequest.java | 6 ++- 3 files changed, 22 insertions(+), 26 deletions(-) diff --git a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java index 801afb5c76..47deff9328 100644 --- a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java +++ b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java @@ -23,6 +23,7 @@ import uk.gov.hmcts.reform.professionalapi.controller.response.FetchPbaByStatusResponse; import uk.gov.hmcts.reform.professionalapi.controller.response.OrganisationsWithPbaStatusResponse; import uk.gov.hmcts.reform.professionalapi.domain.MFAStatus; +import uk.gov.hmcts.reform.professionalapi.domain.Organisation; import uk.gov.hmcts.reform.professionalapi.domain.OrganisationStatus; import uk.gov.hmcts.reform.professionalapi.domain.PbaStatus; import uk.gov.hmcts.reform.professionalapi.domain.RoleName; @@ -36,6 +37,7 @@ import java.util.Comparator; import java.util.HashMap; import java.util.HashSet; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Set; @@ -48,6 +50,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.springframework.http.HttpStatus.BAD_REQUEST; +import static org.springframework.http.HttpStatus.CONFLICT; import static org.springframework.http.HttpStatus.FORBIDDEN; import static org.springframework.http.HttpStatus.NOT_FOUND; import static org.springframework.http.HttpStatus.NO_CONTENT; @@ -246,7 +249,7 @@ public void inviteUserWithDuplicateUserShouldReturnConflict(NewUserCreationReque NewUserCreationRequest newUserCreationRequest = professionalApiClient.createNewUserRequest(); newUserCreationRequest.setEmail(existingUserCreationRequest.getEmail()); Map newUserResponse = professionalApiClient.addNewUserToAnOrganisation(intActiveOrgId, - hmctsAdmin, newUserCreationRequest, HttpStatus.CONFLICT); + hmctsAdmin, newUserCreationRequest, CONFLICT); assertThat((String) newUserResponse.get("errorDescription")).contains("409 User already exists"); log.info("inviteUserWithDuplicateUserShouldReturnConflict :: END"); } @@ -791,24 +794,18 @@ void updateOrganisationNameShouldReturnSuccess() { String organisationIdentifier = (String) response.get("organisationIdentifier"); assertThat(organisationIdentifier).isNotEmpty(); - JsonPath orgResponse = professionalApiClient.retrieveOrganisationDetails( - organisationIdentifier, hmctsAdmin,OK); - assertNotNull(orgResponse.get("name")); - //create request to update organisation OrganisationNameUpdateRequest organisationNameUpdateRequest = new OrganisationNameUpdateRequest(updatedName); //call endpoint to update name as 'updatedname' - professionalApiClient.updatesOrganisationName(organisationNameUpdateRequest, - hmctsAdmin,organisationIdentifier, OK); - - //retrieve organisation to verify name - JsonPath orgUpdatedNameResponse = professionalApiClient.retrieveOrganisationDetails( - organisationIdentifier, hmctsAdmin,OK); - assertThat(response).isNotNull(); - assertNotNull(orgUpdatedNameResponse.get("name")); - assertThat(orgUpdatedNameResponse.get("name").toString()).contains(updatedName); + Map orgUpdatedNameResponse = professionalApiClient.updatesOrganisationName( + organisationNameUpdateRequest,hmctsAdmin,organisationIdentifier, OK); + List organisations = (List)orgUpdatedNameResponse.get("organisations"); + LinkedHashMap organisation = (LinkedHashMap)organisations.get(0); + assertThat(orgUpdatedNameResponse).isNotNull(); + assertNotNull(organisation.get("name")); + assertThat(organisation.get("name").toString()).contains(updatedName); deleteOrganisation(organisationIdentifier); log.info("updateOrganisationNameShouldReturnSuccess :: END"); } @@ -822,21 +819,14 @@ void updateOrganisationNameShouldReturnFailureIfNoName() { String organisationIdentifier = (String) response.get("organisationIdentifier"); assertThat(organisationIdentifier).isNotEmpty(); - JsonPath orgResponse = professionalApiClient.retrieveOrganisationDetails( - organisationIdentifier, hmctsAdmin,OK); - assertNotNull(orgResponse.get("name")); OrganisationNameUpdateRequest organisationNameUpdateRequest = new OrganisationNameUpdateRequest(""); - professionalApiClient.updatesOrganisationName(organisationNameUpdateRequest, - hmctsAdmin,organisationIdentifier, OK); - - JsonPath orgUpdatedNameResponse = professionalApiClient.retrieveOrganisationDetails( - organisationIdentifier, hmctsAdmin,OK); - assertThat(response).isNotNull(); - assertNotNull(orgUpdatedNameResponse.get("name")); + Map orgUpdatedNameResponse = professionalApiClient.updatesOrganisationName( + organisationNameUpdateRequest,hmctsAdmin,organisationIdentifier, BAD_REQUEST); + assertThat((String) orgUpdatedNameResponse.get("errorDescription")).contains("Name is required"); deleteOrganisation(organisationIdentifier); log.info("updateOrganisationNameShouldReturnSuccess :: END"); } diff --git a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java index bff9034683..d5cc24cfa5 100644 --- a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java +++ b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java @@ -1316,7 +1316,7 @@ public void updateOrganisation(OrganisationCreationRequest organisationCreationR .statusCode(expectedStatus.value()); } - public void updatesOrganisationName(OrganisationNameUpdateRequest organisationNameUpdateRequest, String role, + public Map updatesOrganisationName(OrganisationNameUpdateRequest organisationNameUpdateRequest, String role, String organisationIdentifier, HttpStatus expectedStatus) { Response response = getMultipleAuthHeadersInternal() @@ -1330,6 +1330,8 @@ public void updatesOrganisationName(OrganisationNameUpdateRequest organisationNa response.then() .assertThat() .statusCode(expectedStatus.value()); + + return response.body().as(Map.class); } public void updateOrganisationToReview(String organisationIdentifier, String statusMessage, String role) { diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationNameUpdateRequest.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationNameUpdateRequest.java index ac23aee60f..9305fe327f 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationNameUpdateRequest.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationNameUpdateRequest.java @@ -1,19 +1,23 @@ package uk.gov.hmcts.reform.professionalapi.controller.request; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Builder; import lombok.Getter; import lombok.Setter; +import javax.validation.Valid; import javax.validation.constraints.NotNull; @Getter @Setter @Builder(builderMethodName = "anOrganisationCreationRequest") +@JsonIgnoreProperties(ignoreUnknown = true) public class OrganisationNameUpdateRequest { - @NotNull + @Valid + @NotNull(message = "Name is required.") private String name; @JsonCreator From 35133bf68f9a6af6c75c00316a95c718a5bb00d7 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Tue, 3 Sep 2024 12:49:05 +0100 Subject: [PATCH 38/64] Changing endpoint to only update Organisation Name --- .../UpdateOrgNameIntegrationTest.java | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgNameIntegrationTest.java b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgNameIntegrationTest.java index dca41f3b5d..db1c4bef5b 100644 --- a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgNameIntegrationTest.java +++ b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgNameIntegrationTest.java @@ -4,9 +4,12 @@ import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationCreationRequest; import uk.gov.hmcts.reform.professionalapi.util.AuthorizationEnabledIntegrationTest; +import java.util.LinkedHashMap; +import java.util.List; import java.util.Map; import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertNotNull; import static uk.gov.hmcts.reform.professionalapi.helper.OrganisationFixtures.organisationRequestWithAllFields; import static uk.gov.hmcts.reform.professionalapi.helper.OrganisationFixtures.organisationRequestWithAllFieldsAreUpdated; @@ -20,17 +23,16 @@ void update_name_of_an_active_organisation_with_prd_admin_role_should_return_200 .createOrganisation(organisationRequestWithAllFieldsAreUpdated().build()); String orgIdentifier = (String)responseForOrganisationCreation.get(ORG_IDENTIFIER); - Map updateResponse = professionalReferenceDataClient + Map orgResponse = professionalReferenceDataClient .updateOrgName(organisationRequestWithAllFields().name("updatedName").build(), hmctsAdmin,orgIdentifier); - Map orgResponse = - professionalReferenceDataClient.retrieveSingleOrganisation(orgIdentifier, hmctsAdmin); - - assertThat(orgResponse.get("http_status")).isEqualTo("200 OK"); - assertThat(orgResponse.get(ORG_IDENTIFIER)).isEqualTo(orgIdentifier); - - assertThat(orgResponse.get("name")).isEqualTo("updatedName"); - assertThat(updateResponse).containsEntry("http_status", 200); + LinkedHashMap responseBody = (LinkedHashMap)orgResponse.get("response_body"); + List organisations = (List)responseBody.get("organisations"); + LinkedHashMap organisation = (LinkedHashMap)organisations.get(0); + assertThat(orgResponse).isNotNull(); + assertNotNull(organisation.get("name")); + assertThat(organisation.get("name").toString()).contains("updatedName"); + assertThat(orgResponse.get("http_status")).isEqualTo(200); deleteOrganisation(orgIdentifier); } From f2d47c8d80900d14248e9941bdf563411ac9b4ac Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Tue, 3 Sep 2024 13:27:51 +0100 Subject: [PATCH 39/64] endpoint to save SraId --- ...rofessionalInternalUserFunctionalTest.java | 34 +++++++-------- .../client/ProfessionalApiClient.java | 10 ++--- ....java => UpdateOrgSraIntegrationTest.java} | 18 ++++---- .../OrganisationInternalController.java | 14 +++--- ...java => OrganisationSraUpdateRequest.java} | 19 ++++---- .../service/OrganisationService.java | 6 +-- .../service/impl/OrganisationServiceImpl.java | 43 ++++++++++++++++--- .../OrganisationInternalControllerTest.java | 22 +++++----- .../impl/OrganisationServiceImplTest.java | 20 ++++----- 9 files changed, 106 insertions(+), 80 deletions(-) rename src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/{UpdateOrgNameIntegrationTest.java => UpdateOrgSraIntegrationTest.java} (88%) rename src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/{OrganisationNameUpdateRequest.java => OrganisationSraUpdateRequest.java} (64%) diff --git a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java index 47deff9328..742f661e40 100644 --- a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java +++ b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java @@ -16,14 +16,13 @@ import uk.gov.hmcts.reform.professionalapi.controller.request.MfaUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.NewUserCreationRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationCreationRequest; -import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationNameUpdateRequest; +import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationSraUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.PbaRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.PbaUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.UpdatePbaRequest; import uk.gov.hmcts.reform.professionalapi.controller.response.FetchPbaByStatusResponse; import uk.gov.hmcts.reform.professionalapi.controller.response.OrganisationsWithPbaStatusResponse; import uk.gov.hmcts.reform.professionalapi.domain.MFAStatus; -import uk.gov.hmcts.reform.professionalapi.domain.Organisation; import uk.gov.hmcts.reform.professionalapi.domain.OrganisationStatus; import uk.gov.hmcts.reform.professionalapi.domain.PbaStatus; import uk.gov.hmcts.reform.professionalapi.domain.RoleName; @@ -786,28 +785,28 @@ void updatePaymentAccountsShouldReturnForbiddenWhenToggledOff() { @Test @ToggleEnable(mapKey = "OrganisationInternalController.updateOrganisationNameOrSra", withFeature = false) - void updateOrganisationNameShouldReturnSuccess() { - log.info("updateOrganisationNameShouldReturnSuccess :: STARTED"); + void updateOrganisationSraIdShouldReturnSuccess() { + log.info("updateOrganisationSraIdShouldReturnSuccess :: STARTED"); //create organisation - String updatedName = "updatedName"; + String updatedSra = "updatedSraId"; Map response = professionalApiClient.createOrganisation(); String organisationIdentifier = (String) response.get("organisationIdentifier"); assertThat(organisationIdentifier).isNotEmpty(); //create request to update organisation - OrganisationNameUpdateRequest organisationNameUpdateRequest = - new OrganisationNameUpdateRequest(updatedName); + OrganisationSraUpdateRequest organisationSraUpdateRequest = + new OrganisationSraUpdateRequest(updatedSra); //call endpoint to update name as 'updatedname' - Map orgUpdatedNameResponse = professionalApiClient.updatesOrganisationName( - organisationNameUpdateRequest,hmctsAdmin,organisationIdentifier, OK); + Map orgUpdatedNameResponse = professionalApiClient.updatesOrganisationSra( + organisationSraUpdateRequest,hmctsAdmin,organisationIdentifier, OK); List organisations = (List)orgUpdatedNameResponse.get("organisations"); LinkedHashMap organisation = (LinkedHashMap)organisations.get(0); assertThat(orgUpdatedNameResponse).isNotNull(); - assertNotNull(organisation.get("name")); - assertThat(organisation.get("name").toString()).contains(updatedName); + assertNotNull(organisation.get("sraId")); + assertThat(organisation.get("sraId").toString()).contains(updatedSra); deleteOrganisation(organisationIdentifier); - log.info("updateOrganisationNameShouldReturnSuccess :: END"); + log.info("updateOrganisationSraIdShouldReturnSuccess :: END"); } @Test @@ -819,14 +818,13 @@ void updateOrganisationNameShouldReturnFailureIfNoName() { String organisationIdentifier = (String) response.get("organisationIdentifier"); assertThat(organisationIdentifier).isNotEmpty(); + OrganisationSraUpdateRequest organisationSraUpdateRequest = + new OrganisationSraUpdateRequest(""); - OrganisationNameUpdateRequest organisationNameUpdateRequest = - new OrganisationNameUpdateRequest(""); - - Map orgUpdatedNameResponse = professionalApiClient.updatesOrganisationName( - organisationNameUpdateRequest,hmctsAdmin,organisationIdentifier, BAD_REQUEST); + Map orgUpdatedNameResponse = professionalApiClient.updatesOrganisationSra( + organisationSraUpdateRequest,hmctsAdmin,organisationIdentifier, BAD_REQUEST); - assertThat((String) orgUpdatedNameResponse.get("errorDescription")).contains("Name is required"); + assertThat((String) orgUpdatedNameResponse.get("errorDescription")).contains("SraId is required"); deleteOrganisation(organisationIdentifier); log.info("updateOrganisationNameShouldReturnSuccess :: END"); } diff --git a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java index d5cc24cfa5..12bacea9da 100644 --- a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java +++ b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java @@ -21,8 +21,8 @@ import uk.gov.hmcts.reform.professionalapi.controller.request.OrgAttributeRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationByProfileIdsRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationCreationRequest; -import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationNameUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationOtherOrgsCreationRequest; +import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationSraUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.PbaRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.UpdatePbaRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.UserCreationRequest; @@ -1316,12 +1316,12 @@ public void updateOrganisation(OrganisationCreationRequest organisationCreationR .statusCode(expectedStatus.value()); } - public Map updatesOrganisationName(OrganisationNameUpdateRequest organisationNameUpdateRequest, String role, - String organisationIdentifier, HttpStatus expectedStatus) { + public Map updatesOrganisationSra(OrganisationSraUpdateRequest organisationSraUpdateRequest, String role, + String organisationIdentifier, HttpStatus expectedStatus) { Response response = getMultipleAuthHeadersInternal() - .body(organisationNameUpdateRequest) - .put("/refdata/internal/v1/organisations/name/" + organisationIdentifier) + .body(organisationSraUpdateRequest) + .put("/refdata/internal/v1/organisations/sra/" + organisationIdentifier) .andReturn(); log.info("{}:: Update organisation Name response: {}", diff --git a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgNameIntegrationTest.java b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java similarity index 88% rename from src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgNameIntegrationTest.java rename to src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java index db1c4bef5b..30be50a93a 100644 --- a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgNameIntegrationTest.java +++ b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java @@ -14,30 +14,30 @@ import static uk.gov.hmcts.reform.professionalapi.helper.OrganisationFixtures.organisationRequestWithAllFieldsAreUpdated; -class UpdateOrgNameIntegrationTest extends AuthorizationEnabledIntegrationTest { +class UpdateOrgSraIntegrationTest extends AuthorizationEnabledIntegrationTest { @Test - void update_name_of_an_active_organisation_with_prd_admin_role_should_return_200() { + void update_sra_of_an_active_organisation_with_prd_admin_role_should_return_200() { java.util.Map responseForOrganisationCreation = professionalReferenceDataClient .createOrganisation(organisationRequestWithAllFieldsAreUpdated().build()); String orgIdentifier = (String)responseForOrganisationCreation.get(ORG_IDENTIFIER); Map orgResponse = professionalReferenceDataClient - .updateOrgName(organisationRequestWithAllFields().name("updatedName").build(), + .updateOrgName(organisationRequestWithAllFields().sraId("sraId").build(), hmctsAdmin,orgIdentifier); LinkedHashMap responseBody = (LinkedHashMap)orgResponse.get("response_body"); List organisations = (List)responseBody.get("organisations"); LinkedHashMap organisation = (LinkedHashMap)organisations.get(0); assertThat(orgResponse).isNotNull(); - assertNotNull(organisation.get("name")); - assertThat(organisation.get("name").toString()).contains("updatedName"); + assertNotNull(organisation.get("sraId")); + assertThat(organisation.get("sraId").toString()).contains("sraId"); assertThat(orgResponse.get("http_status")).isEqualTo(200); deleteOrganisation(orgIdentifier); } @Test - void update_name_with_bad_request_should_return_400() { + void update_sra_with_bad_request_should_return_400() { Map updateResponse = professionalReferenceDataClient .updateOrgName(null, hmctsAdmin,getOrganisationId()); @@ -49,7 +49,7 @@ void update_name_with_bad_request_should_return_400() { } @Test - void update_name_with_bad_request_OrgId_missing_should_return_400() { + void update_sra_with_bad_request_OrgId_missing_should_return_400() { Map updateResponse = professionalReferenceDataClient .updateOrgName(organisationRequestWithAllFields().build(), hmctsAdmin,null); @@ -60,7 +60,7 @@ void update_name_with_bad_request_OrgId_missing_should_return_400() { } @Test - void update_name_with_invalid_name_should_return_400() { + void update_sra_with_invalid_name_should_return_400() { java.util.Map responseForOrganisationCreation = professionalReferenceDataClient .createOrganisation(organisationRequestWithAllFieldsAreUpdated().build()); @@ -78,7 +78,7 @@ void update_name_with_invalid_name_should_return_400() { } @Test - void update_name_with_invalid_name_should_return_200() { + void update_sra_with_invalid_name_should_return_200() { java.util.Map responseForOrganisationCreation = professionalReferenceDataClient .createOrganisation(organisationRequestWithAllFieldsAreUpdated().build()); diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java index 3b9ff83cc4..5c6f3eaed8 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java @@ -34,7 +34,7 @@ import uk.gov.hmcts.reform.professionalapi.controller.request.NewUserCreationRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationByProfileIdsRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationCreationRequest; -import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationNameUpdateRequest; +import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationSraUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.PbaRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.UpdatePbaRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.validator.impl.OrganisationByProfileIdsRequestValidator; @@ -735,27 +735,27 @@ public ResponseEntity retrieveOrganisationByUserId( ) @PutMapping( - value = "/name/{orgId}", + value = "/sra/{orgId}", consumes = APPLICATION_JSON_VALUE, produces = APPLICATION_JSON_VALUE ) @ResponseStatus(value = HttpStatus.CREATED) @ResponseBody @Secured({"prd-admin"}) - public ResponseEntity updateOrganisationName( + public ResponseEntity updateOrganisationSra( @io.swagger.v3.oas.annotations.parameters.RequestBody(description = "organisationCreationRequest") - @Valid @NotNull @RequestBody OrganisationNameUpdateRequest organisationNameUpdateRequest, + @Valid @NotNull @RequestBody OrganisationSraUpdateRequest organisationSraUpdateRequest, @PathVariable("orgId") @NotBlank String organisationIdentifier) { var orgId = removeEmptySpaces(organisationIdentifier); organisationCreationRequestValidator.validateOrganisationIdentifier(orgId); - if (isBlank(organisationNameUpdateRequest.getName())) { - throw new InvalidRequest("Name is required"); + if (isBlank(organisationSraUpdateRequest.getSraId())) { + throw new InvalidRequest("SRA Id is required"); } OrganisationsDetailResponse organisationsDetailResponse = organisationService - .updateOrganisationName(organisationNameUpdateRequest, orgId); + .updateOrganisationSra(organisationSraUpdateRequest, orgId); ResponseEntity resp = ResponseEntity.status(200).body(organisationsDetailResponse); return resp; diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationNameUpdateRequest.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationSraUpdateRequest.java similarity index 64% rename from src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationNameUpdateRequest.java rename to src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationSraUpdateRequest.java index 9305fe327f..4c697a1dc2 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationNameUpdateRequest.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationSraUpdateRequest.java @@ -1,5 +1,7 @@ package uk.gov.hmcts.reform.professionalapi.controller.request; +import javax.validation.constraints.NotNull; + import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; @@ -7,22 +9,19 @@ import lombok.Getter; import lombok.Setter; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; - @Getter @Setter @Builder(builderMethodName = "anOrganisationCreationRequest") @JsonIgnoreProperties(ignoreUnknown = true) -public class OrganisationNameUpdateRequest { +public class OrganisationSraUpdateRequest { - @Valid - @NotNull(message = "Name is required.") - private String name; + @NotNull + @NotNull(message = "SraId is required.") + private String sraId; @JsonCreator - public OrganisationNameUpdateRequest( - @JsonProperty("name") String name) { - this.name = name; + public OrganisationSraUpdateRequest( + @JsonProperty("sraId") String sraId) { + this.sraId = sraId; } } \ No newline at end of file diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/OrganisationService.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/OrganisationService.java index 46ca756f2f..3681fcb2b1 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/OrganisationService.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/OrganisationService.java @@ -5,7 +5,7 @@ import uk.gov.hmcts.reform.professionalapi.controller.request.ContactInformationCreationRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrgAttributeRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationCreationRequest; -import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationNameUpdateRequest; +import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationSraUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.PbaRequest; import uk.gov.hmcts.reform.professionalapi.controller.response.BulkCustomerOrganisationsDetailResponse; import uk.gov.hmcts.reform.professionalapi.controller.response.DeleteOrganisationResponse; @@ -47,8 +47,8 @@ OrganisationsDetailResponseV2 findByOrganisationStatusForV2Api(LocalDateTime for OrganisationEntityResponse retrieveOrganisation(String organisationIdentifier, boolean isPendingPbaRequired); - OrganisationsDetailResponse updateOrganisationName( - OrganisationNameUpdateRequest organisationNameUpdateRequest, String organisationIdentifier); + OrganisationsDetailResponse updateOrganisationSra( + OrganisationSraUpdateRequest organisationSraUpdateRequest, String organisationIdentifier); OrganisationResponse updateOrganisation(OrganisationCreationRequest organisationCreationRequest, String organisationIdentifier, Boolean isOrgApprovalRequest); diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java index 758bb89d52..c32e0bbb37 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java @@ -26,8 +26,8 @@ import uk.gov.hmcts.reform.professionalapi.controller.request.InvalidRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrgAttributeRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationCreationRequest; -import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationNameUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationOtherOrgsCreationRequest; +import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationSraUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.PbaRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.RetrieveUserProfilesRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.UserCreationRequest; @@ -1060,23 +1060,52 @@ private boolean getMoreAvailable(Page pageableOrganisations) { return !pageableOrganisations.isLast(); } + public OrgAttribute saveOrganisationAttributes(Organisation existingOrganisation, + OrganisationSraUpdateRequest organisationNameSraUpdateRequest) { + final String attributeKey = "regulators-0"; + final String attributeValue = "{\"regulatorType\":\"Solicitor Regulation Authority (SRA)\"," + + "\"organisationRegistrationNumber\":\"" + organisationNameSraUpdateRequest.getSraId() + "\"}"; + + existingOrganisation.setSraId( + RefDataUtil.removeEmptySpaces(organisationNameSraUpdateRequest.getSraId())); + OrgAttribute attribute = new OrgAttribute(); + attribute.setKey(RefDataUtil.removeEmptySpaces(attributeKey)); + attribute.setValue(RefDataUtil + .removeEmptySpaces(attributeValue)); + attribute.setOrganisation(existingOrganisation); + OrgAttribute savedAttribute = orgAttributeRepository.save(attribute); + List attributes = new ArrayList<>(); + attributes.add(attribute); + existingOrganisation.setOrgAttributes(attributes); + + return savedAttribute; + } + @Override @Transactional - public OrganisationsDetailResponse updateOrganisationName( - OrganisationNameUpdateRequest organisationNameUpdateRequest, String organisationIdentifier) { + public OrganisationsDetailResponse updateOrganisationSra( + OrganisationSraUpdateRequest organisationSraUpdateRequest, String organisationIdentifier) { var existingOrganisation = organisationRepository.findByOrganisationIdentifier(organisationIdentifier); Organisation savedOrganisation = null; if (existingOrganisation == null) { throw new EmptyResultDataAccessException(ONE); - } else if (isNotBlank(organisationNameUpdateRequest.getName())) { - existingOrganisation.setName(RefDataUtil.removeEmptySpaces(organisationNameUpdateRequest.getName())); + } else { + if (isNotBlank(organisationSraUpdateRequest.getSraId())) { + OrgAttribute savedAttribute = saveOrganisationAttributes( + existingOrganisation,organisationSraUpdateRequest); + if (savedAttribute == null) { + log.error("{}:: error saving Organisation Attribute::", loggingComponentName); + throw new EmptyResultDataAccessException("Error saving organisation attributes", 1); + } + } savedOrganisation = organisationRepository.save(existingOrganisation); } - return new OrganisationsDetailResponse(List.of(savedOrganisation), - false,false,false); + return new OrganisationsDetailResponse(List.of(savedOrganisation),false, + false,false); } + } diff --git a/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java b/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java index 709b471274..d7fde48593 100644 --- a/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java +++ b/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java @@ -24,8 +24,8 @@ import uk.gov.hmcts.reform.professionalapi.controller.request.MfaUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.NewUserCreationRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationCreationRequest; -import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationNameUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationOtherOrgsCreationRequest; +import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationSraUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.PbaRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.UserCreationRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.UserProfileCreationRequest; @@ -89,7 +89,7 @@ class OrganisationInternalControllerTest { private PaymentAccountService paymentAccountServiceMock; private Organisation organisation; private OrganisationCreationRequest organisationCreationRequest; - private OrganisationNameUpdateRequest organisationNameUpdateRequest; + private OrganisationSraUpdateRequest organisationSraUpdateRequest; private OrganisationOtherOrgsCreationRequest organisationOtherOrgsCreationRequest; private OrganisationCreationRequestValidator organisationCreationRequestValidatorMock; private PaymentAccountValidator paymentAccountValidatorMock; @@ -164,7 +164,7 @@ void setUp() throws Exception { organisationOtherOrgsCreationRequest = new OrganisationOtherOrgsCreationRequest("test", "PENDING", null, "sra-id", "false", "number02", "company-url", userCreationRequest, null, null,"Doctor",null); - organisationNameUpdateRequest = new OrganisationNameUpdateRequest("name"); + organisationSraUpdateRequest = new OrganisationSraUpdateRequest("sraId"); organisation.setOrganisationIdentifier("AK57L4T"); organisationResponse = new OrganisationResponse(organisation); @@ -576,21 +576,21 @@ void testRetrieveOrgByPbaStatus() { } @Test - void testUpdateOrgName() { + void testUpdateOrgSraId() { final HttpStatus expectedHttpStatus = HttpStatus.OK; - String updatedName = "NewName"; - organisation.setName(updatedName); - organisationNameUpdateRequest.setName(updatedName); + String updatedSraId = "updatedSraId"; + organisation.setSraId(updatedSraId); + organisationSraUpdateRequest.setSraId(updatedSraId); doNothing().when(organisationCreationRequestValidatorMock).validateOrganisationIdentifier(any(String.class)); - assertThat(organisationNameUpdateRequest.getName()).isNotEmpty(); + assertThat(organisationSraUpdateRequest.getSraId()).isNotEmpty(); - when(organisationServiceMock.updateOrganisationName(organisationNameUpdateRequest, + when(organisationServiceMock.updateOrganisationSra(organisationSraUpdateRequest, organisation.getOrganisationIdentifier())).thenReturn(new OrganisationsDetailResponse(List.of(organisation), false,false,false)); ResponseEntity response = organisationInternalController - .updateOrganisationName(organisationNameUpdateRequest,organisation.getOrganisationIdentifier()); + .updateOrganisationSra(organisationSraUpdateRequest,organisation.getOrganisationIdentifier()); assertThat(response).isNotNull(); assertThat(response.getStatusCode()).isEqualTo(expectedHttpStatus); @@ -598,7 +598,7 @@ void testUpdateOrgName() { verify(organisationCreationRequestValidatorMock, times(1)) .validateOrganisationIdentifier(any(String.class)); verify(organisationServiceMock, times(1)) - .updateOrganisationName(organisationNameUpdateRequest, organisation.getOrganisationIdentifier()); + .updateOrganisationSra(organisationSraUpdateRequest, organisation.getOrganisationIdentifier()); } diff --git a/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java b/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java index 1b64526561..83cdef8e43 100644 --- a/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java +++ b/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java @@ -32,7 +32,7 @@ import uk.gov.hmcts.reform.professionalapi.controller.request.InvalidRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrgAttributeRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationCreationRequest; -import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationNameUpdateRequest; +import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationSraUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationOtherOrgsCreationRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.PbaRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.UserCreationRequest; @@ -182,7 +182,7 @@ class OrganisationServiceImplTest { private ContactInformationCreationRequest contactInformationCreationRequest; private OrganisationCreationRequest organisationCreationRequest; - private OrganisationNameUpdateRequest organisationNameUpdateRequest; + private OrganisationSraUpdateRequest organisationSraUpdateRequest; private OrganisationOtherOrgsCreationRequest organisationOtherOrgsCreationRequest; @@ -279,7 +279,7 @@ void setUp() { contactInformationCreationRequests, "Doctor", orgAttributeRequests); deleteOrganisationResponse = new DeleteOrganisationResponse(204, "successfully deleted"); - organisationNameUpdateRequest = new OrganisationNameUpdateRequest("name"); + organisationSraUpdateRequest = new OrganisationSraUpdateRequest("sraId"); when(dxAddressRepositoryMock.save(any(DxAddress.class))).thenReturn(dxAddress); when(contactInformationRepositoryMock.save(any(ContactInformation.class))).thenReturn(contactInformation); @@ -1938,10 +1938,10 @@ void test_updateStatusAndMessage() { @Test - void test_updateOrganisationNameAndSra() { - String newName = "TestOrgName"; + void test_updateOrganisationSra() { + String newSraId = "TestOrgName"; final String orgIdentifier = "9KS20WT"; - organisationNameUpdateRequest.setName(newName); + organisationSraUpdateRequest.setSraId(newSraId); String orgId = UUID.randomUUID().toString().substring(0, 7); when(organisationRepository.findByOrganisationIdentifier(orgId)).thenReturn(null); @@ -1954,9 +1954,9 @@ void test_updateOrganisationNameAndSra() { when(organisationRepository.findByOrganisationIdentifier(any(String.class))) .thenReturn(organisationMock); - assertNotNull(organisationNameUpdateRequest.getName()); + assertNotNull(organisationSraUpdateRequest.getSraId()); - organisationMock.setName(newName); + organisationMock.setSraId(newSraId); OrgAttribute orgAttributeMock = mock(OrgAttribute.class); @@ -1964,8 +1964,8 @@ void test_updateOrganisationNameAndSra() { when(organisationRepository.save(organisationMock)).thenReturn(organisationMock); - OrganisationsDetailResponse updatedOrganisation = sut.updateOrganisationName( - organisationNameUpdateRequest,orgIdentifier); + OrganisationsDetailResponse updatedOrganisation = sut.updateOrganisationSra( + organisationSraUpdateRequest,orgIdentifier); assertThat(updatedOrganisation).isNotNull(); From b79f88a774d526bc62dd7a3dea3617f45f0123d0 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Tue, 3 Sep 2024 13:39:42 +0100 Subject: [PATCH 40/64] endpoint to save SraId --- .../ProfessionalInternalUserFunctionalTest.java | 4 ++-- .../professionalapi/client/ProfessionalApiClient.java | 2 +- .../controller/request/OrganisationSraUpdateRequest.java | 8 +++++--- .../service/impl/OrganisationServiceImplTest.java | 2 +- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java index 742f661e40..24706d9bc5 100644 --- a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java +++ b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java @@ -799,7 +799,7 @@ void updateOrganisationSraIdShouldReturnSuccess() { //call endpoint to update name as 'updatedname' Map orgUpdatedNameResponse = professionalApiClient.updatesOrganisationSra( - organisationSraUpdateRequest,hmctsAdmin,organisationIdentifier, OK); + organisationSraUpdateRequest,organisationIdentifier, OK); List organisations = (List)orgUpdatedNameResponse.get("organisations"); LinkedHashMap organisation = (LinkedHashMap)organisations.get(0); assertThat(orgUpdatedNameResponse).isNotNull(); @@ -822,7 +822,7 @@ void updateOrganisationNameShouldReturnFailureIfNoName() { new OrganisationSraUpdateRequest(""); Map orgUpdatedNameResponse = professionalApiClient.updatesOrganisationSra( - organisationSraUpdateRequest,hmctsAdmin,organisationIdentifier, BAD_REQUEST); + organisationSraUpdateRequest,organisationIdentifier, BAD_REQUEST); assertThat((String) orgUpdatedNameResponse.get("errorDescription")).contains("SraId is required"); deleteOrganisation(organisationIdentifier); diff --git a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java index 12bacea9da..bd50553b6f 100644 --- a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java +++ b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java @@ -1316,7 +1316,7 @@ public void updateOrganisation(OrganisationCreationRequest organisationCreationR .statusCode(expectedStatus.value()); } - public Map updatesOrganisationSra(OrganisationSraUpdateRequest organisationSraUpdateRequest, String role, + public Map updatesOrganisationSra(OrganisationSraUpdateRequest organisationSraUpdateRequest, String organisationIdentifier, HttpStatus expectedStatus) { Response response = getMultipleAuthHeadersInternal() diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationSraUpdateRequest.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationSraUpdateRequest.java index 4c697a1dc2..4faf54eec3 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationSraUpdateRequest.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationSraUpdateRequest.java @@ -1,7 +1,5 @@ package uk.gov.hmcts.reform.professionalapi.controller.request; -import javax.validation.constraints.NotNull; - import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; @@ -9,13 +7,17 @@ import lombok.Getter; import lombok.Setter; +import javax.validation.Valid; +import javax.validation.constraints.NotNull; + + @Getter @Setter @Builder(builderMethodName = "anOrganisationCreationRequest") @JsonIgnoreProperties(ignoreUnknown = true) public class OrganisationSraUpdateRequest { - @NotNull + @Valid @NotNull(message = "SraId is required.") private String sraId; diff --git a/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java b/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java index 83cdef8e43..d8fc72233c 100644 --- a/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java +++ b/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java @@ -32,8 +32,8 @@ import uk.gov.hmcts.reform.professionalapi.controller.request.InvalidRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrgAttributeRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationCreationRequest; -import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationSraUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationOtherOrgsCreationRequest; +import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationSraUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.PbaRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.UserCreationRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.validator.PaymentAccountValidator; From 770c6cad9790c0205efa88d404de341a1b7f0d05 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Tue, 3 Sep 2024 14:08:50 +0100 Subject: [PATCH 41/64] endpoint to save SraId --- .../ProfessionalInternalUserFunctionalTest.java | 8 ++++---- .../professionalapi/client/ProfessionalApiClient.java | 2 +- .../professionalapi/UpdateOrgSraIntegrationTest.java | 7 ++++--- .../internal/OrganisationInternalController.java | 2 +- .../internal/OrganisationInternalControllerTest.java | 3 ++- .../service/impl/OrganisationServiceImplTest.java | 3 ++- 6 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java index 24706d9bc5..35b1ecce28 100644 --- a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java +++ b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java @@ -788,7 +788,7 @@ void updatePaymentAccountsShouldReturnForbiddenWhenToggledOff() { void updateOrganisationSraIdShouldReturnSuccess() { log.info("updateOrganisationSraIdShouldReturnSuccess :: STARTED"); //create organisation - String updatedSra = "updatedSraId"; + String updatedSra = randomAlphabetic(7); Map response = professionalApiClient.createOrganisation(); String organisationIdentifier = (String) response.get("organisationIdentifier"); assertThat(organisationIdentifier).isNotEmpty(); @@ -798,11 +798,11 @@ void updateOrganisationSraIdShouldReturnSuccess() { new OrganisationSraUpdateRequest(updatedSra); //call endpoint to update name as 'updatedname' - Map orgUpdatedNameResponse = professionalApiClient.updatesOrganisationSra( + Map orgUpdatedSraResponse = professionalApiClient.updatesOrganisationSra( organisationSraUpdateRequest,organisationIdentifier, OK); - List organisations = (List)orgUpdatedNameResponse.get("organisations"); + List organisations = (List)orgUpdatedSraResponse.get("organisations"); LinkedHashMap organisation = (LinkedHashMap)organisations.get(0); - assertThat(orgUpdatedNameResponse).isNotNull(); + assertThat(orgUpdatedSraResponse).isNotNull(); assertNotNull(organisation.get("sraId")); assertThat(organisation.get("sraId").toString()).contains(updatedSra); deleteOrganisation(organisationIdentifier); diff --git a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java index bd50553b6f..eeeea63772 100644 --- a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java +++ b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java @@ -1324,7 +1324,7 @@ public Map updatesOrganisationSra(OrganisationSraUpdateRequest o .put("/refdata/internal/v1/organisations/sra/" + organisationIdentifier) .andReturn(); - log.info("{}:: Update organisation Name response: {}", + log.info("{}:: Update organisation SraId response: {}", loggingComponentName, response.getStatusCode()); response.then() diff --git a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java index 30be50a93a..cdd10551e7 100644 --- a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java +++ b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java @@ -8,6 +8,7 @@ import java.util.List; import java.util.Map; +import static org.apache.commons.lang.RandomStringUtils.randomAlphabetic; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertNotNull; import static uk.gov.hmcts.reform.professionalapi.helper.OrganisationFixtures.organisationRequestWithAllFields; @@ -24,7 +25,7 @@ void update_sra_of_an_active_organisation_with_prd_admin_role_should_return_200( String orgIdentifier = (String)responseForOrganisationCreation.get(ORG_IDENTIFIER); Map orgResponse = professionalReferenceDataClient - .updateOrgName(organisationRequestWithAllFields().sraId("sraId").build(), + .updateOrgName(organisationRequestWithAllFields().sraId(randomAlphabetic(7)).build(), hmctsAdmin,orgIdentifier); LinkedHashMap responseBody = (LinkedHashMap)orgResponse.get("response_body"); List organisations = (List)responseBody.get("organisations"); @@ -65,7 +66,7 @@ void update_sra_with_invalid_name_should_return_400() { .createOrganisation(organisationRequestWithAllFieldsAreUpdated().build()); OrganisationCreationRequest organisationUpdateRequest = organisationRequestWithAllFieldsAreUpdated() - .name("") + .sraId("") .build(); Map updateResponse = professionalReferenceDataClient @@ -83,7 +84,7 @@ void update_sra_with_invalid_name_should_return_200() { .createOrganisation(organisationRequestWithAllFieldsAreUpdated().build()); OrganisationCreationRequest organisationUpdateRequest = organisationRequestWithAllFieldsAreUpdated() - .name(" ") + .sraId(" ") .build(); Map updateResponse = professionalReferenceDataClient diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java index 5c6f3eaed8..82309f5f96 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java @@ -743,7 +743,7 @@ public ResponseEntity retrieveOrganisationByUserId( @ResponseBody @Secured({"prd-admin"}) public ResponseEntity updateOrganisationSra( - @io.swagger.v3.oas.annotations.parameters.RequestBody(description = "organisationCreationRequest") + @io.swagger.v3.oas.annotations.parameters.RequestBody(description = "organisationsraUpdateRequest") @Valid @NotNull @RequestBody OrganisationSraUpdateRequest organisationSraUpdateRequest, @PathVariable("orgId") @NotBlank String organisationIdentifier) { diff --git a/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java b/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java index d7fde48593..2d137e76db 100644 --- a/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java +++ b/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java @@ -66,6 +66,7 @@ import javax.servlet.http.HttpServletRequest; import static java.util.Collections.singletonList; +import static org.apache.commons.lang.RandomStringUtils.randomAlphabetic; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.Assert.assertNotNull; import static org.junit.jupiter.api.Assertions.assertThrows; @@ -578,7 +579,7 @@ void testRetrieveOrgByPbaStatus() { @Test void testUpdateOrgSraId() { final HttpStatus expectedHttpStatus = HttpStatus.OK; - String updatedSraId = "updatedSraId"; + String updatedSraId = randomAlphabetic(7); organisation.setSraId(updatedSraId); organisationSraUpdateRequest.setSraId(updatedSraId); diff --git a/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java b/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java index d8fc72233c..eaa6b5e64f 100644 --- a/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java +++ b/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java @@ -98,6 +98,7 @@ import java.util.UUID; import static java.util.Arrays.asList; +import static org.apache.commons.lang.RandomStringUtils.randomAlphabetic; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; @@ -1939,7 +1940,7 @@ void test_updateStatusAndMessage() { @Test void test_updateOrganisationSra() { - String newSraId = "TestOrgName"; + String newSraId = randomAlphabetic(7); final String orgIdentifier = "9KS20WT"; organisationSraUpdateRequest.setSraId(newSraId); String orgId = UUID.randomUUID().toString().substring(0, 7); From 8e2edd7df1db20e8485217c75de7dec73cae8982 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Tue, 3 Sep 2024 17:35:43 +0100 Subject: [PATCH 42/64] endpoint to save SraId --- .../reform/professionalapi/UpdateOrgSraIntegrationTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java index cdd10551e7..548271e3e1 100644 --- a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java +++ b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java @@ -92,7 +92,7 @@ void update_sra_with_invalid_name_should_return_200() { hmctsAdmin,(String)responseForOrganisationCreation.get(ORG_IDENTIFIER)); assertThat(updateResponse).containsEntry("http_status", "400"); - assertThat(updateResponse.get("response_body").toString()).contains("Name is required"); + assertThat(updateResponse.get("response_body").toString()).contains("SraId is required"); deleteOrganisation((String) responseForOrganisationCreation.get(ORG_IDENTIFIER)); } From 73b166c9e06c2db0412e7fb7cbe7d1bf40937893 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Wed, 4 Sep 2024 10:45:01 +0100 Subject: [PATCH 43/64] Changing endpoint to only update Organisation Name --- .../controller/request/OrganisationSraUpdateRequest.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationSraUpdateRequest.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationSraUpdateRequest.java index 4faf54eec3..4d76dbaf83 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationSraUpdateRequest.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationSraUpdateRequest.java @@ -13,8 +13,7 @@ @Getter @Setter -@Builder(builderMethodName = "anOrganisationCreationRequest") -@JsonIgnoreProperties(ignoreUnknown = true) +@Builder(builderMethodName = "anOrganisationSraUpdateRequest") public class OrganisationSraUpdateRequest { @Valid From 3fef26e568331fffe767dfe2f151f9ceabda0608 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Wed, 4 Sep 2024 10:55:57 +0100 Subject: [PATCH 44/64] Changing endpoint to only update Organisation Name --- .../controller/request/OrganisationSraUpdateRequest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationSraUpdateRequest.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationSraUpdateRequest.java index 4d76dbaf83..24d984041b 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationSraUpdateRequest.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationSraUpdateRequest.java @@ -1,7 +1,6 @@ package uk.gov.hmcts.reform.professionalapi.controller.request; import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Builder; import lombok.Getter; From c85c2933bd7b614450d988dae269aff17ab0a7fb Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Thu, 5 Sep 2024 08:39:51 +0100 Subject: [PATCH 45/64] endpoint to save SraId moved to v2 --- ...nalInternalUserFunctionalForV2ApiTest.java | 44 ++++++++++++ ...rofessionalInternalUserFunctionalTest.java | 54 --------------- .../client/ProfessionalApiClient.java | 2 +- .../UpdateOrgSraIntegrationTest.java | 46 +++++-------- .../util/ProfessionalReferenceDataClient.java | 4 +- .../OrganisationInternalController.java | 64 ----------------- .../OrganisationInternalControllerV2.java | 68 +++++++++++++++++++ .../service/OrganisationService.java | 2 +- .../service/impl/OrganisationServiceImpl.java | 11 ++- .../OrganisationInternalControllerTest.java | 32 +-------- .../OrganisationInternalControllerV2Test.java | 35 +++++++++- .../impl/OrganisationServiceImplTest.java | 2 +- 12 files changed, 177 insertions(+), 187 deletions(-) diff --git a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalForV2ApiTest.java b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalForV2ApiTest.java index 3e3c9e0882..6148c00470 100644 --- a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalForV2ApiTest.java +++ b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalForV2ApiTest.java @@ -14,6 +14,7 @@ import uk.gov.hmcts.reform.professionalapi.controller.request.NewUserCreationRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationByProfileIdsRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationOtherOrgsCreationRequest; +import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationSraUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.UsersInOrganisationsByOrganisationIdentifiersRequest; import uk.gov.hmcts.reform.professionalapi.controller.response.UsersInOrganisationsByOrganisationIdentifiersResponse; import uk.gov.hmcts.reform.professionalapi.domain.OrganisationStatus; @@ -25,11 +26,15 @@ import java.time.LocalDateTime; import java.util.ArrayList; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import static org.apache.commons.lang.RandomStringUtils.randomAlphabetic; import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.springframework.http.HttpStatus.BAD_REQUEST; import static org.springframework.http.HttpStatus.NOT_FOUND; import static org.springframework.http.HttpStatus.NO_CONTENT; import static org.springframework.http.HttpStatus.OK; @@ -529,4 +534,43 @@ private void verifyOrganisationDetailsBySinceDateV2(Map response }); } + + @Test + void updateOrganisationSraIdShouldReturnSuccess() { + log.info("updateOrganisationSraIdShouldReturnSuccess :: STARTED"); + String updatedSra = randomAlphabetic(7); + //create request to update organisation + OrganisationSraUpdateRequest organisationSraUpdateRequest = + new OrganisationSraUpdateRequest(updatedSra); + + //call endpoint to update name as 'updatedname' + Map orgUpdatedSraResponse = professionalApiClient.updatesOrganisationSra( + organisationSraUpdateRequest,intActiveOrgId, OK); + List organisations = (List)orgUpdatedSraResponse.get("organisations"); + LinkedHashMap organisation = (LinkedHashMap)organisations.get(0); + assertThat(orgUpdatedSraResponse).isNotNull(); + assertNotNull(organisation.get("sraId")); + assertThat(organisation.get("sraId").toString()).isEqualTo(updatedSra); + + List organisationAttributes = (List)organisation.get("organisationAttributes"); + //assertThat(organisation.get("organisationAttributes").toString()).contains(updatedSra); + log.info("updateOrganisationSraIdShouldReturnSuccess :: END"); + } + + @Test + void updateOrganisationNameShouldReturnFailureIfNoName() { + log.info("updateOrganisationNameShouldReturnSuccess :: STARTED"); + + OrganisationSraUpdateRequest organisationSraUpdateRequest = + new OrganisationSraUpdateRequest(""); + + Map orgUpdatedNameResponse = professionalApiClient.updatesOrganisationSra( + organisationSraUpdateRequest,intActiveOrgId, BAD_REQUEST); + + assertThat((String) orgUpdatedNameResponse.get("errorDescription")).isEqualTo("SraId is required"); + + log.info("updateOrganisationNameShouldReturnSuccess :: END"); + } + + } diff --git a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java index 35b1ecce28..f2ed07347e 100644 --- a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java +++ b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalTest.java @@ -16,7 +16,6 @@ import uk.gov.hmcts.reform.professionalapi.controller.request.MfaUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.NewUserCreationRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationCreationRequest; -import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationSraUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.PbaRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.PbaUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.UpdatePbaRequest; @@ -36,7 +35,6 @@ import java.util.Comparator; import java.util.HashMap; import java.util.HashSet; -import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Set; @@ -783,52 +781,6 @@ void updatePaymentAccountsShouldReturnForbiddenWhenToggledOff() { log.info("updatePaymentAccountsShouldReturnForbiddenWhenToggledOff :: END"); } - @Test - @ToggleEnable(mapKey = "OrganisationInternalController.updateOrganisationNameOrSra", withFeature = false) - void updateOrganisationSraIdShouldReturnSuccess() { - log.info("updateOrganisationSraIdShouldReturnSuccess :: STARTED"); - //create organisation - String updatedSra = randomAlphabetic(7); - Map response = professionalApiClient.createOrganisation(); - String organisationIdentifier = (String) response.get("organisationIdentifier"); - assertThat(organisationIdentifier).isNotEmpty(); - - //create request to update organisation - OrganisationSraUpdateRequest organisationSraUpdateRequest = - new OrganisationSraUpdateRequest(updatedSra); - - //call endpoint to update name as 'updatedname' - Map orgUpdatedSraResponse = professionalApiClient.updatesOrganisationSra( - organisationSraUpdateRequest,organisationIdentifier, OK); - List organisations = (List)orgUpdatedSraResponse.get("organisations"); - LinkedHashMap organisation = (LinkedHashMap)organisations.get(0); - assertThat(orgUpdatedSraResponse).isNotNull(); - assertNotNull(organisation.get("sraId")); - assertThat(organisation.get("sraId").toString()).contains(updatedSra); - deleteOrganisation(organisationIdentifier); - log.info("updateOrganisationSraIdShouldReturnSuccess :: END"); - } - - @Test - @ToggleEnable(mapKey = "OrganisationInternalController.updateOrganisationNameOrSra", withFeature = false) - void updateOrganisationNameShouldReturnFailureIfNoName() { - log.info("updateOrganisationNameShouldReturnSuccess :: STARTED"); - - Map response = professionalApiClient.createOrganisation(); - String organisationIdentifier = (String) response.get("organisationIdentifier"); - assertThat(organisationIdentifier).isNotEmpty(); - - OrganisationSraUpdateRequest organisationSraUpdateRequest = - new OrganisationSraUpdateRequest(""); - - Map orgUpdatedNameResponse = professionalApiClient.updatesOrganisationSra( - organisationSraUpdateRequest,organisationIdentifier, BAD_REQUEST); - - assertThat((String) orgUpdatedNameResponse.get("errorDescription")).contains("SraId is required"); - deleteOrganisation(organisationIdentifier); - log.info("updateOrganisationNameShouldReturnSuccess :: END"); - } - @Test void findOrganisationsWithPaginationShouldReturnSuccess() { log.info("findOrganisationsWithPaginationShouldReturnSuccess :: STARTED"); @@ -1281,10 +1233,4 @@ private static List> sortByValue(final List updatesOrganisationSra(OrganisationSraUpdateRequest o Response response = getMultipleAuthHeadersInternal() .body(organisationSraUpdateRequest) - .put("/refdata/internal/v1/organisations/sra/" + organisationIdentifier) + .put("/refdata/internal/v1/organisations/" + organisationIdentifier + "/sra") .andReturn(); log.info("{}:: Update organisation SraId response: {}", diff --git a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java index 548271e3e1..32ee83f409 100644 --- a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java +++ b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java @@ -25,7 +25,7 @@ void update_sra_of_an_active_organisation_with_prd_admin_role_should_return_200( String orgIdentifier = (String)responseForOrganisationCreation.get(ORG_IDENTIFIER); Map orgResponse = professionalReferenceDataClient - .updateOrgName(organisationRequestWithAllFields().sraId(randomAlphabetic(7)).build(), + .updateOrgSra(organisationRequestWithAllFields().sraId(randomAlphabetic(7)).build(), hmctsAdmin,orgIdentifier); LinkedHashMap responseBody = (LinkedHashMap)orgResponse.get("response_body"); List organisations = (List)responseBody.get("organisations"); @@ -34,66 +34,61 @@ void update_sra_of_an_active_organisation_with_prd_admin_role_should_return_200( assertNotNull(organisation.get("sraId")); assertThat(organisation.get("sraId").toString()).contains("sraId"); assertThat(orgResponse.get("http_status")).isEqualTo(200); - deleteOrganisation(orgIdentifier); + + List organisationAttributes = (List)organisation.get("organisationAttributes"); + //assertThat(organisation.get("organisationAttributes").toString()).contains(updatedSra); } @Test void update_sra_with_bad_request_should_return_400() { Map updateResponse = professionalReferenceDataClient - .updateOrgName(null, hmctsAdmin,getOrganisationId()); + .updateOrgSra(null, hmctsAdmin,getOrganisationId()); assertThat(updateResponse).containsEntry("http_status", "400"); assertThat(updateResponse.get("response_body").toString()) - .contains("Required request body is missing:" - + " public org.springframework.http.ResponseEntity" - + ""); + .contains("Required request body is missing:"); } @Test void update_sra_with_bad_request_OrgId_missing_should_return_400() { Map updateResponse = professionalReferenceDataClient - .updateOrgName(organisationRequestWithAllFields().build(), hmctsAdmin,null); + .updateOrgSra(organisationRequestWithAllFields().build(), hmctsAdmin,null); - assertThat(updateResponse).containsEntry("http_status", "404"); + assertThat(updateResponse).containsEntry("http_status", "400"); assertThat(updateResponse.get("response_body").toString()) - .contains("Resource not found"); + .contains("The given organisationIdentifier must be 7 Alphanumeric Characters"); } @Test void update_sra_with_invalid_name_should_return_400() { - java.util.Map responseForOrganisationCreation = professionalReferenceDataClient - .createOrganisation(organisationRequestWithAllFieldsAreUpdated().build()); OrganisationCreationRequest organisationUpdateRequest = organisationRequestWithAllFieldsAreUpdated() .sraId("") .build(); Map updateResponse = professionalReferenceDataClient - .updateOrgName(organisationUpdateRequest, - hmctsAdmin,(String) responseForOrganisationCreation.get(ORG_IDENTIFIER)); + .updateOrgSra(organisationUpdateRequest, + hmctsAdmin,getOrganisationId()); assertThat(updateResponse).containsEntry("http_status", "400"); - assertThat(updateResponse.get("response_body").toString()).contains("Name is required"); - deleteOrganisation((String) responseForOrganisationCreation.get(ORG_IDENTIFIER)); + assertThat(updateResponse.get("response_body").toString()).isEqualTo("Sra Id is required"); + } @Test void update_sra_with_invalid_name_should_return_200() { - java.util.Map responseForOrganisationCreation = professionalReferenceDataClient - .createOrganisation(organisationRequestWithAllFieldsAreUpdated().build()); - OrganisationCreationRequest organisationUpdateRequest = organisationRequestWithAllFieldsAreUpdated() .sraId(" ") .build(); Map updateResponse = professionalReferenceDataClient - .updateOrgName(organisationUpdateRequest, - hmctsAdmin,(String)responseForOrganisationCreation.get(ORG_IDENTIFIER)); + .updateOrgSra(organisationUpdateRequest, + hmctsAdmin,getOrganisationId()); assertThat(updateResponse).containsEntry("http_status", "400"); - assertThat(updateResponse.get("response_body").toString()).contains("SraId is required"); - deleteOrganisation((String) responseForOrganisationCreation.get(ORG_IDENTIFIER)); + assertThat(updateResponse.get("response_body").toString()).isEqualTo("SraId is required"); + } @@ -104,11 +99,4 @@ private String getOrganisationId() { return organisationIdentifier; } - public void deleteOrganisation(String orgIdentifier) { - Map deleteResponse = professionalReferenceDataClient.deleteOrganisation(hmctsAdmin, - orgIdentifier); - - assertThat(deleteResponse.get("http_status")).isEqualTo(204); - - } } diff --git a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/util/ProfessionalReferenceDataClient.java b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/util/ProfessionalReferenceDataClient.java index 26194409ea..85a40ed0aa 100644 --- a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/util/ProfessionalReferenceDataClient.java +++ b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/util/ProfessionalReferenceDataClient.java @@ -1024,11 +1024,11 @@ public Map findOrganisationsByUserId(String userId, String role) - public Map updateOrgName( + public Map updateOrgSra( OrganisationCreationRequest organisationCreationRequest, String role, String organisationIdentifier) { ResponseEntity responseEntity = null; - String urlPath = "http://localhost:" + prdApiPort + APP_INT_BASE_PATH + "/name/" + organisationIdentifier; + String urlPath = "http://localhost:" + prdApiPort + APP_INT_BASE_PATH + "/" + organisationIdentifier + "/sra"; try { HttpEntity requestEntity = new HttpEntity<>(organisationCreationRequest, getMultipleAuthHeaders(role)); diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java index 82309f5f96..e500cbe5ff 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java @@ -34,7 +34,6 @@ import uk.gov.hmcts.reform.professionalapi.controller.request.NewUserCreationRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationByProfileIdsRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationCreationRequest; -import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationSraUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.PbaRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.UpdatePbaRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.validator.impl.OrganisationByProfileIdsRequestValidator; @@ -57,13 +56,11 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Pattern; -import static org.apache.commons.lang.StringUtils.isBlank; import static org.apache.commons.lang3.BooleanUtils.isNotTrue; import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; import static uk.gov.hmcts.reform.professionalapi.controller.constants.ProfessionalApiConstants.ORGANISATION_IDENTIFIER_FORMAT_REGEX; import static uk.gov.hmcts.reform.professionalapi.controller.constants.ProfessionalApiConstants.ORG_ID_VALIDATION_ERROR_MESSAGE; import static uk.gov.hmcts.reform.professionalapi.controller.constants.ProfessionalApiConstants.ORG_NOT_ACTIVE; -import static uk.gov.hmcts.reform.professionalapi.util.RefDataUtil.removeEmptySpaces; @RequestMapping( path = "refdata/internal/v1/organisations" @@ -700,67 +697,6 @@ public ResponseEntity retrieveOrganisationByUserId( return organisationService.retrieveOrganisationByUserId(userId); } - @Operation( - summary = "Updates an Organisation's name", - description = "**IDAM Roles to access API** :
prd-admin", - security = { - @SecurityRequirement(name = "ServiceAuthorization"), - @SecurityRequirement(name = "Authorization") - }) - - @ApiResponse( - responseCode = "200", - description = "Organisation name has been updated", - content = @Content(schema = @Schema(implementation = String.class)) - ) - @ApiResponse( - responseCode = "400", - description = "If Organisation request sent with null/invalid values for mandatory fields", - content = @Content - ) - @ApiResponse( - responseCode = "403", - description = "Forbidden Error: Access denied", - content = @Content - ) - @ApiResponse( - responseCode = "404", - description = "No Organisation found with the given ID", - content = @Content - ) - @ApiResponse( - responseCode = "500", - description = "Internal Server Error", - content = @Content - ) - - @PutMapping( - value = "/sra/{orgId}", - consumes = APPLICATION_JSON_VALUE, - produces = APPLICATION_JSON_VALUE - ) - @ResponseStatus(value = HttpStatus.CREATED) - @ResponseBody - @Secured({"prd-admin"}) - public ResponseEntity updateOrganisationSra( - @io.swagger.v3.oas.annotations.parameters.RequestBody(description = "organisationsraUpdateRequest") - @Valid @NotNull @RequestBody OrganisationSraUpdateRequest organisationSraUpdateRequest, - @PathVariable("orgId") @NotBlank String organisationIdentifier) { - - var orgId = removeEmptySpaces(organisationIdentifier); - organisationCreationRequestValidator.validateOrganisationIdentifier(orgId); - - if (isBlank(organisationSraUpdateRequest.getSraId())) { - throw new InvalidRequest("SRA Id is required"); - } - - OrganisationsDetailResponse organisationsDetailResponse = organisationService - .updateOrganisationSra(organisationSraUpdateRequest, orgId); - - ResponseEntity resp = ResponseEntity.status(200).body(organisationsDetailResponse); - return resp; - } - @Operation( summary = "Retrieves Organisations by Organisation Profile IDs", diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2.java index fddf0c8700..4cf6020bed 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2.java @@ -25,7 +25,9 @@ import org.springframework.web.bind.annotation.RestController; import uk.gov.hmcts.reform.professionalapi.configuration.resolver.UserId; import uk.gov.hmcts.reform.professionalapi.controller.SuperController; +import uk.gov.hmcts.reform.professionalapi.controller.request.InvalidRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationOtherOrgsCreationRequest; +import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationSraUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.response.OrganisationPbaResponseV2; import uk.gov.hmcts.reform.professionalapi.controller.response.OrganisationResponse; import uk.gov.hmcts.reform.professionalapi.controller.response.OrganisationsDetailResponseV2; @@ -35,9 +37,11 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Pattern; +import static org.apache.commons.lang.StringUtils.isBlank; import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; import static uk.gov.hmcts.reform.professionalapi.controller.constants.ProfessionalApiConstants.ORGANISATION_IDENTIFIER_FORMAT_REGEX; import static uk.gov.hmcts.reform.professionalapi.controller.constants.ProfessionalApiConstants.ORG_ID_VALIDATION_ERROR_MESSAGE; +import static uk.gov.hmcts.reform.professionalapi.util.RefDataUtil.removeEmptySpaces; @RequestMapping( path = "refdata/internal/v2/organisations" @@ -242,4 +246,68 @@ public ResponseEntity updatesOrganisation( return updateOrganisationById(organisationCreationRequest, organisationIdentifier); } + + + @Operation( + summary = "Updates an Organisation's name", + description = "**IDAM Roles to access API** :
prd-admin", + security = { + @SecurityRequirement(name = "ServiceAuthorization"), + @SecurityRequirement(name = "Authorization") + }) + + @ApiResponse( + responseCode = "200", + description = "Organisation name has been updated", + content = @Content(schema = @Schema(implementation = String.class)) + ) + @ApiResponse( + responseCode = "400", + description = "If Organisation request sent with null/invalid values for mandatory fields", + content = @Content + ) + @ApiResponse( + responseCode = "403", + description = "Forbidden Error: Access denied", + content = @Content + ) + @ApiResponse( + responseCode = "404", + description = "No Organisation found with the given ID", + content = @Content + ) + @ApiResponse( + responseCode = "500", + description = "Internal Server Error", + content = @Content + ) + + @PutMapping( + value = "/{orgId}/sra", + consumes = APPLICATION_JSON_VALUE, + produces = APPLICATION_JSON_VALUE + ) + @ResponseStatus(value = HttpStatus.CREATED) + @ResponseBody + @Secured({"prd-admin"}) + public ResponseEntity updateOrganisationSra( + @io.swagger.v3.oas.annotations.parameters.RequestBody(description = "organisationsraUpdateRequest") + @Valid @NotNull @RequestBody OrganisationSraUpdateRequest organisationSraUpdateRequest, + @PathVariable("orgId") @NotBlank String organisationIdentifier) { + + var orgId = removeEmptySpaces(organisationIdentifier); + organisationIdentifierValidatorImpl.validateOrganisationExistsAndActive(orgId); + + if (isBlank(organisationSraUpdateRequest.getSraId())) { + throw new InvalidRequest("SRA Id is required"); + } + + OrganisationsDetailResponseV2 organisationsDetailResponse = organisationService + .updateOrganisationSra(organisationSraUpdateRequest, orgId); + + ResponseEntity resp = ResponseEntity.status(200).body( + organisationsDetailResponse); + return resp; + } + } diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/OrganisationService.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/OrganisationService.java index 3681fcb2b1..2e7e139abd 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/OrganisationService.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/OrganisationService.java @@ -47,7 +47,7 @@ OrganisationsDetailResponseV2 findByOrganisationStatusForV2Api(LocalDateTime for OrganisationEntityResponse retrieveOrganisation(String organisationIdentifier, boolean isPendingPbaRequired); - OrganisationsDetailResponse updateOrganisationSra( + OrganisationsDetailResponseV2 updateOrganisationSra( OrganisationSraUpdateRequest organisationSraUpdateRequest, String organisationIdentifier); OrganisationResponse updateOrganisation(OrganisationCreationRequest organisationCreationRequest, diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java index c32e0bbb37..b3f63096e2 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java @@ -1083,7 +1083,7 @@ public OrgAttribute saveOrganisationAttributes(Organisation existingOrganisation @Override @Transactional - public OrganisationsDetailResponse updateOrganisationSra( + public OrganisationsDetailResponseV2 updateOrganisationSra( OrganisationSraUpdateRequest organisationSraUpdateRequest, String organisationIdentifier) { var existingOrganisation = organisationRepository.findByOrganisationIdentifier(organisationIdentifier); @@ -1101,9 +1101,14 @@ public OrganisationsDetailResponse updateOrganisationSra( } savedOrganisation = organisationRepository.save(existingOrganisation); } + List organisationList = new ArrayList<>(); + organisationList.add(savedOrganisation); + OrganisationsDetailResponseV2 organisationsDetailResponse = new OrganisationsDetailResponseV2( + organisationList, true, false, false, + true); + + return organisationsDetailResponse; - return new OrganisationsDetailResponse(List.of(savedOrganisation),false, - false,false); } diff --git a/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java b/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java index 2d137e76db..0d77dba122 100644 --- a/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java +++ b/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java @@ -25,7 +25,6 @@ import uk.gov.hmcts.reform.professionalapi.controller.request.NewUserCreationRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationCreationRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationOtherOrgsCreationRequest; -import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationSraUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.PbaRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.UserCreationRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.UserProfileCreationRequest; @@ -66,13 +65,11 @@ import javax.servlet.http.HttpServletRequest; import static java.util.Collections.singletonList; -import static org.apache.commons.lang.RandomStringUtils.randomAlphabetic; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.Assert.assertNotNull; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; @@ -90,7 +87,6 @@ class OrganisationInternalControllerTest { private PaymentAccountService paymentAccountServiceMock; private Organisation organisation; private OrganisationCreationRequest organisationCreationRequest; - private OrganisationSraUpdateRequest organisationSraUpdateRequest; private OrganisationOtherOrgsCreationRequest organisationOtherOrgsCreationRequest; private OrganisationCreationRequestValidator organisationCreationRequestValidatorMock; private PaymentAccountValidator paymentAccountValidatorMock; @@ -165,7 +161,7 @@ void setUp() throws Exception { organisationOtherOrgsCreationRequest = new OrganisationOtherOrgsCreationRequest("test", "PENDING", null, "sra-id", "false", "number02", "company-url", userCreationRequest, null, null,"Doctor",null); - organisationSraUpdateRequest = new OrganisationSraUpdateRequest("sraId"); + organisation.setOrganisationIdentifier("AK57L4T"); organisationResponse = new OrganisationResponse(organisation); @@ -576,31 +572,5 @@ void testRetrieveOrgByPbaStatus() { .getOrganisationsByPbaStatus(pbaStatus.toString()); } - @Test - void testUpdateOrgSraId() { - final HttpStatus expectedHttpStatus = HttpStatus.OK; - String updatedSraId = randomAlphabetic(7); - organisation.setSraId(updatedSraId); - organisationSraUpdateRequest.setSraId(updatedSraId); - - doNothing().when(organisationCreationRequestValidatorMock).validateOrganisationIdentifier(any(String.class)); - assertThat(organisationSraUpdateRequest.getSraId()).isNotEmpty(); - - when(organisationServiceMock.updateOrganisationSra(organisationSraUpdateRequest, - organisation.getOrganisationIdentifier())).thenReturn(new OrganisationsDetailResponse(List.of(organisation), - false,false,false)); - - ResponseEntity response = organisationInternalController - .updateOrganisationSra(organisationSraUpdateRequest,organisation.getOrganisationIdentifier()); - - assertThat(response).isNotNull(); - assertThat(response.getStatusCode()).isEqualTo(expectedHttpStatus); - - verify(organisationCreationRequestValidatorMock, times(1)) - .validateOrganisationIdentifier(any(String.class)); - verify(organisationServiceMock, times(1)) - .updateOrganisationSra(organisationSraUpdateRequest, organisation.getOrganisationIdentifier()); - - } } diff --git a/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2Test.java b/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2Test.java index b46e947767..715594bfaf 100644 --- a/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2Test.java +++ b/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2Test.java @@ -19,6 +19,7 @@ import uk.gov.hmcts.reform.professionalapi.controller.request.NewUserCreationRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrgAttributeRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationOtherOrgsCreationRequest; +import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationSraUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.UserCreationRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.UserProfileCreationRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.validator.OrganisationCreationRequestValidator; @@ -47,6 +48,7 @@ import javax.servlet.http.HttpServletRequest; import static java.util.Collections.singletonList; +import static org.apache.commons.lang.RandomStringUtils.randomAlphabetic; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.mockito.ArgumentMatchers.any; @@ -69,6 +71,8 @@ class OrganisationInternalControllerV2Test { private ProfessionalUserService professionalUserServiceMock; + private OrganisationIdentifierValidatorImpl orgIdValidatorMock; + private OrganisationOtherOrgsCreationRequest organisationOtherOrgsCreationRequest; private UserCreationRequest userCreationRequest; @@ -88,6 +92,7 @@ class OrganisationInternalControllerV2Test { private List prdEnumList; + private OrganisationSraUpdateRequest organisationSraUpdateRequest; @InjectMocks private OrganisationInternalControllerV2 organisationInternalController; @@ -125,10 +130,11 @@ void setUp() throws Exception { newUserCreationRequest = new NewUserCreationRequest("some-name", "some-last-name", "some@email.com", userRoles, false, userAccessTypes); organisationCreationRequestValidatorMock = mock(OrganisationCreationRequestValidator.class); + orgIdValidatorMock = mock(OrganisationIdentifierValidatorImpl.class); prdEnumServiceMock = mock(PrdEnumServiceImpl.class); userProfileFeignClient = mock(UserProfileFeignClient.class); organisation.setOrganisationIdentifier("AK57L4T"); - + organisationSraUpdateRequest = new OrganisationSraUpdateRequest("sraId"); organisationOtherOrgsCreationRequest = new OrganisationOtherOrgsCreationRequest("test", "PENDING", "Status message", "sra-id", "false", "number02", "company-url", @@ -335,4 +341,31 @@ void testUpdateOrganisation()throws JsonProcessingException { verify(professionalUserServiceMock, times(1)).findProfessionalUserById(any()); } + @Test + void testUpdateOrgSraId() { + final HttpStatus expectedHttpStatus = HttpStatus.OK; + String updatedSraId = randomAlphabetic(7); + organisation.setSraId(updatedSraId); + organisationSraUpdateRequest.setSraId(updatedSraId); + + assertThat(organisationSraUpdateRequest.getSraId()).isNotEmpty(); + + when(organisationServiceMock.updateOrganisationSra(organisationSraUpdateRequest, + organisation.getOrganisationIdentifier())).thenReturn(new OrganisationsDetailResponseV2( + List.of(organisation),true, false, false, + true)); + + ResponseEntity response = organisationInternalController + .updateOrganisationSra(organisationSraUpdateRequest,organisation.getOrganisationIdentifier()); + + assertThat(response).isNotNull(); + assertThat(response.getStatusCode()).isEqualTo(expectedHttpStatus); + + verify(orgIdValidatorMock, times(1)).validateOrganisationExistsAndActive( + organisation.getOrganisationIdentifier()); + verify(organisationServiceMock, times(1)) + .updateOrganisationSra(organisationSraUpdateRequest, organisation.getOrganisationIdentifier()); + } + + } diff --git a/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java b/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java index eaa6b5e64f..4f1356d1a3 100644 --- a/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java +++ b/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java @@ -1965,7 +1965,7 @@ void test_updateOrganisationSra() { when(organisationRepository.save(organisationMock)).thenReturn(organisationMock); - OrganisationsDetailResponse updatedOrganisation = sut.updateOrganisationSra( + OrganisationsDetailResponseV2 updatedOrganisation = sut.updateOrganisationSra( organisationSraUpdateRequest,orgIdentifier); assertThat(updatedOrganisation).isNotNull(); From 70a0726f81d1843180a2a8cb8679c9c1d2b18e5c Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Thu, 5 Sep 2024 08:54:40 +0100 Subject: [PATCH 46/64] endpoint to save SraId moved to v2 --- .../internal/OrganisationInternalControllerV2Test.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2Test.java b/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2Test.java index 715594bfaf..07e6cfd22f 100644 --- a/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2Test.java +++ b/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2Test.java @@ -71,8 +71,6 @@ class OrganisationInternalControllerV2Test { private ProfessionalUserService professionalUserServiceMock; - private OrganisationIdentifierValidatorImpl orgIdValidatorMock; - private OrganisationOtherOrgsCreationRequest organisationOtherOrgsCreationRequest; private UserCreationRequest userCreationRequest; @@ -130,7 +128,6 @@ void setUp() throws Exception { newUserCreationRequest = new NewUserCreationRequest("some-name", "some-last-name", "some@email.com", userRoles, false, userAccessTypes); organisationCreationRequestValidatorMock = mock(OrganisationCreationRequestValidator.class); - orgIdValidatorMock = mock(OrganisationIdentifierValidatorImpl.class); prdEnumServiceMock = mock(PrdEnumServiceImpl.class); userProfileFeignClient = mock(UserProfileFeignClient.class); organisation.setOrganisationIdentifier("AK57L4T"); @@ -361,10 +358,11 @@ void testUpdateOrgSraId() { assertThat(response).isNotNull(); assertThat(response.getStatusCode()).isEqualTo(expectedHttpStatus); - verify(orgIdValidatorMock, times(1)).validateOrganisationExistsAndActive( + verify(organisationIdentifierValidatorImpl, times(1)).validateOrganisationExistsAndActive( organisation.getOrganisationIdentifier()); verify(organisationServiceMock, times(1)) .updateOrganisationSra(organisationSraUpdateRequest, organisation.getOrganisationIdentifier()); + } From 6e5a4aa774cdbcf39837f93d4ddd90773768c4c5 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Thu, 5 Sep 2024 10:25:16 +0100 Subject: [PATCH 47/64] endpoint to save SraId moved to v2 --- .../client/ProfessionalApiClient.java | 2 +- .../UpdateOrgSraIntegrationTest.java | 21 ++++++++++++------- .../util/ProfessionalReferenceDataClient.java | 2 +- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java index bdc9a1a4ad..2929716c6a 100644 --- a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java +++ b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java @@ -1321,7 +1321,7 @@ public Map updatesOrganisationSra(OrganisationSraUpdateRequest o Response response = getMultipleAuthHeadersInternal() .body(organisationSraUpdateRequest) - .put("/refdata/internal/v1/organisations/" + organisationIdentifier + "/sra") + .put("/refdata/internal/v2/organisations/" + organisationIdentifier + "/sra") .andReturn(); log.info("{}:: Update organisation SraId response: {}", diff --git a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java index 32ee83f409..9a8fd58e51 100644 --- a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java +++ b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java @@ -20,23 +20,30 @@ class UpdateOrgSraIntegrationTest extends AuthorizationEnabledIntegrationTest { @Test void update_sra_of_an_active_organisation_with_prd_admin_role_should_return_200() { - java.util.Map responseForOrganisationCreation = professionalReferenceDataClient - .createOrganisation(organisationRequestWithAllFieldsAreUpdated().build()); - String orgIdentifier = (String)responseForOrganisationCreation.get(ORG_IDENTIFIER); + String orgIdentifier = getOrganisationId(); + String sraId = randomAlphabetic(7); Map orgResponse = professionalReferenceDataClient - .updateOrgSra(organisationRequestWithAllFields().sraId(randomAlphabetic(7)).build(), + .updateOrgSra(organisationRequestWithAllFields().sraId(sraId).build(), hmctsAdmin,orgIdentifier); LinkedHashMap responseBody = (LinkedHashMap)orgResponse.get("response_body"); List organisations = (List)responseBody.get("organisations"); LinkedHashMap organisation = (LinkedHashMap)organisations.get(0); assertThat(orgResponse).isNotNull(); assertNotNull(organisation.get("sraId")); - assertThat(organisation.get("sraId").toString()).contains("sraId"); + assertThat(organisation.get("sraId").toString()).contains(sraId); assertThat(orgResponse.get("http_status")).isEqualTo(200); - List organisationAttributes = (List)organisation.get("organisationAttributes"); - //assertThat(organisation.get("organisationAttributes").toString()).contains(updatedSra); + List organisationAttributes = (List)organisation.get("orgAttributes"); + assertThat(organisationAttributes).isNotNull(); + + LinkedHashMap attr = (LinkedHashMap)organisationAttributes.get(0); + assertThat(attr).isNotNull(); + assertThat(attr.get("key")).isEqualTo("regulators-0"); + assertThat(attr.get("value").toString()).isEqualTo( + "{\"regulatorType\":\"Solicitor Regulation Authority " + + "(SRA)\",\"organisationRegistrationNumber\":\""+sraId+"\"}"); + } @Test diff --git a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/util/ProfessionalReferenceDataClient.java b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/util/ProfessionalReferenceDataClient.java index 85a40ed0aa..16789c36f1 100644 --- a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/util/ProfessionalReferenceDataClient.java +++ b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/util/ProfessionalReferenceDataClient.java @@ -1028,7 +1028,7 @@ public Map updateOrgSra( OrganisationCreationRequest organisationCreationRequest, String role, String organisationIdentifier) { ResponseEntity responseEntity = null; - String urlPath = "http://localhost:" + prdApiPort + APP_INT_BASE_PATH + "/" + organisationIdentifier + "/sra"; + String urlPath = "http://localhost:" + prdApiPort + APP_INT_V2_BASE_PATH + "/" + organisationIdentifier + "/sra"; try { HttpEntity requestEntity = new HttpEntity<>(organisationCreationRequest, getMultipleAuthHeaders(role)); From bd190b3439791c59f007502a52291312be681755 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Thu, 5 Sep 2024 11:39:33 +0100 Subject: [PATCH 48/64] endpoint to save SraId moved to v2 --- ...rofessionalInternalUserFunctionalForV2ApiTest.java | 11 +++++++++-- .../professionalapi/UpdateOrgSraIntegrationTest.java | 4 ++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalForV2ApiTest.java b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalForV2ApiTest.java index 6148c00470..5c865ce230 100644 --- a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalForV2ApiTest.java +++ b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalForV2ApiTest.java @@ -552,8 +552,15 @@ void updateOrganisationSraIdShouldReturnSuccess() { assertNotNull(organisation.get("sraId")); assertThat(organisation.get("sraId").toString()).isEqualTo(updatedSra); - List organisationAttributes = (List)organisation.get("organisationAttributes"); - //assertThat(organisation.get("organisationAttributes").toString()).contains(updatedSra); + List organisationAttributes = (List)organisation.get("orgAttributes"); + assertThat(organisationAttributes).isNotNull(); + + LinkedHashMap attr = (LinkedHashMap)organisationAttributes.get(0); + assertThat(attr).isNotNull(); + assertThat(attr.get("key")).isEqualTo("regulators-0"); + assertThat(attr.get("value").toString()).isEqualTo( + "{\"regulatorType\":\"Solicitor Regulation Authority " + + "(SRA)\",\"organisationRegistrationNumber\":\"" + updatedSra + "\"}"); log.info("updateOrganisationSraIdShouldReturnSuccess :: END"); } diff --git a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java index 9a8fd58e51..2b2f25b19d 100644 --- a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java +++ b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java @@ -41,8 +41,8 @@ void update_sra_of_an_active_organisation_with_prd_admin_role_should_return_200( assertThat(attr).isNotNull(); assertThat(attr.get("key")).isEqualTo("regulators-0"); assertThat(attr.get("value").toString()).isEqualTo( - "{\"regulatorType\":\"Solicitor Regulation Authority " + - "(SRA)\",\"organisationRegistrationNumber\":\""+sraId+"\"}"); + "{\"regulatorType\":\"Solicitor Regulation Authority " + + "(SRA)\",\"organisationRegistrationNumber\":\"" + sraId + "\"}"); } From 7396023bbd224acf3a02f65d453be680a69e083d Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Fri, 6 Sep 2024 13:41:15 +0100 Subject: [PATCH 49/64] Changes to fix review comments --- ...nalInternalUserFunctionalForV2ApiTest.java | 53 +++++++++++++------ .../client/ProfessionalApiClient.java | 4 +- .../UpdateOrgSraIntegrationTest.java | 43 ++++++++------- .../util/ProfessionalReferenceDataClient.java | 8 +-- .../OrganisationInternalControllerV2.java | 8 ++- .../service/OrganisationService.java | 2 +- .../service/impl/OrganisationServiceImpl.java | 16 ++---- .../OrganisationInternalControllerV2Test.java | 10 ++-- .../impl/OrganisationServiceImplTest.java | 7 ++- 9 files changed, 81 insertions(+), 70 deletions(-) diff --git a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalForV2ApiTest.java b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalForV2ApiTest.java index 5c865ce230..3fc4fe3527 100644 --- a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalForV2ApiTest.java +++ b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalForV2ApiTest.java @@ -13,6 +13,7 @@ import uk.gov.hmcts.reform.lib.util.serenity5.SerenityTest; import uk.gov.hmcts.reform.professionalapi.controller.request.NewUserCreationRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationByProfileIdsRequest; +import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationCreationRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationOtherOrgsCreationRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationSraUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.UsersInOrganisationsByOrganisationIdentifiersRequest; @@ -38,6 +39,7 @@ import static org.springframework.http.HttpStatus.NOT_FOUND; import static org.springframework.http.HttpStatus.NO_CONTENT; import static org.springframework.http.HttpStatus.OK; +import static uk.gov.hmcts.reform.professionalapi.client.ProfessionalApiClient.createOrganisationRequest; import static uk.gov.hmcts.reform.professionalapi.client.ProfessionalApiClient.createOrganisationRequestForV2; import static uk.gov.hmcts.reform.professionalapi.util.DateUtils.convertStringToLocalDate; import static uk.gov.hmcts.reform.professionalapi.util.DateUtils.generateRandomDate; @@ -539,20 +541,24 @@ private void verifyOrganisationDetailsBySinceDateV2(Map response void updateOrganisationSraIdShouldReturnSuccess() { log.info("updateOrganisationSraIdShouldReturnSuccess :: STARTED"); String updatedSra = randomAlphabetic(7); - //create request to update organisation + String organisationIdentifier = getActiveOrganisationId(); + //create request to update sraid OrganisationSraUpdateRequest organisationSraUpdateRequest = new OrganisationSraUpdateRequest(updatedSra); - //call endpoint to update name as 'updatedname' - Map orgUpdatedSraResponse = professionalApiClient.updatesOrganisationSra( - organisationSraUpdateRequest,intActiveOrgId, OK); - List organisations = (List)orgUpdatedSraResponse.get("organisations"); - LinkedHashMap organisation = (LinkedHashMap)organisations.get(0); - assertThat(orgUpdatedSraResponse).isNotNull(); - assertNotNull(organisation.get("sraId")); - assertThat(organisation.get("sraId").toString()).isEqualTo(updatedSra); + //call endpoint to update name as 'updatedsraid' + Response orgUpdatedSraResponse = professionalApiClient.updatesOrganisationSra( + organisationSraUpdateRequest,organisationIdentifier, OK); + assertNotNull(orgUpdatedSraResponse); + assertThat(orgUpdatedSraResponse.statusCode()).isEqualTo(200); - List organisationAttributes = (List)organisation.get("orgAttributes"); + //retrieve saved organisation by id + var orgResponse = professionalApiClient.retrieveOrganisationDetails(organisationIdentifier, hmctsAdmin, OK); + assertThat(orgResponse).isNotNull(); + assertNotNull(orgResponse.get("sraId")); + assertThat(orgResponse.get("sraId").toString()).isEqualTo(updatedSra); + + List organisationAttributes = (List)orgResponse.get("orgAttributes"); assertThat(organisationAttributes).isNotNull(); LinkedHashMap attr = (LinkedHashMap)organisationAttributes.get(0); @@ -565,18 +571,31 @@ void updateOrganisationSraIdShouldReturnSuccess() { } @Test - void updateOrganisationNameShouldReturnFailureIfNoName() { - log.info("updateOrganisationNameShouldReturnSuccess :: STARTED"); - + void updateOrganisationSraIdShouldReturnFailureIfNoSraId() { + log.info("updateOrganisationNameShouldReturnFailureIfNoName :: STARTED"); + String organisationIdentifier = getActiveOrganisationId(); OrganisationSraUpdateRequest organisationSraUpdateRequest = new OrganisationSraUpdateRequest(""); - Map orgUpdatedNameResponse = professionalApiClient.updatesOrganisationSra( - organisationSraUpdateRequest,intActiveOrgId, BAD_REQUEST); + Response orgUpdatedSraIdResponse = professionalApiClient.updatesOrganisationSra( + organisationSraUpdateRequest,organisationIdentifier, BAD_REQUEST); + + assertNotNull(orgUpdatedSraIdResponse); + assertThat(orgUpdatedSraIdResponse.statusCode()).isEqualTo(400); + + log.info("updateOrganisationNameShouldReturnFailureIfNoName :: END"); + } + + private String getActiveOrganisationId() { + Map response = professionalApiClient.createOrganisation(); + String organisationIdentifier = (String) response.get("organisationIdentifier"); + assertThat(organisationIdentifier).isNotEmpty(); + + OrganisationCreationRequest organisationCreationRequest = createOrganisationRequest().status("ACTIVE").build(); - assertThat((String) orgUpdatedNameResponse.get("errorDescription")).isEqualTo("SraId is required"); + professionalApiClient.updateOrganisation(organisationCreationRequest, hmctsAdmin, organisationIdentifier,OK); - log.info("updateOrganisationNameShouldReturnSuccess :: END"); + return organisationIdentifier; } diff --git a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java index 2929716c6a..ed26a2dd7e 100644 --- a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java +++ b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java @@ -1316,7 +1316,7 @@ public void updateOrganisation(OrganisationCreationRequest organisationCreationR .statusCode(expectedStatus.value()); } - public Map updatesOrganisationSra(OrganisationSraUpdateRequest organisationSraUpdateRequest, + public Response updatesOrganisationSra(OrganisationSraUpdateRequest organisationSraUpdateRequest, String organisationIdentifier, HttpStatus expectedStatus) { Response response = getMultipleAuthHeadersInternal() @@ -1331,7 +1331,7 @@ public Map updatesOrganisationSra(OrganisationSraUpdateRequest o .assertThat() .statusCode(expectedStatus.value()); - return response.body().as(Map.class); + return response; } public void updateOrganisationToReview(String organisationIdentifier, String statusMessage, String role) { diff --git a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java index 2b2f25b19d..35e1b44f17 100644 --- a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java +++ b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java @@ -1,7 +1,7 @@ package uk.gov.hmcts.reform.professionalapi; import org.junit.jupiter.api.Test; -import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationCreationRequest; +import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationSraUpdateRequest; import uk.gov.hmcts.reform.professionalapi.util.AuthorizationEnabledIntegrationTest; import java.util.LinkedHashMap; @@ -11,8 +11,6 @@ import static org.apache.commons.lang.RandomStringUtils.randomAlphabetic; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertNotNull; -import static uk.gov.hmcts.reform.professionalapi.helper.OrganisationFixtures.organisationRequestWithAllFields; -import static uk.gov.hmcts.reform.professionalapi.helper.OrganisationFixtures.organisationRequestWithAllFieldsAreUpdated; class UpdateOrgSraIntegrationTest extends AuthorizationEnabledIntegrationTest { @@ -23,18 +21,21 @@ void update_sra_of_an_active_organisation_with_prd_admin_role_should_return_200( String orgIdentifier = getOrganisationId(); String sraId = randomAlphabetic(7); + OrganisationSraUpdateRequest organisationSraUpdateRequest = + new OrganisationSraUpdateRequest(sraId); Map orgResponse = professionalReferenceDataClient - .updateOrgSra(organisationRequestWithAllFields().sraId(sraId).build(), + .updateOrgSra(organisationSraUpdateRequest, hmctsAdmin,orgIdentifier); - LinkedHashMap responseBody = (LinkedHashMap)orgResponse.get("response_body"); - List organisations = (List)responseBody.get("organisations"); - LinkedHashMap organisation = (LinkedHashMap)organisations.get(0); assertThat(orgResponse).isNotNull(); - assertNotNull(organisation.get("sraId")); - assertThat(organisation.get("sraId").toString()).contains(sraId); assertThat(orgResponse.get("http_status")).isEqualTo(200); - List organisationAttributes = (List)organisation.get("orgAttributes"); + Map responseBody = professionalReferenceDataClient + .retrieveSingleOrganisation(orgIdentifier,hmctsAdmin); + assertThat(responseBody).isNotNull(); + assertNotNull(responseBody.get("sraId")); + assertThat(responseBody.get("sraId").toString()).isEqualTo(sraId); + + List organisationAttributes = (List)responseBody.get("orgAttributes"); assertThat(organisationAttributes).isNotNull(); LinkedHashMap attr = (LinkedHashMap)organisationAttributes.get(0); @@ -59,7 +60,7 @@ void update_sra_with_bad_request_should_return_400() { @Test void update_sra_with_bad_request_OrgId_missing_should_return_400() { Map updateResponse = professionalReferenceDataClient - .updateOrgSra(organisationRequestWithAllFields().build(), hmctsAdmin,null); + .updateOrgSra(new OrganisationSraUpdateRequest("some-SraId"), hmctsAdmin,null); assertThat(updateResponse).containsEntry("http_status", "400"); assertThat(updateResponse.get("response_body").toString()) @@ -70,31 +71,29 @@ void update_sra_with_bad_request_OrgId_missing_should_return_400() { @Test void update_sra_with_invalid_name_should_return_400() { - OrganisationCreationRequest organisationUpdateRequest = organisationRequestWithAllFieldsAreUpdated() - .sraId("") - .build(); + OrganisationSraUpdateRequest organisationSraUpdateRequest = + new OrganisationSraUpdateRequest(""); Map updateResponse = professionalReferenceDataClient - .updateOrgSra(organisationUpdateRequest, + .updateOrgSra(organisationSraUpdateRequest, hmctsAdmin,getOrganisationId()); assertThat(updateResponse).containsEntry("http_status", "400"); - assertThat(updateResponse.get("response_body").toString()).isEqualTo("Sra Id is required"); + assertThat(updateResponse.get("response_body").toString()).contains("Sra Id is required"); } @Test - void update_sra_with_invalid_name_should_return_200() { - OrganisationCreationRequest organisationUpdateRequest = organisationRequestWithAllFieldsAreUpdated() - .sraId(" ") - .build(); + void update_sra_with_blank_name_should_return_400() { + OrganisationSraUpdateRequest organisationSraUpdateRequest = + new OrganisationSraUpdateRequest(" "); Map updateResponse = professionalReferenceDataClient - .updateOrgSra(organisationUpdateRequest, + .updateOrgSra(organisationSraUpdateRequest, hmctsAdmin,getOrganisationId()); assertThat(updateResponse).containsEntry("http_status", "400"); - assertThat(updateResponse.get("response_body").toString()).isEqualTo("SraId is required"); + assertThat(updateResponse.get("response_body").toString()).contains("SraId is required"); } diff --git a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/util/ProfessionalReferenceDataClient.java b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/util/ProfessionalReferenceDataClient.java index 16789c36f1..02627f27ef 100644 --- a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/util/ProfessionalReferenceDataClient.java +++ b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/util/ProfessionalReferenceDataClient.java @@ -26,6 +26,7 @@ import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationByProfileIdsRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationCreationRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationOtherOrgsCreationRequest; +import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationSraUpdateRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.PbaRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.UpdatePbaRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.UsersInOrganisationsByOrganisationIdentifiersRequest; @@ -1025,12 +1026,13 @@ public Map findOrganisationsByUserId(String userId, String role) public Map updateOrgSra( - OrganisationCreationRequest organisationCreationRequest, String role, String organisationIdentifier) { + OrganisationSraUpdateRequest organisationSraUpdateRequest, String role, String organisationIdentifier) { ResponseEntity responseEntity = null; - String urlPath = "http://localhost:" + prdApiPort + APP_INT_V2_BASE_PATH + "/" + organisationIdentifier + "/sra"; + String urlPath = "http://localhost:" + prdApiPort + APP_INT_V2_BASE_PATH + + "/" + organisationIdentifier + "/sra"; try { - HttpEntity requestEntity = new HttpEntity<>(organisationCreationRequest, + HttpEntity requestEntity = new HttpEntity<>(organisationSraUpdateRequest, getMultipleAuthHeaders(role)); responseEntity = restTemplate.exchange(urlPath, HttpMethod.PUT, requestEntity, Map.class); } catch (RestClientResponseException ex) { diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2.java index 4cf6020bed..7bf3992293 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2.java @@ -290,7 +290,7 @@ public ResponseEntity updatesOrganisation( @ResponseStatus(value = HttpStatus.CREATED) @ResponseBody @Secured({"prd-admin"}) - public ResponseEntity updateOrganisationSra( + public ResponseEntity updateOrganisationSra( @io.swagger.v3.oas.annotations.parameters.RequestBody(description = "organisationsraUpdateRequest") @Valid @NotNull @RequestBody OrganisationSraUpdateRequest organisationSraUpdateRequest, @PathVariable("orgId") @NotBlank String organisationIdentifier) { @@ -302,12 +302,10 @@ public ResponseEntity updateOrganisationSra( throw new InvalidRequest("SRA Id is required"); } - OrganisationsDetailResponseV2 organisationsDetailResponse = organisationService + ResponseEntity organisationsDetailResponse = organisationService .updateOrganisationSra(organisationSraUpdateRequest, orgId); - ResponseEntity resp = ResponseEntity.status(200).body( - organisationsDetailResponse); - return resp; + return ResponseEntity.status(organisationsDetailResponse.getStatusCode()).build(); } } diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/OrganisationService.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/OrganisationService.java index 2e7e139abd..60608b0f77 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/OrganisationService.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/OrganisationService.java @@ -47,7 +47,7 @@ OrganisationsDetailResponseV2 findByOrganisationStatusForV2Api(LocalDateTime for OrganisationEntityResponse retrieveOrganisation(String organisationIdentifier, boolean isPendingPbaRequired); - OrganisationsDetailResponseV2 updateOrganisationSra( + ResponseEntity updateOrganisationSra( OrganisationSraUpdateRequest organisationSraUpdateRequest, String organisationIdentifier); OrganisationResponse updateOrganisation(OrganisationCreationRequest organisationCreationRequest, diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java index b3f63096e2..f2b5fa7644 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java @@ -1083,7 +1083,7 @@ public OrgAttribute saveOrganisationAttributes(Organisation existingOrganisation @Override @Transactional - public OrganisationsDetailResponseV2 updateOrganisationSra( + public ResponseEntity updateOrganisationSra( OrganisationSraUpdateRequest organisationSraUpdateRequest, String organisationIdentifier) { var existingOrganisation = organisationRepository.findByOrganisationIdentifier(organisationIdentifier); @@ -1093,24 +1093,16 @@ public OrganisationsDetailResponseV2 updateOrganisationSra( } else { if (isNotBlank(organisationSraUpdateRequest.getSraId())) { OrgAttribute savedAttribute = saveOrganisationAttributes( - existingOrganisation,organisationSraUpdateRequest); + existingOrganisation, organisationSraUpdateRequest); if (savedAttribute == null) { log.error("{}:: error saving Organisation Attribute::", loggingComponentName); throw new EmptyResultDataAccessException("Error saving organisation attributes", 1); } } - savedOrganisation = organisationRepository.save(existingOrganisation); + organisationRepository.save(existingOrganisation); } - List organisationList = new ArrayList<>(); - organisationList.add(savedOrganisation); - OrganisationsDetailResponseV2 organisationsDetailResponse = new OrganisationsDetailResponseV2( - organisationList, true, false, false, - true); - - return organisationsDetailResponse; - + return ResponseEntity.status(200).build(); } - } diff --git a/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2Test.java b/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2Test.java index 07e6cfd22f..e5106e2c3c 100644 --- a/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2Test.java +++ b/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2Test.java @@ -348,18 +348,16 @@ void testUpdateOrgSraId() { assertThat(organisationSraUpdateRequest.getSraId()).isNotEmpty(); when(organisationServiceMock.updateOrganisationSra(organisationSraUpdateRequest, - organisation.getOrganisationIdentifier())).thenReturn(new OrganisationsDetailResponseV2( - List.of(organisation),true, false, false, - true)); + organisation.getOrganisationIdentifier())).thenReturn(ResponseEntity.status(200).build()); - ResponseEntity response = organisationInternalController + ResponseEntity response = organisationInternalController .updateOrganisationSra(organisationSraUpdateRequest,organisation.getOrganisationIdentifier()); assertThat(response).isNotNull(); assertThat(response.getStatusCode()).isEqualTo(expectedHttpStatus); - verify(organisationIdentifierValidatorImpl, times(1)).validateOrganisationExistsAndActive( - organisation.getOrganisationIdentifier()); + verify(organisationIdentifierValidatorImpl, times(1)) + .validateOrganisationExistsAndActive(organisation.getOrganisationIdentifier()); verify(organisationServiceMock, times(1)) .updateOrganisationSra(organisationSraUpdateRequest, organisation.getOrganisationIdentifier()); diff --git a/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java b/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java index 4f1356d1a3..7e1287ba94 100644 --- a/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java +++ b/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java @@ -1965,16 +1965,19 @@ void test_updateOrganisationSra() { when(organisationRepository.save(organisationMock)).thenReturn(organisationMock); - OrganisationsDetailResponseV2 updatedOrganisation = sut.updateOrganisationSra( + ResponseEntity updatedOrganisation = sut.updateOrganisationSra( organisationSraUpdateRequest,orgIdentifier); assertThat(updatedOrganisation).isNotNull(); verify(organisationRepository, times(1)) .findByOrganisationIdentifier(orgIdentifier); + + verify(orgAttributeRepository, times(1)) + .save(any(OrgAttribute.class)); + verify(organisationRepository, times(1)) .save(organisationMock); - } From deb92fd39127e613945a9a824d7df06a0b5a40de Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Fri, 6 Sep 2024 14:56:54 +0100 Subject: [PATCH 50/64] Changes to fix review comments --- .../ProfessionalInternalUserFunctionalForV2ApiTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalForV2ApiTest.java b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalForV2ApiTest.java index 3fc4fe3527..4148e58e77 100644 --- a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalForV2ApiTest.java +++ b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalForV2ApiTest.java @@ -553,7 +553,7 @@ void updateOrganisationSraIdShouldReturnSuccess() { assertThat(orgUpdatedSraResponse.statusCode()).isEqualTo(200); //retrieve saved organisation by id - var orgResponse = professionalApiClient.retrieveOrganisationDetails(organisationIdentifier, hmctsAdmin, OK); + var orgResponse = professionalApiClient.retrieveOrganisationDetailsForV2(organisationIdentifier, hmctsAdmin, OK); assertThat(orgResponse).isNotNull(); assertNotNull(orgResponse.get("sraId")); assertThat(orgResponse.get("sraId").toString()).isEqualTo(updatedSra); @@ -599,4 +599,4 @@ private String getActiveOrganisationId() { } -} +} \ No newline at end of file From e3f9d83954c7cc11b431844ee5df70edd50e8d22 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Fri, 6 Sep 2024 14:57:49 +0100 Subject: [PATCH 51/64] Changes to fix review comments --- .../ProfessionalInternalUserFunctionalForV2ApiTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalForV2ApiTest.java b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalForV2ApiTest.java index 4148e58e77..ffabe79ff7 100644 --- a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalForV2ApiTest.java +++ b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalForV2ApiTest.java @@ -553,7 +553,8 @@ void updateOrganisationSraIdShouldReturnSuccess() { assertThat(orgUpdatedSraResponse.statusCode()).isEqualTo(200); //retrieve saved organisation by id - var orgResponse = professionalApiClient.retrieveOrganisationDetailsForV2(organisationIdentifier, hmctsAdmin, OK); + var orgResponse = professionalApiClient.retrieveOrganisationDetailsForV2(organisationIdentifier, hmctsAdmin, + OK); assertThat(orgResponse).isNotNull(); assertNotNull(orgResponse.get("sraId")); assertThat(orgResponse.get("sraId").toString()).isEqualTo(updatedSra); From f3450bbf3eb3a2a621e6f6e4e0a76e8f06e289b0 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Fri, 6 Sep 2024 15:03:04 +0100 Subject: [PATCH 52/64] Changes to fix review comments --- .../reform/professionalapi/UpdateOrgSraIntegrationTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java index 35e1b44f17..d2cbbc18b4 100644 --- a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java +++ b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java @@ -30,7 +30,7 @@ void update_sra_of_an_active_organisation_with_prd_admin_role_should_return_200( assertThat(orgResponse.get("http_status")).isEqualTo(200); Map responseBody = professionalReferenceDataClient - .retrieveSingleOrganisation(orgIdentifier,hmctsAdmin); + .retrieveSingleOrganisationForV2Api(orgIdentifier,hmctsAdmin); assertThat(responseBody).isNotNull(); assertNotNull(responseBody.get("sraId")); assertThat(responseBody.get("sraId").toString()).isEqualTo(sraId); From 7f427c5d1545cac74f11cbc1ee62b932bac3ddb5 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Fri, 6 Sep 2024 15:12:18 +0100 Subject: [PATCH 53/64] Changes to fix review comments --- .../reform/professionalapi/UpdateOrgSraIntegrationTest.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java index d2cbbc18b4..de50a8311b 100644 --- a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java +++ b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java @@ -62,7 +62,7 @@ void update_sra_with_bad_request_OrgId_missing_should_return_400() { Map updateResponse = professionalReferenceDataClient .updateOrgSra(new OrganisationSraUpdateRequest("some-SraId"), hmctsAdmin,null); - assertThat(updateResponse).containsEntry("http_status", "400"); + assertThat(updateResponse).containsEntry("http_status", "404"); assertThat(updateResponse.get("response_body").toString()) .contains("The given organisationIdentifier must be 7 Alphanumeric Characters"); @@ -79,7 +79,7 @@ void update_sra_with_invalid_name_should_return_400() { hmctsAdmin,getOrganisationId()); assertThat(updateResponse).containsEntry("http_status", "400"); - assertThat(updateResponse.get("response_body").toString()).contains("Sra Id is required"); + assertThat(updateResponse.get("response_body").toString()).contains("SRA Id is required"); } @@ -93,7 +93,7 @@ void update_sra_with_blank_name_should_return_400() { hmctsAdmin,getOrganisationId()); assertThat(updateResponse).containsEntry("http_status", "400"); - assertThat(updateResponse.get("response_body").toString()).contains("SraId is required"); + assertThat(updateResponse.get("response_body").toString()).contains("SRA Id is required"); } From 838ac3dd43cd4e052f8c98928919050413516e33 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Fri, 6 Sep 2024 15:36:28 +0100 Subject: [PATCH 54/64] Changes to fix review comments --- .../reform/professionalapi/UpdateOrgSraIntegrationTest.java | 2 +- .../controller/internal/OrganisationInternalControllerV2.java | 4 +++- .../controller/request/OrganisationSraUpdateRequest.java | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java index de50a8311b..b1d222e090 100644 --- a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java +++ b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java @@ -62,7 +62,7 @@ void update_sra_with_bad_request_OrgId_missing_should_return_400() { Map updateResponse = professionalReferenceDataClient .updateOrgSra(new OrganisationSraUpdateRequest("some-SraId"), hmctsAdmin,null); - assertThat(updateResponse).containsEntry("http_status", "404"); + assertThat(updateResponse).containsEntry("http_status", "400"); assertThat(updateResponse.get("response_body").toString()) .contains("The given organisationIdentifier must be 7 Alphanumeric Characters"); diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2.java index 7bf3992293..fee2f93b38 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2.java @@ -293,7 +293,9 @@ public ResponseEntity updatesOrganisation( public ResponseEntity updateOrganisationSra( @io.swagger.v3.oas.annotations.parameters.RequestBody(description = "organisationsraUpdateRequest") @Valid @NotNull @RequestBody OrganisationSraUpdateRequest organisationSraUpdateRequest, - @PathVariable("orgId") @NotBlank String organisationIdentifier) { + @Pattern(regexp = ORGANISATION_IDENTIFIER_FORMAT_REGEX, + message = ORG_ID_VALIDATION_ERROR_MESSAGE) + @PathVariable("orgId") @NotBlank String organisationIdentifier) { var orgId = removeEmptySpaces(organisationIdentifier); organisationIdentifierValidatorImpl.validateOrganisationExistsAndActive(orgId); diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationSraUpdateRequest.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationSraUpdateRequest.java index 24d984041b..6bb615ad1a 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationSraUpdateRequest.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationSraUpdateRequest.java @@ -16,7 +16,7 @@ public class OrganisationSraUpdateRequest { @Valid - @NotNull(message = "SraId is required.") + @NotNull(message = "SRA Id is required.") private String sraId; @JsonCreator From 9f4bcf2a106816f009b25283e86841d2a954f7e3 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Thu, 12 Sep 2024 10:46:47 +0100 Subject: [PATCH 55/64] fixing last update --- .../ProfessionalInternalUserFunctionalForV2ApiTest.java | 5 +++++ .../reform/professionalapi/UpdateOrgSraIntegrationTest.java | 4 ++++ .../service/impl/OrganisationServiceImpl.java | 2 ++ 3 files changed, 11 insertions(+) diff --git a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalForV2ApiTest.java b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalForV2ApiTest.java index ffabe79ff7..15078d30d8 100644 --- a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalForV2ApiTest.java +++ b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalForV2ApiTest.java @@ -24,6 +24,7 @@ import uk.gov.hmcts.reform.professionalapi.util.OrganisationProfileIdConstants; import uk.gov.hmcts.reform.professionalapi.util.ToggleEnable; +import java.time.LocalDate; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.HashMap; @@ -568,6 +569,10 @@ void updateOrganisationSraIdShouldReturnSuccess() { assertThat(attr.get("value").toString()).isEqualTo( "{\"regulatorType\":\"Solicitor Regulation Authority " + "(SRA)\",\"organisationRegistrationNumber\":\"" + updatedSra + "\"}"); + + LocalDateTime updatedDate = LocalDateTime.parse(orgResponse.get("lastUpdated").toString()); + assertThat(updatedDate.toLocalDate()).isEqualTo(LocalDate.now()); + log.info("updateOrganisationSraIdShouldReturnSuccess :: END"); } diff --git a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java index b1d222e090..af66b543d6 100644 --- a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java +++ b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java @@ -4,6 +4,8 @@ import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationSraUpdateRequest; import uk.gov.hmcts.reform.professionalapi.util.AuthorizationEnabledIntegrationTest; +import java.time.LocalDate; +import java.time.LocalDateTime; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -45,6 +47,8 @@ void update_sra_of_an_active_organisation_with_prd_admin_role_should_return_200( "{\"regulatorType\":\"Solicitor Regulation Authority " + "(SRA)\",\"organisationRegistrationNumber\":\"" + sraId + "\"}"); + LocalDateTime updatedDate = LocalDateTime.parse(responseBody.get("lastUpdated").toString()); + assertThat(updatedDate.toLocalDate()).isEqualTo(LocalDate.now()); } @Test diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java index f2b5fa7644..5c1ff59f0b 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java @@ -1099,6 +1099,8 @@ public ResponseEntity updateOrganisationSra( throw new EmptyResultDataAccessException("Error saving organisation attributes", 1); } } + existingOrganisation.setSraId(organisationSraUpdateRequest.getSraId()); + existingOrganisation.setLastUpdated(LocalDateTime.now()); organisationRepository.save(existingOrganisation); } return ResponseEntity.status(200).build(); From 78046a4221ff62c7a64e6e13dfa7d2a1fda944dc Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Thu, 12 Sep 2024 11:19:55 +0100 Subject: [PATCH 56/64] fixing review comments according to DTSRD-2136 --- .../controller/internal/OrganisationInternalControllerV2.java | 2 +- .../controller/internal/OrganisationInternalControllerTest.java | 1 - .../service/impl/OrganisationServiceImplTest.java | 1 - 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2.java index fee2f93b38..fdb9a69b69 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2.java @@ -287,7 +287,7 @@ public ResponseEntity updatesOrganisation( consumes = APPLICATION_JSON_VALUE, produces = APPLICATION_JSON_VALUE ) - @ResponseStatus(value = HttpStatus.CREATED) + @ResponseStatus(value = HttpStatus.OK) @ResponseBody @Secured({"prd-admin"}) public ResponseEntity updateOrganisationSra( diff --git a/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java b/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java index 0d77dba122..bfb9a7ca1c 100644 --- a/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java +++ b/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerTest.java @@ -572,5 +572,4 @@ void testRetrieveOrgByPbaStatus() { .getOrganisationsByPbaStatus(pbaStatus.toString()); } - } diff --git a/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java b/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java index 7e1287ba94..3f67f4a9a1 100644 --- a/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java +++ b/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java @@ -1955,7 +1955,6 @@ void test_updateOrganisationSra() { when(organisationRepository.findByOrganisationIdentifier(any(String.class))) .thenReturn(organisationMock); - assertNotNull(organisationSraUpdateRequest.getSraId()); organisationMock.setSraId(newSraId); From c1d7c94ae8f8ca7346ad184ecd15ccd5378b3055 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Thu, 19 Sep 2024 22:53:27 +0100 Subject: [PATCH 57/64] made c hanges to endpoint to accept multiple requests in line with DTSRD-2136 --- ...nalInternalUserFunctionalForV2ApiTest.java | 201 +++++++++++--- .../client/ProfessionalApiClient.java | 11 +- .../UpdateOrgSraIntegrationTest.java | 256 +++++++++++++----- .../util/ProfessionalReferenceDataClient.java | 28 +- .../OrganisationInternalController.java | 1 - .../OrganisationInternalControllerV2.java | 61 +++-- .../OrganisationIdentifierValidatorImpl.java | 19 ++ .../response/UpdateOrgSraResponse.java | 20 ++ .../response/UpdateSraResponse.java | 30 ++ .../service/OrganisationService.java | 11 +- .../service/impl/OrganisationServiceImpl.java | 87 ++++-- .../OrganisationInternalControllerV2Test.java | 68 +++-- .../impl/OrganisationServiceImplTest.java | 42 ++- 13 files changed, 622 insertions(+), 213 deletions(-) create mode 100644 src/main/java/uk/gov/hmcts/reform/professionalapi/controller/response/UpdateOrgSraResponse.java create mode 100644 src/main/java/uk/gov/hmcts/reform/professionalapi/controller/response/UpdateSraResponse.java diff --git a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalForV2ApiTest.java b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalForV2ApiTest.java index 15078d30d8..aa9ba7d18a 100644 --- a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalForV2ApiTest.java +++ b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalForV2ApiTest.java @@ -36,7 +36,7 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; -import static org.springframework.http.HttpStatus.BAD_REQUEST; +import static org.springframework.http.HttpStatus.MULTI_STATUS; import static org.springframework.http.HttpStatus.NOT_FOUND; import static org.springframework.http.HttpStatus.NO_CONTENT; import static org.springframework.http.HttpStatus.OK; @@ -540,69 +540,186 @@ private void verifyOrganisationDetailsBySinceDateV2(Map response @Test void updateOrganisationSraIdShouldReturnSuccess() { - log.info("updateOrganisationSraIdShouldReturnSuccess :: STARTED"); - String updatedSra = randomAlphabetic(7); - String organisationIdentifier = getActiveOrganisationId(); - //create request to update sraid - OrganisationSraUpdateRequest organisationSraUpdateRequest = - new OrganisationSraUpdateRequest(updatedSra); - - //call endpoint to update name as 'updatedsraid' - Response orgUpdatedSraResponse = professionalApiClient.updatesOrganisationSra( - organisationSraUpdateRequest,organisationIdentifier, OK); + log.info("updateOrganisationNameShouldReturnSuccess :: STARTED"); + //create organisation + String orgId1 = createActiveOrganisation(); + String orgId2 = createActiveOrganisation(); + String sraId1 = randomAlphabetic(7); + String sraId2 = randomAlphabetic(7); + //create request to update organisation + OrganisationSraUpdateRequest organisationSraUpdateRequest = createOrganisationSraUpdateRequest( + sraId1,sraId2,orgId1,orgId2); + //call endpoint to update SraId as 'updatedSraId' + Response orgUpdatedSraResponse = professionalApiClient.updatesOrganisationSra( + organisationSraUpdateRequest, hmctsAdmin, OK); assertNotNull(orgUpdatedSraResponse); - assertThat(orgUpdatedSraResponse.statusCode()).isEqualTo(200); + assertThat(orgUpdatedSraResponse.body().as(Map.class).get("status")).isEqualTo("success"); + assertThat(orgUpdatedSraResponse.body().as(Map.class).get("message")).isEqualTo( + "All SraIds updated successfully"); + //retrieve 1st saved organisation by id + verifyRetrievedOrg(orgId2,sraId1); + //retrieve 2st saved organisation by id + verifyRetrievedOrg(orgId2,sraId2); + //Delete organisation + deleteCreatedTestOrganisations(orgId1,orgId2); + log.info("updateOrganisationSraIdShouldReturnSuccess :: END"); - //retrieve saved organisation by id - var orgResponse = professionalApiClient.retrieveOrganisationDetailsForV2(organisationIdentifier, hmctsAdmin, - OK); - assertThat(orgResponse).isNotNull(); - assertNotNull(orgResponse.get("sraId")); - assertThat(orgResponse.get("sraId").toString()).isEqualTo(updatedSra); + } - List organisationAttributes = (List)orgResponse.get("orgAttributes"); - assertThat(organisationAttributes).isNotNull(); - LinkedHashMap attr = (LinkedHashMap)organisationAttributes.get(0); - assertThat(attr).isNotNull(); - assertThat(attr.get("key")).isEqualTo("regulators-0"); - assertThat(attr.get("value").toString()).isEqualTo( - "{\"regulatorType\":\"Solicitor Regulation Authority " - + "(SRA)\",\"organisationRegistrationNumber\":\"" + updatedSra + "\"}"); + @Test + void updateOrganisationSraIdShouldReturnFailureIfNoOrgId() { + log.info("updateOrganisationSraIdShouldReturnFailureIfNoOrgId :: STARTED"); + String sraId1 = randomAlphabetic(7); + String sraId2 = randomAlphabetic(7); + //create request to update organisation + OrganisationSraUpdateRequest organisationSraUpdateRequest = createOrganisationSraUpdateRequest( + sraId1,sraId2,null,null); + //call endpoint to update empty SraId + Response orgUpdatedSraIdResponse = professionalApiClient.updatesOrganisationSra( + organisationSraUpdateRequest,hmctsAdmin, MULTI_STATUS); + assertNotNull(orgUpdatedSraIdResponse); + assertThat(orgUpdatedSraIdResponse.body().as(Map.class).get("status")).isEqualTo("failure"); + ArrayList sraIds = (ArrayList) orgUpdatedSraIdResponse.body().as(Map.class).get("sarIds"); + LinkedHashMap response1 = (LinkedHashMap) sraIds.get(0); + LinkedHashMap response2 = (LinkedHashMap) sraIds.get(1); - LocalDateTime updatedDate = LocalDateTime.parse(orgResponse.get("lastUpdated").toString()); - assertThat(updatedDate.toLocalDate()).isEqualTo(LocalDate.now()); + assertThat(response1.get("status")).isEqualTo("failure"); + assertThat(response2.get("status")).isEqualTo("failure"); - log.info("updateOrganisationSraIdShouldReturnSuccess :: END"); + assertThat(response1.get("statusCode")).isEqualTo(400); + assertThat(response2.get("statusCode")).isEqualTo(400); + + assertThat(response1.get("message")).isEqualTo("Organisation id is missing"); + assertThat(response2.get("message")).isEqualTo("Organisation id is missing"); + log.info("updateOrganisationSraIdShouldReturnFailureIfNoOrgId :: END"); } + @Test void updateOrganisationSraIdShouldReturnFailureIfNoSraId() { - log.info("updateOrganisationNameShouldReturnFailureIfNoName :: STARTED"); - String organisationIdentifier = getActiveOrganisationId(); - OrganisationSraUpdateRequest organisationSraUpdateRequest = - new OrganisationSraUpdateRequest(""); + log.info("updateOrganisationSraIdShouldReturnFailureIfNoSraId :: STARTED"); + //create organisation + String orgId1 = createActiveOrganisation(); + String orgId2 = createActiveOrganisation(); + //create request to update organisation + OrganisationSraUpdateRequest organisationSraUpdateRequest = createOrganisationSraUpdateRequest( + null,null,orgId1,orgId2); + //call endpoint to update empty Sra + Response orgUpdatedSraResponse = professionalApiClient.updatesOrganisationSra( + organisationSraUpdateRequest,hmctsAdmin, MULTI_STATUS); + assertNotNull(orgUpdatedSraResponse); + assertThat(orgUpdatedSraResponse.body().as(Map.class).get("status")).isEqualTo("failure"); + ArrayList sraIds = (ArrayList) orgUpdatedSraResponse.body().as(Map.class).get("sarIds"); + LinkedHashMap response1 = (LinkedHashMap) sraIds.get(0); + LinkedHashMap response2 = (LinkedHashMap) sraIds.get(1); - Response orgUpdatedSraIdResponse = professionalApiClient.updatesOrganisationSra( - organisationSraUpdateRequest,organisationIdentifier, BAD_REQUEST); + assertThat(response1.get("organisationId")).isEqualTo(orgId1); + assertThat(response2.get("organisationId")).isEqualTo(orgId2); - assertNotNull(orgUpdatedSraIdResponse); - assertThat(orgUpdatedSraIdResponse.statusCode()).isEqualTo(400); + assertThat(response1.get("status")).isEqualTo("failure"); + assertThat(response2.get("status")).isEqualTo("failure"); + + assertThat(response1.get("statusCode")).isEqualTo(400); + assertThat(response2.get("statusCode")).isEqualTo(400); + + assertThat(response1.get("message")).isEqualTo("Organisation SraId is missing"); + assertThat(response2.get("message")).isEqualTo("Organisation SraId is missing"); + + //Delete organisation + deleteCreatedTestOrganisations(orgId1,orgId2); + log.info("updateOrganisationSraIdShouldReturnFailureIfNoSraId :: END"); + } + + @Test + void updateOrganisationSraShouldReturnPartialSuccessIfNoSraId() { + log.info("updateOrganisationSraShouldReturnPartialSuccessIfNoSraId :: STARTED"); + //create organisation + String orgId1 = createActiveOrganisation(); + String orgId2 = createActiveOrganisation(); + String sraId1 = randomAlphabetic(7); + //create request to update organisation + OrganisationSraUpdateRequest organisationSraUpdateRequest = createOrganisationSraUpdateRequest( + null,sraId1,orgId1,orgId2); + //call endpoint to update empty Sra + Response orgUpdatedSraResponse = professionalApiClient.updatesOrganisationSra( + organisationSraUpdateRequest,hmctsAdmin, MULTI_STATUS); + assertNotNull(orgUpdatedSraResponse); + assertThat(orgUpdatedSraResponse.body().as(Map.class).get("status")).isEqualTo("partial_success"); + ArrayList sraIds = (ArrayList) orgUpdatedSraResponse.body().as(Map.class).get("sraIds"); + LinkedHashMap response1 = (LinkedHashMap) sraIds.get(0); + LinkedHashMap response2 = (LinkedHashMap) sraIds.get(1); + + assertThat(response1.get("organisationId")).isEqualTo(orgId1); + assertThat(response2.get("organisationId")).isEqualTo(orgId2); + + assertThat(response1.get("status")).isEqualTo("failure"); + assertThat(response2.get("status")).isEqualTo("success"); - log.info("updateOrganisationNameShouldReturnFailureIfNoName :: END"); + assertThat(response1.get("statusCode")).isEqualTo(400); + assertThat(response2.get("statusCode")).isEqualTo(200); + + assertThat(response1.get("message")).isEqualTo("Organisation sraId is missing"); + assertThat(response2.get("message")).isEqualTo("SraId updated successfully"); + + //retrieve 2st saved organisation by id + verifyRetrievedOrg(orgId2,sraId1); + //Delete organisation + deleteCreatedTestOrganisations(orgId1,orgId2); + log.info("updateOrganisationSraShouldReturnPartialSuccessIfNoSraId :: END"); } - private String getActiveOrganisationId() { + + private String createActiveOrganisation() { Map response = professionalApiClient.createOrganisation(); String organisationIdentifier = (String) response.get("organisationIdentifier"); assertThat(organisationIdentifier).isNotEmpty(); - OrganisationCreationRequest organisationCreationRequest = createOrganisationRequest().status("ACTIVE").build(); - professionalApiClient.updateOrganisation(organisationCreationRequest, hmctsAdmin, organisationIdentifier,OK); - return organisationIdentifier; } + public void deleteCreatedTestOrganisations(String orgId1, String orgId2) { + professionalApiClient.deleteOrganisation(orgId1, hmctsAdmin, NO_CONTENT);; + professionalApiClient.deleteOrganisation(orgId2, hmctsAdmin, NO_CONTENT); + } + + public OrganisationSraUpdateRequest createOrganisationSraUpdateRequest(String sraId1,String sraId2,String orgId1, + String orgId2) { + //create request to update organisation + OrganisationSraUpdateRequest organisationSraUpdateRequest = new OrganisationSraUpdateRequest(); + List organisationSraUpdateDataList + = new ArrayList<>(); + OrganisationSraUpdateRequest.OrganisationSraUpdateData organisationSraUpdateData1 = + new OrganisationSraUpdateRequest.OrganisationSraUpdateData(sraId1,orgId1); + OrganisationSraUpdateRequest.OrganisationSraUpdateData organisationSraUpdateData2 = + new OrganisationSraUpdateRequest.OrganisationSraUpdateData(sraId2,orgId2); + organisationSraUpdateDataList.add(organisationSraUpdateData1); + organisationSraUpdateDataList.add(organisationSraUpdateData2); + organisationSraUpdateRequest.setOrganisationSraUpdateDataList(organisationSraUpdateDataList); + return organisationSraUpdateRequest; + } + + public void verifyRetrievedOrg(String orgId,String sraId) { + + var orgResponse = professionalApiClient.retrieveOrganisationDetails(orgId, hmctsAdmin, OK); + assertThat(orgResponse).isNotNull(); + List organisationAttributes2 = (List)orgResponse.get("orgAttributes"); + assertThat(organisationAttributes2).isNotNull(); + LinkedHashMap attr2 = (LinkedHashMap)organisationAttributes2.get(0); + assertThat(attr2).isNotNull(); + assertThat(attr2.get("key")).isEqualTo("regulators-0"); + assertThat(attr2.get("value").toString()).isEqualTo( + "{\"regulatorType\":\"Solicitor Regulation Authority " + + "(SRA)\",\"organisationRegistrationNumber\":\"" + sraId + "\"}"); + + LocalDateTime updatedOrgAttributeDate = LocalDateTime.parse(orgResponse.get("lastUpdated").toString()); + assertThat(updatedOrgAttributeDate.toLocalDate()).isEqualTo(LocalDate.now()); + final Object sraIdSaved = orgResponse.get("sraId"); + assertThat(sraIdSaved).isNotNull().isEqualTo(sraId); + LocalDateTime updatedDate = LocalDateTime.parse(orgResponse.get("lastUpdated").toString()); + assertThat(updatedDate.toLocalDate()).isEqualTo(LocalDate.now()); + } + } \ No newline at end of file diff --git a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java index ed26a2dd7e..2ac67b6014 100644 --- a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java +++ b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java @@ -1317,20 +1317,17 @@ public void updateOrganisation(OrganisationCreationRequest organisationCreationR } public Response updatesOrganisationSra(OrganisationSraUpdateRequest organisationSraUpdateRequest, - String organisationIdentifier, HttpStatus expectedStatus) { + String role, + HttpStatus expectedStatus) { Response response = getMultipleAuthHeadersInternal() .body(organisationSraUpdateRequest) - .put("/refdata/internal/v2/organisations/" + organisationIdentifier + "/sra") + .put("/refdata/internal/v1/organisations/sra") .andReturn(); - log.info("{}:: Update organisation SraId response: {}", + log.info("{}:: Update organisation Sra id response: {}", loggingComponentName, response.getStatusCode()); - response.then() - .assertThat() - .statusCode(expectedStatus.value()); - return response; } diff --git a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java index af66b543d6..43ed4e495f 100644 --- a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java +++ b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java @@ -1,112 +1,240 @@ package uk.gov.hmcts.reform.professionalapi; +import org.apache.commons.lang.RandomStringUtils; import org.junit.jupiter.api.Test; +import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationCreationRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.OrganisationSraUpdateRequest; import uk.gov.hmcts.reform.professionalapi.util.AuthorizationEnabledIntegrationTest; import java.time.LocalDate; import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import static org.apache.commons.lang.RandomStringUtils.randomAlphabetic; import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.jupiter.api.Assertions.assertNotNull; +import static uk.gov.hmcts.reform.professionalapi.helper.OrganisationFixtures.someMinimalOrganisationRequest; class UpdateOrgSraIntegrationTest extends AuthorizationEnabledIntegrationTest { @Test - void update_sra_of_an_active_organisation_with_prd_admin_role_should_return_200() { - - String orgIdentifier = getOrganisationId(); - String sraId = randomAlphabetic(7); - OrganisationSraUpdateRequest organisationSraUpdateRequest = - new OrganisationSraUpdateRequest(sraId); - Map orgResponse = professionalReferenceDataClient - .updateOrgSra(organisationSraUpdateRequest, - hmctsAdmin,orgIdentifier); - assertThat(orgResponse).isNotNull(); - assertThat(orgResponse.get("http_status")).isEqualTo(200); - - Map responseBody = professionalReferenceDataClient - .retrieveSingleOrganisationForV2Api(orgIdentifier,hmctsAdmin); - assertThat(responseBody).isNotNull(); - assertNotNull(responseBody.get("sraId")); - assertThat(responseBody.get("sraId").toString()).isEqualTo(sraId); - - List organisationAttributes = (List)responseBody.get("orgAttributes"); - assertThat(organisationAttributes).isNotNull(); - - LinkedHashMap attr = (LinkedHashMap)organisationAttributes.get(0); - assertThat(attr).isNotNull(); - assertThat(attr.get("key")).isEqualTo("regulators-0"); - assertThat(attr.get("value").toString()).isEqualTo( - "{\"regulatorType\":\"Solicitor Regulation Authority " - + "(SRA)\",\"organisationRegistrationNumber\":\"" + sraId + "\"}"); - - LocalDateTime updatedDate = LocalDateTime.parse(responseBody.get("lastUpdated").toString()); - assertThat(updatedDate.toLocalDate()).isEqualTo(LocalDate.now()); + void update_sra_of_an_active_organisation_should_return_success_if_all_requests_updated() { + //create organisation + String orgId1 = getActiveOrganisationId(); + String orgId2 = getActiveOrganisationId(); + String sraId1 = randomAlphabetic(7); + String sraId2 = randomAlphabetic(7); + //create request to update organisation + OrganisationSraUpdateRequest organisationSraUpdateRequest = createOrganisationSraUpdateRequest( + sraId1,sraId2,orgId1,orgId2); + //updateSra + Map orgUpdatedSraResponse = professionalReferenceDataClient + .updateOrgSra(organisationSraUpdateRequest,hmctsAdmin); + + LinkedHashMap responses = (LinkedHashMap)orgUpdatedSraResponse.get("response_body"); + assertThat(responses.get("status")).isEqualTo("success"); + assertThat(responses.get("message")).isEqualTo("All SraIds updated successfully"); + + verifyRetrievedOrg(orgId1,sraId1); + verifyRetrievedOrg(orgId2,sraId2); + + deleteCreatedTestOrganisations(orgId1, orgId2); } @Test - void update_sra_with_bad_request_should_return_400() { - Map updateResponse = professionalReferenceDataClient - .updateOrgSra(null, hmctsAdmin,getOrganisationId()); - - assertThat(updateResponse).containsEntry("http_status", "400"); - assertThat(updateResponse.get("response_body").toString()) - .contains("Required request body is missing:"); + void update_Sra_of_an_active_organisation_should_return_partial_success_if_any_fail() { + //create organisation + String orgId1 = getActiveOrganisationId(); + String orgId2 = getActiveOrganisationId(); + String sraId1 = randomAlphabetic(7); + + //create request to update organisation + OrganisationSraUpdateRequest organisationSraUpdateRequest = createOrganisationSraUpdateRequest( + sraId1,"",orgId1,orgId2); + + Map orgUpdatedSraResponse = professionalReferenceDataClient + .updateOrgSra(organisationSraUpdateRequest,hmctsAdmin); + + LinkedHashMap responses = (LinkedHashMap)orgUpdatedSraResponse.get("response_body"); + assertThat(responses.get("status")).isEqualTo("partial_success"); + + //verify successfully saved + verifyRetrievedOrg(orgId1,sraId1); + + //verify error response + ArrayList responseList = (ArrayList)responses.get("Sras"); + LinkedHashMap result = (LinkedHashMap)responseList.get(1); + assertThat(result.get("organisationId")).isEqualTo(orgId2); + assertThat(result.get("status")).isEqualTo("failure"); + assertThat(result.get("statusCode")).isEqualTo(400); + assertThat(result.get("message")).isEqualTo("Organisation Sra is missing"); + + deleteCreatedTestOrganisations(orgId1, orgId2); } @Test - void update_sra_with_bad_request_OrgId_missing_should_return_400() { - Map updateResponse = professionalReferenceDataClient - .updateOrgSra(new OrganisationSraUpdateRequest("some-SraId"), hmctsAdmin,null); + void update_Sra_missing_in_all_requests_should_return_failure() { + //create organisation + String orgId1 = getActiveOrganisationId(); + String orgId2 = getActiveOrganisationId(); - assertThat(updateResponse).containsEntry("http_status", "400"); - assertThat(updateResponse.get("response_body").toString()) - .contains("The given organisationIdentifier must be 7 Alphanumeric Characters"); + //create request to update organisation + OrganisationSraUpdateRequest organisationSraUpdateRequest = createOrganisationSraUpdateRequest( + "",null,orgId1,orgId2); - } + Map orgUpdatedSraResponse = professionalReferenceDataClient + .updateOrgSra(organisationSraUpdateRequest,hmctsAdmin); - @Test - void update_sra_with_invalid_name_should_return_400() { + LinkedHashMap responses = (LinkedHashMap)orgUpdatedSraResponse.get("response_body"); - OrganisationSraUpdateRequest organisationSraUpdateRequest = - new OrganisationSraUpdateRequest(""); + assertThat(responses.get("status")).isEqualTo("failure"); - Map updateResponse = professionalReferenceDataClient - .updateOrgSra(organisationSraUpdateRequest, - hmctsAdmin,getOrganisationId()); + ArrayList responseList = (ArrayList)responses.get("Sras"); + LinkedHashMap firstResult = (LinkedHashMap)responseList.get(0); + LinkedHashMap secondResult = (LinkedHashMap)responseList.get(1); + assertThat(secondResult.get("organisationId")).isEqualTo(orgId2); + assertThat(secondResult.get("status")).isEqualTo("failure"); + assertThat(secondResult.get("statusCode")).isEqualTo(400); + assertThat(secondResult.get("message")).isEqualTo("Organisation SraId is missing"); - assertThat(updateResponse).containsEntry("http_status", "400"); - assertThat(updateResponse.get("response_body").toString()).contains("SRA Id is required"); + assertThat(firstResult.get("organisationId")).isEqualTo(orgId1); + assertThat(firstResult.get("status")).isEqualTo("failure"); + assertThat(firstResult.get("statusCode")).isEqualTo(400); + assertThat(firstResult.get("message")).isEqualTo("Organisation SraId is missing"); + deleteCreatedTestOrganisations(orgId1, orgId2); } @Test - void update_sra_with_blank_name_should_return_400() { - OrganisationSraUpdateRequest organisationSraUpdateRequest = - new OrganisationSraUpdateRequest(" "); + void orgId_missing_in_all_requests_should_return_failure() { + String sraId1 = randomAlphabetic(7); + String sraId2 = randomAlphabetic(7); + //create request to update organisation + OrganisationSraUpdateRequest organisationSraUpdateRequest = createOrganisationSraUpdateRequest( + sraId1,sraId2,"1235874596555555",null); + + Map orgUpdatedSraResponse = professionalReferenceDataClient + .updateOrgSra(organisationSraUpdateRequest,hmctsAdmin); + + LinkedHashMap responses = (LinkedHashMap)orgUpdatedSraResponse.get("response_body"); + + assertThat(responses.get("status")).isEqualTo("failure"); + + ArrayList responseList = (ArrayList)responses.get("Sras"); + LinkedHashMap firstResult = (LinkedHashMap)responseList.get(0); + LinkedHashMap secondResult = (LinkedHashMap)responseList.get(1); + assertThat(secondResult.get("organisationId")).isEqualTo(""); + assertThat(secondResult.get("status")).isEqualTo("failure"); + assertThat(secondResult.get("statusCode")).isEqualTo(400); + assertThat(secondResult.get("message")).isEqualTo("Organisation id is missing"); + + assertThat(firstResult.get("organisationId")).isEqualTo("1235874596555555"); + assertThat(firstResult.get("status")).isEqualTo("failure"); + assertThat(firstResult.get("statusCode")).isEqualTo(400); + assertThat(firstResult.get("message")).isEqualTo( + "The given organisationIdentifier must be 7 Alphanumeric Characters"); - Map updateResponse = professionalReferenceDataClient - .updateOrgSra(organisationSraUpdateRequest, - hmctsAdmin,getOrganisationId()); + } - assertThat(updateResponse).containsEntry("http_status", "400"); - assertThat(updateResponse.get("response_body").toString()).contains("SRA Id is required"); + + + @Test + void update_Sra_with_exception_during_save_returns_500_partial_success() { + //create organisation + String orgId1 = getActiveOrganisationId(); + String orgId2 = getActiveOrganisationId(); + + String sraId2 = randomAlphabetic(7); + //create request to update organisation + String organisationSraViolatingDatabaseMaxLengthConstraint = RandomStringUtils.random(296); + OrganisationSraUpdateRequest organisationSraUpdateRequest = createOrganisationSraUpdateRequest( + organisationSraViolatingDatabaseMaxLengthConstraint,sraId2,orgId1,orgId2); + //create request to update organisation + + Map orgUpdatedSraResponse = professionalReferenceDataClient + .updateOrgSra(organisationSraUpdateRequest,hmctsAdmin); + LinkedHashMap responses = (LinkedHashMap)orgUpdatedSraResponse.get("response_body"); + + assertThat(responses.get("status")).isEqualTo("partial_success"); + + ArrayList responseList = (ArrayList)responses.get("Sras"); + LinkedHashMap result1 = (LinkedHashMap)responseList.get(0); + assertThat(result1.get("organisationId")).isEqualTo(orgId1); + assertThat(result1.get("status")).isEqualTo("failure"); + assertThat(result1.get("statusCode")).isEqualTo(500); + assertThat(result1.get("message").toString().contains( + "Failed to update the Sra for the given organisationIdentifier. Reason :")); + + LinkedHashMap result = (LinkedHashMap)responseList.get(1); + assertThat(result.get("organisationId")).isEqualTo(orgId2); + assertThat(result.get("status")).isEqualTo("success"); + assertThat(result.get("statusCode")).isEqualTo(200); + assertThat(result.get("message")).isEqualTo("Sra updated successfully"); + verifyRetrievedOrg(orgId2,sraId2); + deleteCreatedTestOrganisations(orgId1, orgId2); } - private String getOrganisationId() { - String organisationIdentifier = createOrganisationRequest(); + private String getActiveOrganisationId() { + OrganisationCreationRequest organisationCreationRequest2 = someMinimalOrganisationRequest().build(); + String organisationIdentifier = createAndActivateOrganisationWithGivenRequest(organisationCreationRequest2); updateOrganisation(organisationIdentifier, hmctsAdmin, "ACTIVE"); return organisationIdentifier; } + public OrganisationSraUpdateRequest createOrganisationSraUpdateRequest(String sra1, String sra2, String orgId1, + String orgId2) { + OrganisationSraUpdateRequest organisationSraUpdateRequest = new OrganisationSraUpdateRequest(); + List organisationSraUpdateDataList + = new ArrayList<>(); + OrganisationSraUpdateRequest.OrganisationSraUpdateData organisationSraUpdateData1 = + new OrganisationSraUpdateRequest.OrganisationSraUpdateData(sra1,orgId1); + OrganisationSraUpdateRequest.OrganisationSraUpdateData organisationSraUpdateData2 = + new OrganisationSraUpdateRequest.OrganisationSraUpdateData(sra2,orgId2); + organisationSraUpdateDataList.add(organisationSraUpdateData1); + organisationSraUpdateDataList.add(organisationSraUpdateData2); + organisationSraUpdateRequest.setOrganisationSraUpdateDataList(organisationSraUpdateDataList); + + return organisationSraUpdateRequest; + } + + public void verifyRetrievedOrg(String orgId,String sraId) { + // Map responseBody = professionalReferenceDataClient + // .retrieveSingleOrganisationForV2Api(orgIdentifier,hmctsAdmin); + + Map responseBody = + professionalReferenceDataClient.retrieveSingleOrganisation(orgId, hmctsAdmin); + final Object Sra = responseBody.get("sraId"); + assertThat(Sra).isNotNull().isEqualTo(sraId); + List organisationAttributes = (List)responseBody.get("orgAttributes"); + assertThat(organisationAttributes).isNotNull(); + + LinkedHashMap attr = (LinkedHashMap)organisationAttributes.get(0); + assertThat(attr).isNotNull(); + assertThat(attr.get("key")).isEqualTo("regulators-0"); + assertThat(attr.get("value").toString()).isEqualTo( + "{\"regulatorType\":\"Solicitor Regulation Authority " + + "(SRA)\",\"organisationRegistrationNumber\":\"" + sraId + "\"}"); + + LocalDateTime updatedAttributeDate = LocalDateTime.parse(responseBody.get("lastUpdated").toString()); + + assertThat(updatedAttributeDate.toLocalDate()).isEqualTo(LocalDate.now()); + + LocalDateTime updatedDate = LocalDateTime.parse(responseBody.get("lastUpdated").toString()); + assertThat(updatedDate.toLocalDate()).isEqualTo(LocalDate.now()); + } + + public void deleteCreatedTestOrganisations(String orgId1, String orgId2) { + professionalReferenceDataClient.deleteOrganisation(hmctsAdmin,orgId1); + professionalReferenceDataClient.deleteOrganisation(hmctsAdmin,orgId2); + } + + + } diff --git a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/util/ProfessionalReferenceDataClient.java b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/util/ProfessionalReferenceDataClient.java index 02627f27ef..280a68e63c 100644 --- a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/util/ProfessionalReferenceDataClient.java +++ b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/util/ProfessionalReferenceDataClient.java @@ -1023,34 +1023,46 @@ public Map findOrganisationsByUserId(String userId, String role) return getResponse(responseEntity); } + public ResponseEntity updateOrgSraException( + OrganisationSraUpdateRequest organisationSraUpdateRequest, String role) { + ResponseEntity responseEntity = null; + String urlPath = "http://localhost:" + prdApiPort + APP_INT_BASE_PATH + "/sra"; + + HttpEntity requestEntity = new HttpEntity<>(organisationSraUpdateRequest, + getMultipleAuthHeaders(role)); + responseEntity = restTemplate.exchange(urlPath, HttpMethod.PUT, requestEntity, Map.class); + + return responseEntity; + } public Map updateOrgSra( - OrganisationSraUpdateRequest organisationSraUpdateRequest, String role, String organisationIdentifier) { + OrganisationSraUpdateRequest organisationSraUpdateRequest, String role) { + ResponseEntity responseEntity = null; - String urlPath = "http://localhost:" + prdApiPort + APP_INT_V2_BASE_PATH - + "/" + organisationIdentifier + "/sra"; + String urlPath = "http://localhost:" + prdApiPort + APP_INT_BASE_PATH + "/sra"; try { HttpEntity requestEntity = new HttpEntity<>(organisationSraUpdateRequest, - getMultipleAuthHeaders(role)); + getMultipleAuthHeaders(role)); responseEntity = restTemplate.exchange(urlPath, HttpMethod.PUT, requestEntity, Map.class); + } catch (RestClientResponseException ex) { HashMap statusAndBody = new HashMap<>(2); - statusAndBody.put("http_status", String.valueOf(ex.getRawStatusCode())); + statusAndBody.put("http_status",String.valueOf(ex.getRawStatusCode())); statusAndBody.put("response_body", ex.getResponseBodyAsString()); return statusAndBody; } - Map organisationResponse = new HashMap<>(); organisationResponse.put("http_status", responseEntity.getStatusCodeValue()); organisationResponse.put("response_body", responseEntity.getBody()); return organisationResponse; } + public Map retrieveUsersInOrganisationsByOrganisationIdentifiers( - UsersInOrganisationsByOrganisationIdentifiersRequest request, Integer pageSize, - UUID searchAfterUser, UUID searchAfterOrganisation) { + UsersInOrganisationsByOrganisationIdentifiersRequest request, Integer pageSize, + UUID searchAfterUser, UUID searchAfterOrganisation) { StringBuilder sb = new StringBuilder(baseV2IntUrl) .append("/users?"); if (pageSize != null) { diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java index e500cbe5ff..f0c6c7229e 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalController.java @@ -741,7 +741,6 @@ public ResponseEntity retrieveOrganisationsByProfileIds( MultipleOrganisationsResponse response = organisationService.retrieveOrganisationsByProfileIdsWithPageable( organisationByProfileIdsRequest.getOrganisationProfileIds(), pageSize, searchAfter); - return ResponseEntity .status(HttpStatus.OK) .body(response); diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2.java index fdb9a69b69..3d25d0ae12 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2.java @@ -8,6 +8,7 @@ import io.swagger.v3.oas.annotations.security.SecurityRequirement; import lombok.NoArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -31,17 +32,19 @@ import uk.gov.hmcts.reform.professionalapi.controller.response.OrganisationPbaResponseV2; import uk.gov.hmcts.reform.professionalapi.controller.response.OrganisationResponse; import uk.gov.hmcts.reform.professionalapi.controller.response.OrganisationsDetailResponseV2; +import uk.gov.hmcts.reform.professionalapi.controller.response.UpdateOrgSraResponse; +import uk.gov.hmcts.reform.professionalapi.controller.response.UpdateSraResponse; +import java.util.ArrayList; +import java.util.List; import javax.validation.Valid; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import javax.validation.constraints.Pattern; -import static org.apache.commons.lang.StringUtils.isBlank; import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; import static uk.gov.hmcts.reform.professionalapi.controller.constants.ProfessionalApiConstants.ORGANISATION_IDENTIFIER_FORMAT_REGEX; import static uk.gov.hmcts.reform.professionalapi.controller.constants.ProfessionalApiConstants.ORG_ID_VALIDATION_ERROR_MESSAGE; -import static uk.gov.hmcts.reform.professionalapi.util.RefDataUtil.removeEmptySpaces; @RequestMapping( path = "refdata/internal/v2/organisations" @@ -276,38 +279,54 @@ public ResponseEntity updatesOrganisation( description = "No Organisation found with the given ID", content = @Content ) - @ApiResponse( - responseCode = "500", - description = "Internal Server Error", - content = @Content - ) - @PutMapping( - value = "/{orgId}/sra", + value = "/sra", consumes = APPLICATION_JSON_VALUE, produces = APPLICATION_JSON_VALUE ) @ResponseStatus(value = HttpStatus.OK) @ResponseBody @Secured({"prd-admin"}) - public ResponseEntity updateOrganisationSra( + public UpdateSraResponse updateOrganisationSra( @io.swagger.v3.oas.annotations.parameters.RequestBody(description = "organisationsraUpdateRequest") - @Valid @NotNull @RequestBody OrganisationSraUpdateRequest organisationSraUpdateRequest, - @Pattern(regexp = ORGANISATION_IDENTIFIER_FORMAT_REGEX, - message = ORG_ID_VALIDATION_ERROR_MESSAGE) - @PathVariable("orgId") @NotBlank String organisationIdentifier) { + @Valid @NotNull @RequestBody OrganisationSraUpdateRequest organisationSraUpdateRequest) { - var orgId = removeEmptySpaces(organisationIdentifier); - organisationIdentifierValidatorImpl.validateOrganisationExistsAndActive(orgId); + //check if request list is empty + List organisationSraUpdateDataList = + organisationSraUpdateRequest.getOrganisationSraUpdateDataList(); - if (isBlank(organisationSraUpdateRequest.getSraId())) { - throw new InvalidRequest("SRA Id is required"); + if (organisationSraUpdateDataList.isEmpty()) { + throw new InvalidRequest("Request is empty"); } - ResponseEntity organisationsDetailResponse = organisationService - .updateOrganisationSra(organisationSraUpdateRequest, orgId); + final List updateOrgSraResponsesList = new ArrayList<>(); + + //iterate over each name/orgid pair and update values + organisationSraUpdateDataList.forEach(organisationSraUpdateData -> { + String orgId = organisationSraUpdateData.getOrganisationId(); + String sraId = organisationSraUpdateData.getSraId(); + if (StringUtils.isEmpty(orgId)) { + updateOrgSraResponsesList.add(new UpdateOrgSraResponse("","failure", + HttpStatus.BAD_REQUEST.value(),"Organisation id is missing")); + } else { + var existingOrganisation = organisationService.getOrganisationByOrgIdentifier(orgId); + organisationIdentifierValidatorImpl.validateOrganisationId(orgId, + updateOrgSraResponsesList, existingOrganisation); + if (!updateOrgSraResponsesList.stream().filter( + updateOrg -> orgId.equalsIgnoreCase(updateOrg.getOrganisationId())).findAny().isPresent()) { + if (StringUtils.isEmpty(sraId)) { + updateOrgSraResponsesList.add(new UpdateOrgSraResponse(orgId,"failure", + HttpStatus.BAD_REQUEST.value(),"Organisation sraId is missing")); + } else { + organisationService.updateOrganisationSra(existingOrganisation, + organisationSraUpdateData, updateOrgSraResponsesList); + } + } + } + }); + + return organisationService.generateUpdateSraResponse(updateOrgSraResponsesList); - return ResponseEntity.status(organisationsDetailResponse.getStatusCode()).build(); } } diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/validator/impl/OrganisationIdentifierValidatorImpl.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/validator/impl/OrganisationIdentifierValidatorImpl.java index f46cb19133..1f6b1086c8 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/validator/impl/OrganisationIdentifierValidatorImpl.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/validator/impl/OrganisationIdentifierValidatorImpl.java @@ -10,6 +10,7 @@ import uk.gov.hmcts.reform.professionalapi.controller.advice.ResourceNotFoundException; import uk.gov.hmcts.reform.professionalapi.controller.request.InvalidRequest; import uk.gov.hmcts.reform.professionalapi.controller.request.validator.OrganisationIdentifierValidator; +import uk.gov.hmcts.reform.professionalapi.controller.response.UpdateOrgSraResponse; import uk.gov.hmcts.reform.professionalapi.domain.Organisation; import uk.gov.hmcts.reform.professionalapi.domain.OrganisationStatus; import uk.gov.hmcts.reform.professionalapi.service.OrganisationService; @@ -159,4 +160,22 @@ private boolean isSinceInValidFormat(String since) { return true; } + + public List validateOrganisationId(String orgId,List + updateOrgSraResponsesList,Organisation existingOrganisation) { + + if (!orgId.matches("^[A-Z0-9]{7}$")) { + updateOrgSraResponsesList.add(new UpdateOrgSraResponse(orgId, "failure", + HttpStatus.BAD_REQUEST.value(), + "The given organisationIdentifier must be 7 Alphanumeric Characters")); + } else if (Optional.ofNullable(existingOrganisation).isEmpty()) { + updateOrgSraResponsesList.add(new UpdateOrgSraResponse(orgId, "failure", + HttpStatus.BAD_REQUEST.value(), NO_ORG_FOUND_FOR_GIVEN_ID)); + } else if (OrganisationStatus.ACTIVE != existingOrganisation.getStatus()) { + updateOrgSraResponsesList.add(new UpdateOrgSraResponse(orgId, "failure", + HttpStatus.BAD_REQUEST.value(), ORG_NOT_ACTIVE)); + } + + return updateOrgSraResponsesList; + } } diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/response/UpdateOrgSraResponse.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/response/UpdateOrgSraResponse.java new file mode 100644 index 0000000000..e8d19c1ca9 --- /dev/null +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/response/UpdateOrgSraResponse.java @@ -0,0 +1,20 @@ +package uk.gov.hmcts.reform.professionalapi.controller.response; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public class UpdateOrgSraResponse { + + @JsonProperty + private String organisationId; + @JsonProperty + private String status; + @JsonProperty + private int statusCode; + @JsonProperty + private String message; + +} \ No newline at end of file diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/response/UpdateSraResponse.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/response/UpdateSraResponse.java new file mode 100644 index 0000000000..66507d6b45 --- /dev/null +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/response/UpdateSraResponse.java @@ -0,0 +1,30 @@ +package uk.gov.hmcts.reform.professionalapi.controller.response; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.List; + +import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL; + +@Getter +@JsonPropertyOrder({"status"}) +@AllArgsConstructor +public class UpdateSraResponse { + + @JsonInclude(NON_NULL) + @JsonProperty("status") + private String status; + + @JsonInclude(NON_NULL) + @JsonProperty("message") + private String message; + + @JsonInclude(NON_NULL) + @JsonProperty(value = "names") + private List updateOrgSraResponse; + +} \ No newline at end of file diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/OrganisationService.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/OrganisationService.java index 60608b0f77..74ee219118 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/OrganisationService.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/OrganisationService.java @@ -15,6 +15,8 @@ import uk.gov.hmcts.reform.professionalapi.controller.response.OrganisationResponse; import uk.gov.hmcts.reform.professionalapi.controller.response.OrganisationsDetailResponse; import uk.gov.hmcts.reform.professionalapi.controller.response.OrganisationsDetailResponseV2; +import uk.gov.hmcts.reform.professionalapi.controller.response.UpdateOrgSraResponse; +import uk.gov.hmcts.reform.professionalapi.controller.response.UpdateSraResponse; import uk.gov.hmcts.reform.professionalapi.domain.Organisation; import uk.gov.hmcts.reform.professionalapi.domain.OrganisationStatus; import uk.gov.hmcts.reform.professionalapi.domain.PaymentAccount; @@ -47,8 +49,6 @@ OrganisationsDetailResponseV2 findByOrganisationStatusForV2Api(LocalDateTime for OrganisationEntityResponse retrieveOrganisation(String organisationIdentifier, boolean isPendingPbaRequired); - ResponseEntity updateOrganisationSra( - OrganisationSraUpdateRequest organisationSraUpdateRequest, String organisationIdentifier); OrganisationResponse updateOrganisation(OrganisationCreationRequest organisationCreationRequest, String organisationIdentifier, Boolean isOrgApprovalRequest); @@ -85,4 +85,11 @@ void addContactInformationsToOrganisation( ResponseEntity retrieveOrganisationByUserId(String userId); + + UpdateSraResponse generateUpdateSraResponse(List updateOrgNameResponse); + + List updateOrganisationSra( + Organisation existingOrganisation, OrganisationSraUpdateRequest.OrganisationSraUpdateData + organisationNameUpdateData,List updateOrgNameResponsesList); + } diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java index 5c1ff59f0b..2a7d3d046a 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java @@ -43,6 +43,8 @@ import uk.gov.hmcts.reform.professionalapi.controller.response.OrganisationsDetailResponseV2; import uk.gov.hmcts.reform.professionalapi.controller.response.OrganisationsWithPbaStatusResponse; import uk.gov.hmcts.reform.professionalapi.controller.response.SuperUserResponse; +import uk.gov.hmcts.reform.professionalapi.controller.response.UpdateOrgSraResponse; +import uk.gov.hmcts.reform.professionalapi.controller.response.UpdateSraResponse; import uk.gov.hmcts.reform.professionalapi.domain.AddPbaResponse; import uk.gov.hmcts.reform.professionalapi.domain.BulkCustomerDetails; import uk.gov.hmcts.reform.professionalapi.domain.ContactInformation; @@ -88,11 +90,12 @@ import java.util.Set; import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; import java.util.stream.Stream; import static java.lang.Boolean.TRUE; -import static org.apache.commons.lang.StringUtils.isNotBlank; +import static java.util.stream.Collectors.toList; import static org.apache.commons.lang3.ObjectUtils.isNotEmpty; import static org.springframework.util.CollectionUtils.isEmpty; import static uk.gov.hmcts.reform.professionalapi.controller.constants.ProfessionalApiConstants.ERROR_MSG_PARTIAL_SUCCESS; @@ -883,7 +886,7 @@ public ResponseEntity getOrganisationsByPbaStatus(String pbaStatus) { LinkedHashMap> orgPbaMap = organisations .stream() .collect(Collectors.groupingBy( - Organisation::getOrganisationIdentifier, LinkedHashMap::new, Collectors.toList())); + Organisation::getOrganisationIdentifier, LinkedHashMap::new, toList())); var organisationsWithPbaStatusResponses = new ArrayList(); @@ -1061,50 +1064,84 @@ private boolean getMoreAvailable(Page pageableOrganisations) { } public OrgAttribute saveOrganisationAttributes(Organisation existingOrganisation, - OrganisationSraUpdateRequest organisationNameSraUpdateRequest) { + OrganisationSraUpdateRequest.OrganisationSraUpdateData + organisationSraUpdateData) { final String attributeKey = "regulators-0"; final String attributeValue = "{\"regulatorType\":\"Solicitor Regulation Authority (SRA)\"," - + "\"organisationRegistrationNumber\":\"" + organisationNameSraUpdateRequest.getSraId() + "\"}"; + + "\"organisationRegistrationNumber\":\"" + organisationSraUpdateData.getSraId() + "\"}"; existingOrganisation.setSraId( - RefDataUtil.removeEmptySpaces(organisationNameSraUpdateRequest.getSraId())); + RefDataUtil.removeEmptySpaces(organisationSraUpdateData.getSraId())); OrgAttribute attribute = new OrgAttribute(); attribute.setKey(RefDataUtil.removeEmptySpaces(attributeKey)); attribute.setValue(RefDataUtil .removeEmptySpaces(attributeValue)); attribute.setOrganisation(existingOrganisation); + OrgAttribute savedAttribute = orgAttributeRepository.save(attribute); List attributes = new ArrayList<>(); - attributes.add(attribute); + attributes.add(savedAttribute); existingOrganisation.setOrgAttributes(attributes); return savedAttribute; } @Override - @Transactional - public ResponseEntity updateOrganisationSra( - OrganisationSraUpdateRequest organisationSraUpdateRequest, String organisationIdentifier) { + public List updateOrganisationSra( + Organisation existingOrganisation, OrganisationSraUpdateRequest.OrganisationSraUpdateData + organisationSraUpdateData, List updateOrgSraResponsesList) { - var existingOrganisation = organisationRepository.findByOrganisationIdentifier(organisationIdentifier); - Organisation savedOrganisation = null; - if (existingOrganisation == null) { - throw new EmptyResultDataAccessException(ONE); - } else { - if (isNotBlank(organisationSraUpdateRequest.getSraId())) { - OrgAttribute savedAttribute = saveOrganisationAttributes( - existingOrganisation, organisationSraUpdateRequest); - if (savedAttribute == null) { - log.error("{}:: error saving Organisation Attribute::", loggingComponentName); - throw new EmptyResultDataAccessException("Error saving organisation attributes", 1); - } + existingOrganisation.setSraId(RefDataUtil.removeEmptySpaces(organisationSraUpdateData.getSraId())); + existingOrganisation.setLastUpdated(LocalDateTime.now()); + + + try { + OrgAttribute savedAttribute = saveOrganisationAttributes( + existingOrganisation, organisationSraUpdateData); + if (savedAttribute == null) { + log.error("{}:: error saving Organisation Attribute::", loggingComponentName); + updateOrgSraResponsesList.add(new UpdateOrgSraResponse(existingOrganisation.getOrganisationIdentifier(), + "failure", HttpStatus.INTERNAL_SERVER_ERROR.value(), + "Failed to update Organisation Attributes for the given organisationIdentifier. Reason : " + )); + } else { + updateOrgSraResponsesList.add(new UpdateOrgSraResponse(existingOrganisation.getOrganisationIdentifier(), + "success", HttpStatus.OK.value(), "Organisation Attributes updated successfully")); + + organisationRepository.save(existingOrganisation); + + updateOrgSraResponsesList.add(new UpdateOrgSraResponse(existingOrganisation.getOrganisationIdentifier(), + "success", HttpStatus.OK.value(), "SraId updated successfully")); } - existingOrganisation.setSraId(organisationSraUpdateRequest.getSraId()); - existingOrganisation.setLastUpdated(LocalDateTime.now()); - organisationRepository.save(existingOrganisation); + } catch (Exception ex) { + updateOrgSraResponsesList.add(new UpdateOrgSraResponse(existingOrganisation.getOrganisationIdentifier(), + "failure", HttpStatus.INTERNAL_SERVER_ERROR.value(), + "Failed to update the sraId for the given organisationIdentifier. Reason : " + + ex.getMessage())); } - return ResponseEntity.status(200).build(); + return updateOrgSraResponsesList; } + + @Override + public UpdateSraResponse generateUpdateSraResponse(List updateOrgSraResponses) { + AtomicReference message = null; + boolean result = updateOrgSraResponses.stream().anyMatch(updateOrgNameResponse -> + updateOrgNameResponse.getStatusCode() != 200); + List responseList = updateOrgSraResponses.stream().filter(updateOrgNameResponse -> + updateOrgNameResponse.getStatusCode() == 400).collect(toList()); + + if (updateOrgSraResponses.size() == responseList.size()) { + return new UpdateSraResponse("failure",null,updateOrgSraResponses); + } else if (result) { + return new UpdateSraResponse("partial_success",null,updateOrgSraResponses); + } else { + return new UpdateSraResponse("success","All names updated successfully", + null); + } + } + + + } diff --git a/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2Test.java b/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2Test.java index e5106e2c3c..66b98fb5b7 100644 --- a/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2Test.java +++ b/src/test/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2Test.java @@ -27,6 +27,8 @@ import uk.gov.hmcts.reform.professionalapi.controller.request.validator.impl.OrganisationIdentifierValidatorImpl; import uk.gov.hmcts.reform.professionalapi.controller.response.OrganisationEntityResponseV2; import uk.gov.hmcts.reform.professionalapi.controller.response.OrganisationsDetailResponseV2; +import uk.gov.hmcts.reform.professionalapi.controller.response.UpdateOrgSraResponse; +import uk.gov.hmcts.reform.professionalapi.controller.response.UpdateSraResponse; import uk.gov.hmcts.reform.professionalapi.controller.response.UserProfileCreationResponse; import uk.gov.hmcts.reform.professionalapi.domain.Organisation; import uk.gov.hmcts.reform.professionalapi.domain.OrganisationStatus; @@ -90,7 +92,7 @@ class OrganisationInternalControllerV2Test { private List prdEnumList; - private OrganisationSraUpdateRequest organisationSraUpdateRequest; + private OrganisationSraUpdateRequest.OrganisationSraUpdateData organisationSraUpdateRequest; @InjectMocks private OrganisationInternalControllerV2 organisationInternalController; @@ -131,7 +133,6 @@ void setUp() throws Exception { prdEnumServiceMock = mock(PrdEnumServiceImpl.class); userProfileFeignClient = mock(UserProfileFeignClient.class); organisation.setOrganisationIdentifier("AK57L4T"); - organisationSraUpdateRequest = new OrganisationSraUpdateRequest("sraId"); organisationOtherOrgsCreationRequest = new OrganisationOtherOrgsCreationRequest("test", "PENDING", "Status message", "sra-id", "false", "number02", "company-url", @@ -340,28 +341,61 @@ void testUpdateOrganisation()throws JsonProcessingException { @Test void testUpdateOrgSraId() { - final HttpStatus expectedHttpStatus = HttpStatus.OK; - String updatedSraId = randomAlphabetic(7); - organisation.setSraId(updatedSraId); - organisationSraUpdateRequest.setSraId(updatedSraId); + String newSraId1 = randomAlphabetic(7); + String newSraId2 = randomAlphabetic(7); + Organisation organisation1 = new Organisation("Org-Name-1", OrganisationStatus.ACTIVE, "sra-id", + "companyN", false, "www.org.com"); + Organisation organisation2 = new Organisation("Org-Name-2", OrganisationStatus.ACTIVE, "sra-id-0", + "companyN", false, "www.org.com"); + + OrganisationSraUpdateRequest organisationNameUpdateRequest = new OrganisationSraUpdateRequest(); + List organisationSraUpdateDataList + = new ArrayList<>(); + OrganisationSraUpdateRequest.OrganisationSraUpdateData organisationSraUpdateData1 = + new OrganisationSraUpdateRequest.OrganisationSraUpdateData( + organisation1.getOrganisationIdentifier(),newSraId1); + OrganisationSraUpdateRequest.OrganisationSraUpdateData organisationSraUpdateData2 = + new OrganisationSraUpdateRequest.OrganisationSraUpdateData( + organisation2.getOrganisationIdentifier(),newSraId2); + organisationSraUpdateDataList.add(organisationSraUpdateData1); + organisationSraUpdateDataList.add(organisationSraUpdateData2); + organisationNameUpdateRequest.setOrganisationSraUpdateDataList(organisationSraUpdateDataList); + + final List updateOrgSraResponsesList = new ArrayList<>(); + + Organisation organisationMock = mock(Organisation.class); + when(organisationServiceMock.getOrganisationByOrgIdentifier(any())) + .thenReturn(organisationMock); + when(organisationIdentifierValidatorImpl.validateOrganisationId(any(), + any(),any())).thenReturn(updateOrgSraResponsesList); + + when(organisationServiceMock.updateOrganisationSra(any(),any(),any())) + .thenReturn(createResponse(updateOrgSraResponsesList,organisation1.getOrganisationIdentifier())); + UpdateSraResponse updateNameResponse = new UpdateSraResponse("success", + "All names updated successfully",null); + when(organisationServiceMock. generateUpdateSraResponse(any())) + .thenReturn(updateNameResponse); + UpdateSraResponse response = organisationInternalController.updateOrganisationSra( + organisationNameUpdateRequest); + assertThat(response).isNotNull(); + assertThat(response.getStatus()).isEqualTo("success"); + assertThat(response.getMessage()).isEqualTo("All names updated successfully"); - assertThat(organisationSraUpdateRequest.getSraId()).isNotEmpty(); + verify(organisationServiceMock, times(2)).updateOrganisationSra( + any(), any(),any()); + verify(organisationServiceMock, times(2)).getOrganisationByOrgIdentifier(any()); - when(organisationServiceMock.updateOrganisationSra(organisationSraUpdateRequest, - organisation.getOrganisationIdentifier())).thenReturn(ResponseEntity.status(200).build()); + } - ResponseEntity response = organisationInternalController - .updateOrganisationSra(organisationSraUpdateRequest,organisation.getOrganisationIdentifier()); - assertThat(response).isNotNull(); - assertThat(response.getStatusCode()).isEqualTo(expectedHttpStatus); + private List createResponse(List responses,String orgId) { - verify(organisationIdentifierValidatorImpl, times(1)) - .validateOrganisationExistsAndActive(organisation.getOrganisationIdentifier()); - verify(organisationServiceMock, times(1)) - .updateOrganisationSra(organisationSraUpdateRequest, organisation.getOrganisationIdentifier()); + responses.add(new UpdateOrgSraResponse(orgId, + "success", HttpStatus.OK.value(),"Name updated successfully")); + return responses; } + } diff --git a/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java b/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java index 3f67f4a9a1..e23ff23112 100644 --- a/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java +++ b/src/test/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImplTest.java @@ -50,6 +50,7 @@ import uk.gov.hmcts.reform.professionalapi.controller.response.OrganisationsWithPbaStatusResponse; import uk.gov.hmcts.reform.professionalapi.controller.response.ProfessionalUsersEntityResponse; import uk.gov.hmcts.reform.professionalapi.controller.response.ProfessionalUsersResponse; +import uk.gov.hmcts.reform.professionalapi.controller.response.UpdateOrgSraResponse; import uk.gov.hmcts.reform.professionalapi.domain.AddPbaResponse; import uk.gov.hmcts.reform.professionalapi.domain.BulkCustomerDetails; import uk.gov.hmcts.reform.professionalapi.domain.ContactInformation; @@ -280,8 +281,6 @@ void setUp() { contactInformationCreationRequests, "Doctor", orgAttributeRequests); deleteOrganisationResponse = new DeleteOrganisationResponse(204, "successfully deleted"); - organisationSraUpdateRequest = new OrganisationSraUpdateRequest("sraId"); - when(dxAddressRepositoryMock.save(any(DxAddress.class))).thenReturn(dxAddress); when(contactInformationRepositoryMock.save(any(ContactInformation.class))).thenReturn(contactInformation); when(professionalUserRepositoryMock.save(any(ProfessionalUser.class))).thenReturn(professionalUser); @@ -1941,42 +1940,33 @@ void test_updateStatusAndMessage() { @Test void test_updateOrganisationSra() { String newSraId = randomAlphabetic(7); - final String orgIdentifier = "9KS20WT"; - organisationSraUpdateRequest.setSraId(newSraId); - String orgId = UUID.randomUUID().toString().substring(0, 7); - - when(organisationRepository.findByOrganisationIdentifier(orgId)).thenReturn(null); - assertThrows(EmptyResultDataAccessException.class, () -> - sut.retrieveOrganisation(orgId, false)); - verify(organisationRepository, times(1)) - .findByOrganisationIdentifier(any(String.class)); - - Organisation organisationMock = mock(Organisation.class); - when(organisationRepository.findByOrganisationIdentifier(any(String.class))) - .thenReturn(organisationMock); - - - organisationMock.setSraId(newSraId); + Organisation organisation1 = new Organisation("Org-Name-1", OrganisationStatus.ACTIVE, "sra-id", + "companyN", false, "www.org.com"); + OrganisationSraUpdateRequest.OrganisationSraUpdateData organisationSraUpdateData1 = + new OrganisationSraUpdateRequest.OrganisationSraUpdateData( + organisation1.getOrganisationIdentifier(),newSraId); + final List updateOrgNameResponsesList = new ArrayList<>(); + organisation1.setName(RefDataUtil.removeEmptySpaces(organisationSraUpdateData1.getSraId())); + organisation1.setLastUpdated(LocalDateTime.now()); OrgAttribute orgAttributeMock = mock(OrgAttribute.class); when(orgAttributeRepository.save(any(OrgAttribute.class))).thenReturn(orgAttributeMock); - when(organisationRepository.save(organisationMock)).thenReturn(organisationMock); + Organisation organisationMock = mock(Organisation.class); + when(organisationRepository.save(organisation1)).thenReturn(organisationMock); - ResponseEntity updatedOrganisation = sut.updateOrganisationSra( - organisationSraUpdateRequest,orgIdentifier); + List updateNameResponse = sut.updateOrganisationSra(organisation1, + organisationSraUpdateData1,updateOrgNameResponsesList); - assertThat(updatedOrganisation).isNotNull(); + assertNotNull(updateNameResponse); verify(organisationRepository, times(1)) - .findByOrganisationIdentifier(orgIdentifier); - + .save(organisation1); verify(orgAttributeRepository, times(1)) .save(any(OrgAttribute.class)); - verify(organisationRepository, times(1)) - .save(organisationMock); + } From 967c9e1d7754775dce7cd328a410a1c5d0a5a131 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Thu, 19 Sep 2024 22:53:38 +0100 Subject: [PATCH 58/64] made c hanges to endpoint to accept multiple requests in line with DTSRD-2136 --- .../request/OrganisationSraUpdateRequest.java | 34 ++++++++++++++----- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationSraUpdateRequest.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationSraUpdateRequest.java index 6bb615ad1a..d111a117b1 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationSraUpdateRequest.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationSraUpdateRequest.java @@ -2,26 +2,44 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Builder; import lombok.Getter; import lombok.Setter; +import java.util.List; import javax.validation.Valid; import javax.validation.constraints.NotNull; @Getter @Setter -@Builder(builderMethodName = "anOrganisationSraUpdateRequest") public class OrganisationSraUpdateRequest { - @Valid - @NotNull(message = "SRA Id is required.") - private String sraId; - @JsonCreator - public OrganisationSraUpdateRequest( + @JsonProperty(value = "sarIds") + private List organisationSraUpdateDataList; + + public OrganisationSraUpdateRequest() { + + } + + @Getter + @Setter + public static class OrganisationSraUpdateData { + + @Valid + @NotNull(message = "SRA Id is required.") + private String sraId; + + @Valid + @NotNull(message = " organisation Id is required.") + private String organisationId; + + @JsonCreator + public OrganisationSraUpdateData( + @JsonProperty("organisationId") String organisationId, @JsonProperty("sraId") String sraId) { - this.sraId = sraId; + this.organisationId = organisationId; + this.sraId = sraId; + } } } \ No newline at end of file From f2908938faf828832888b7028ea63fc67fbe799c Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Fri, 20 Sep 2024 01:04:41 +0100 Subject: [PATCH 59/64] made changes to endpoint to accept multiple requests in line with DTSRD-2136 --- ...nalInternalUserFunctionalForV2ApiTest.java | 22 +++--- .../client/ProfessionalApiClient.java | 2 +- .../UpdateOrgSraIntegrationTest.java | 78 +++++++++++-------- .../util/ProfessionalReferenceDataClient.java | 4 +- .../OrganisationInternalControllerV2.java | 2 +- .../response/UpdateSraResponse.java | 2 +- .../service/impl/OrganisationServiceImpl.java | 2 +- 7 files changed, 64 insertions(+), 48 deletions(-) diff --git a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalForV2ApiTest.java b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalForV2ApiTest.java index aa9ba7d18a..f08304c98c 100644 --- a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalForV2ApiTest.java +++ b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalForV2ApiTest.java @@ -555,7 +555,7 @@ void updateOrganisationSraIdShouldReturnSuccess() { assertNotNull(orgUpdatedSraResponse); assertThat(orgUpdatedSraResponse.body().as(Map.class).get("status")).isEqualTo("success"); assertThat(orgUpdatedSraResponse.body().as(Map.class).get("message")).isEqualTo( - "All SraIds updated successfully"); + "All sraIds updated successfully"); //retrieve 1st saved organisation by id verifyRetrievedOrg(orgId2,sraId1); //retrieve 2st saved organisation by id @@ -649,18 +649,22 @@ void updateOrganisationSraShouldReturnPartialSuccessIfNoSraId() { ArrayList sraIds = (ArrayList) orgUpdatedSraResponse.body().as(Map.class).get("sraIds"); LinkedHashMap response1 = (LinkedHashMap) sraIds.get(0); LinkedHashMap response2 = (LinkedHashMap) sraIds.get(1); - + LinkedHashMap response3 = (LinkedHashMap) sraIds.get(2); assertThat(response1.get("organisationId")).isEqualTo(orgId1); - assertThat(response2.get("organisationId")).isEqualTo(orgId2); - assertThat(response1.get("status")).isEqualTo("failure"); - assertThat(response2.get("status")).isEqualTo("success"); - assertThat(response1.get("statusCode")).isEqualTo(400); + assertThat(response1.get("message")).isEqualTo("Organisation sraId is missing"); + + assertThat(response2.get("organisationId")).isEqualTo(orgId2); + assertThat(response2.get("status")).isEqualTo("success"); assertThat(response2.get("statusCode")).isEqualTo(200); + assertThat(response2.get("message")).isEqualTo("Organisation Attributes updated successfully"); + + assertThat(response3.get("organisationId")).isEqualTo(orgId2); + assertThat(response3.get("status")).isEqualTo("success"); + assertThat(response3.get("statusCode")).isEqualTo(200); + assertThat(response3.get("message")).isEqualTo("SraId updated successfully"); - assertThat(response1.get("message")).isEqualTo("Organisation sraId is missing"); - assertThat(response2.get("message")).isEqualTo("SraId updated successfully"); //retrieve 2st saved organisation by id verifyRetrievedOrg(orgId2,sraId1); @@ -713,8 +717,6 @@ public void verifyRetrievedOrg(String orgId,String sraId) { "{\"regulatorType\":\"Solicitor Regulation Authority " + "(SRA)\",\"organisationRegistrationNumber\":\"" + sraId + "\"}"); - LocalDateTime updatedOrgAttributeDate = LocalDateTime.parse(orgResponse.get("lastUpdated").toString()); - assertThat(updatedOrgAttributeDate.toLocalDate()).isEqualTo(LocalDate.now()); final Object sraIdSaved = orgResponse.get("sraId"); assertThat(sraIdSaved).isNotNull().isEqualTo(sraId); LocalDateTime updatedDate = LocalDateTime.parse(orgResponse.get("lastUpdated").toString()); diff --git a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java index 2ac67b6014..5f36238c2f 100644 --- a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java +++ b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/client/ProfessionalApiClient.java @@ -1322,7 +1322,7 @@ public Response updatesOrganisationSra(OrganisationSraUpdateRequest organisation Response response = getMultipleAuthHeadersInternal() .body(organisationSraUpdateRequest) - .put("/refdata/internal/v1/organisations/sra") + .put("/refdata/internal/v2/organisations/sra") .andReturn(); log.info("{}:: Update organisation Sra id response: {}", diff --git a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java index 43ed4e495f..82d0585359 100644 --- a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java +++ b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java @@ -37,7 +37,7 @@ void update_sra_of_an_active_organisation_should_return_success_if_all_requests_ LinkedHashMap responses = (LinkedHashMap)orgUpdatedSraResponse.get("response_body"); assertThat(responses.get("status")).isEqualTo("success"); - assertThat(responses.get("message")).isEqualTo("All SraIds updated successfully"); + assertThat(responses.get("message")).isEqualTo("All sraIds updated successfully"); verifyRetrievedOrg(orgId1,sraId1); verifyRetrievedOrg(orgId2,sraId2); @@ -66,12 +66,22 @@ void update_Sra_of_an_active_organisation_should_return_partial_success_if_any_f verifyRetrievedOrg(orgId1,sraId1); //verify error response - ArrayList responseList = (ArrayList)responses.get("Sras"); - LinkedHashMap result = (LinkedHashMap)responseList.get(1); - assertThat(result.get("organisationId")).isEqualTo(orgId2); - assertThat(result.get("status")).isEqualTo("failure"); - assertThat(result.get("statusCode")).isEqualTo(400); - assertThat(result.get("message")).isEqualTo("Organisation Sra is missing"); + ArrayList responseList = (ArrayList)responses.get("sarIds"); + LinkedHashMap result = (LinkedHashMap)responseList.get(0); + assertThat(result.get("organisationId")).isEqualTo(orgId1); + assertThat(result.get("status")).isEqualTo("success"); + assertThat(result.get("statusCode")).isEqualTo(200); + assertThat(result.get("message")).isEqualTo("Organisation Attributes updated successfully"); + LinkedHashMap result1 = (LinkedHashMap)responseList.get(1); + assertThat(result1.get("organisationId")).isEqualTo(orgId1); + assertThat(result1.get("status")).isEqualTo("success"); + assertThat(result1.get("statusCode")).isEqualTo(200); + assertThat(result1.get("message")).isEqualTo("SraId updated successfully"); + LinkedHashMap result2 = (LinkedHashMap)responseList.get(2); + assertThat(result2.get("organisationId")).isEqualTo(orgId2); + assertThat(result2.get("status")).isEqualTo("failure"); + assertThat(result2.get("statusCode")).isEqualTo(400); + assertThat(result2.get("message")).isEqualTo("Organisation sraId is missing"); deleteCreatedTestOrganisations(orgId1, orgId2); } @@ -93,18 +103,18 @@ void update_Sra_missing_in_all_requests_should_return_failure() { assertThat(responses.get("status")).isEqualTo("failure"); - ArrayList responseList = (ArrayList)responses.get("Sras"); + ArrayList responseList = (ArrayList)responses.get("sarIds"); LinkedHashMap firstResult = (LinkedHashMap)responseList.get(0); LinkedHashMap secondResult = (LinkedHashMap)responseList.get(1); assertThat(secondResult.get("organisationId")).isEqualTo(orgId2); assertThat(secondResult.get("status")).isEqualTo("failure"); assertThat(secondResult.get("statusCode")).isEqualTo(400); - assertThat(secondResult.get("message")).isEqualTo("Organisation SraId is missing"); + assertThat(secondResult.get("message")).isEqualTo("Organisation sraId is missing"); assertThat(firstResult.get("organisationId")).isEqualTo(orgId1); assertThat(firstResult.get("status")).isEqualTo("failure"); assertThat(firstResult.get("statusCode")).isEqualTo(400); - assertThat(firstResult.get("message")).isEqualTo("Organisation SraId is missing"); + assertThat(firstResult.get("message")).isEqualTo("Organisation sraId is missing"); deleteCreatedTestOrganisations(orgId1, orgId2); } @@ -124,7 +134,7 @@ void orgId_missing_in_all_requests_should_return_failure() { assertThat(responses.get("status")).isEqualTo("failure"); - ArrayList responseList = (ArrayList)responses.get("Sras"); + ArrayList responseList = (ArrayList)responses.get("sarIds"); LinkedHashMap firstResult = (LinkedHashMap)responseList.get(0); LinkedHashMap secondResult = (LinkedHashMap)responseList.get(1); assertThat(secondResult.get("organisationId")).isEqualTo(""); @@ -161,25 +171,32 @@ void update_Sra_with_exception_during_save_returns_500_partial_success() { assertThat(responses.get("status")).isEqualTo("partial_success"); - ArrayList responseList = (ArrayList)responses.get("Sras"); - LinkedHashMap result1 = (LinkedHashMap)responseList.get(0); - assertThat(result1.get("organisationId")).isEqualTo(orgId1); - assertThat(result1.get("status")).isEqualTo("failure"); - assertThat(result1.get("statusCode")).isEqualTo(500); - assertThat(result1.get("message").toString().contains( - "Failed to update the Sra for the given organisationIdentifier. Reason :")); + ArrayList responseList = (ArrayList)responses.get("sarIds"); + LinkedHashMap result = (LinkedHashMap)responseList.get(0); + assertThat(result.get("organisationId")).isEqualTo(orgId1); + assertThat(result.get("status")).isEqualTo("failure"); + assertThat(result.get("statusCode")).isEqualTo(500); + assertThat(result.get("message").toString().contains( + "Failed to update the sraId for the given organisationIdentifier. Reason :")); + + LinkedHashMap result1 = (LinkedHashMap)responseList.get(1); + assertThat(result1.get("organisationId")).isEqualTo(orgId2); + assertThat(result1.get("status")).isEqualTo("success"); + assertThat(result1.get("statusCode")).isEqualTo(200); + assertThat(result1.get("message")).isEqualTo("Organisation Attributes updated successfully"); + verifyRetrievedOrg(orgId2,sraId2); - LinkedHashMap result = (LinkedHashMap)responseList.get(1); - assertThat(result.get("organisationId")).isEqualTo(orgId2); - assertThat(result.get("status")).isEqualTo("success"); - assertThat(result.get("statusCode")).isEqualTo(200); - assertThat(result.get("message")).isEqualTo("Sra updated successfully"); + LinkedHashMap result2 = (LinkedHashMap)responseList.get(2); + assertThat(result2.get("organisationId")).isEqualTo(orgId2); + assertThat(result2.get("status")).isEqualTo("success"); + assertThat(result2.get("statusCode")).isEqualTo(200); + assertThat(result2.get("message")).isEqualTo("SraId updated successfully"); verifyRetrievedOrg(orgId2,sraId2); + deleteCreatedTestOrganisations(orgId1, orgId2); } - private String getActiveOrganisationId() { OrganisationCreationRequest organisationCreationRequest2 = someMinimalOrganisationRequest().build(); String organisationIdentifier = createAndActivateOrganisationWithGivenRequest(organisationCreationRequest2); @@ -194,9 +211,9 @@ public OrganisationSraUpdateRequest createOrganisationSraUpdateRequest(String sr List organisationSraUpdateDataList = new ArrayList<>(); OrganisationSraUpdateRequest.OrganisationSraUpdateData organisationSraUpdateData1 = - new OrganisationSraUpdateRequest.OrganisationSraUpdateData(sra1,orgId1); + new OrganisationSraUpdateRequest.OrganisationSraUpdateData(orgId1,sra1); OrganisationSraUpdateRequest.OrganisationSraUpdateData organisationSraUpdateData2 = - new OrganisationSraUpdateRequest.OrganisationSraUpdateData(sra2,orgId2); + new OrganisationSraUpdateRequest.OrganisationSraUpdateData(orgId2,sra2); organisationSraUpdateDataList.add(organisationSraUpdateData1); organisationSraUpdateDataList.add(organisationSraUpdateData2); organisationSraUpdateRequest.setOrganisationSraUpdateDataList(organisationSraUpdateDataList); @@ -205,13 +222,12 @@ public OrganisationSraUpdateRequest createOrganisationSraUpdateRequest(String sr } public void verifyRetrievedOrg(String orgId,String sraId) { - // Map responseBody = professionalReferenceDataClient - // .retrieveSingleOrganisationForV2Api(orgIdentifier,hmctsAdmin); Map responseBody = - professionalReferenceDataClient.retrieveSingleOrganisation(orgId, hmctsAdmin); + professionalReferenceDataClient.retrieveSingleOrganisationForV2Api(orgId, hmctsAdmin); + final Object Sra = responseBody.get("sraId"); - assertThat(Sra).isNotNull().isEqualTo(sraId); + assertThat(Sra.toString()).isEqualTo(sraId); List organisationAttributes = (List)responseBody.get("orgAttributes"); assertThat(organisationAttributes).isNotNull(); @@ -222,9 +238,7 @@ public void verifyRetrievedOrg(String orgId,String sraId) { "{\"regulatorType\":\"Solicitor Regulation Authority " + "(SRA)\",\"organisationRegistrationNumber\":\"" + sraId + "\"}"); - LocalDateTime updatedAttributeDate = LocalDateTime.parse(responseBody.get("lastUpdated").toString()); - assertThat(updatedAttributeDate.toLocalDate()).isEqualTo(LocalDate.now()); LocalDateTime updatedDate = LocalDateTime.parse(responseBody.get("lastUpdated").toString()); assertThat(updatedDate.toLocalDate()).isEqualTo(LocalDate.now()); diff --git a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/util/ProfessionalReferenceDataClient.java b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/util/ProfessionalReferenceDataClient.java index ab22424d52..577d2f27e4 100644 --- a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/util/ProfessionalReferenceDataClient.java +++ b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/util/ProfessionalReferenceDataClient.java @@ -1032,7 +1032,7 @@ public ResponseEntity updateOrgSraException( OrganisationSraUpdateRequest organisationSraUpdateRequest, String role) { ResponseEntity responseEntity = null; - String urlPath = "http://localhost:" + prdApiPort + APP_INT_BASE_PATH + "/sra"; + String urlPath = "http://localhost:" + prdApiPort + APP_INT_V2_BASE_PATH + "/sra"; HttpEntity requestEntity = new HttpEntity<>(organisationSraUpdateRequest, getMultipleAuthHeaders(role)); @@ -1046,7 +1046,7 @@ public Map updateOrgSra( ResponseEntity responseEntity = null; - String urlPath = "http://localhost:" + prdApiPort + APP_INT_BASE_PATH + "/sra"; + String urlPath = "http://localhost:" + prdApiPort + APP_INT_V2_BASE_PATH + "/sra"; try { HttpEntity requestEntity = new HttpEntity<>(organisationSraUpdateRequest, getMultipleAuthHeaders(role)); diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2.java index 7957e26931..8d34a58e4d 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2.java @@ -291,7 +291,7 @@ public ResponseEntity updatesOrganisation( @ResponseBody @Secured({"prd-admin"}) public UpdateSraResponse updateOrganisationSra( - @io.swagger.v3.oas.annotations.parameters.RequestBody(description = "organisationsraUpdateRequest") + @io.swagger.v3.oas.annotations.parameters.RequestBody(description = "organisationSraUpdateRequest") @Valid @NotNull @RequestBody OrganisationSraUpdateRequest organisationSraUpdateRequest) { //check if request list is empty diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/response/UpdateSraResponse.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/response/UpdateSraResponse.java index 66507d6b45..11fed1411a 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/response/UpdateSraResponse.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/response/UpdateSraResponse.java @@ -24,7 +24,7 @@ public class UpdateSraResponse { private String message; @JsonInclude(NON_NULL) - @JsonProperty(value = "names") + @JsonProperty(value = "sarIds") private List updateOrgSraResponse; } \ No newline at end of file diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java index 2a7d3d046a..28a611f444 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/service/impl/OrganisationServiceImpl.java @@ -1136,7 +1136,7 @@ public UpdateSraResponse generateUpdateSraResponse(List up } else if (result) { return new UpdateSraResponse("partial_success",null,updateOrgSraResponses); } else { - return new UpdateSraResponse("success","All names updated successfully", + return new UpdateSraResponse("success","All sraIds updated successfully", null); } } From 986835eda17f3206c4dd847a0effdcf0e87f0393 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Fri, 20 Sep 2024 09:18:06 +0100 Subject: [PATCH 60/64] made changes to endpoint to accept multiple requests in line with DTSRD-2136 --- .../internal/OrganisationInternalControllerV2.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2.java index 8d34a58e4d..d8dbbefbf4 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2.java @@ -6,9 +6,6 @@ import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.security.SecurityRequirement; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; -import jakarta.validation.constraints.Pattern; import lombok.NoArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; @@ -40,7 +37,6 @@ import java.util.ArrayList; import java.util.List; -import javax.validation.Valid; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import javax.validation.constraints.Pattern; @@ -292,7 +288,7 @@ public ResponseEntity updatesOrganisation( @Secured({"prd-admin"}) public UpdateSraResponse updateOrganisationSra( @io.swagger.v3.oas.annotations.parameters.RequestBody(description = "organisationSraUpdateRequest") - @Valid @NotNull @RequestBody OrganisationSraUpdateRequest organisationSraUpdateRequest) { + @Validated @NotNull @RequestBody OrganisationSraUpdateRequest organisationSraUpdateRequest) { //check if request list is empty List organisationSraUpdateDataList = From 31b4ad86e17e38aec1aca0f90fa133bc3171424f Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Fri, 20 Sep 2024 09:24:41 +0100 Subject: [PATCH 61/64] made changes to endpoint to accept multiple requests in line with DTSRD-2136 --- .../internal/OrganisationInternalControllerV2.java | 6 +++--- .../controller/request/OrganisationSraUpdateRequest.java | 5 ++--- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2.java index d8dbbefbf4..0aa2e6daa4 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2.java @@ -37,9 +37,9 @@ import java.util.ArrayList; import java.util.List; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Pattern; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; import static uk.gov.hmcts.reform.professionalapi.controller.constants.ProfessionalApiConstants.ORGANISATION_IDENTIFIER_FORMAT_REGEX; diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationSraUpdateRequest.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationSraUpdateRequest.java index d111a117b1..495f9f0bc7 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationSraUpdateRequest.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationSraUpdateRequest.java @@ -6,9 +6,8 @@ import lombok.Setter; import java.util.List; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; - +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; @Getter @Setter From b951436a44fef9452c195853caa1bcf749d9fb3b Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Mon, 23 Sep 2024 12:58:36 +0100 Subject: [PATCH 62/64] fixing build --- .../internal/OrganisationInternalControllerV2.java | 6 +++--- .../controller/request/OrganisationSraUpdateRequest.java | 5 +++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2.java index 0aa2e6daa4..46acecc7db 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2.java @@ -6,6 +6,9 @@ import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.security.SecurityRequirement; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; import lombok.NoArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; @@ -37,9 +40,6 @@ import java.util.ArrayList; import java.util.List; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; -import jakarta.validation.constraints.Pattern; import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; import static uk.gov.hmcts.reform.professionalapi.controller.constants.ProfessionalApiConstants.ORGANISATION_IDENTIFIER_FORMAT_REGEX; diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationSraUpdateRequest.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationSraUpdateRequest.java index 495f9f0bc7..4b9e852cf0 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationSraUpdateRequest.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationSraUpdateRequest.java @@ -2,12 +2,13 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; import lombok.Getter; import lombok.Setter; import java.util.List; -import jakarta.validation.Valid; -import jakarta.validation.constraints.NotNull; + @Getter @Setter From 6a0e047912f0dc891065831588b8c805f877d82a Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Mon, 23 Sep 2024 15:46:57 +0100 Subject: [PATCH 63/64] fixing build --- ...nalInternalUserFunctionalForV2ApiTest.java | 28 +++++++++---------- .../UpdateOrgSraIntegrationTest.java | 8 +++--- .../request/OrganisationSraUpdateRequest.java | 2 +- .../response/UpdateSraResponse.java | 2 +- 4 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalForV2ApiTest.java b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalForV2ApiTest.java index f08304c98c..1ebf32d785 100644 --- a/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalForV2ApiTest.java +++ b/src/functionalTest/java/uk/gov/hmcts/reform/professionalapi/ProfessionalInternalUserFunctionalForV2ApiTest.java @@ -557,7 +557,7 @@ void updateOrganisationSraIdShouldReturnSuccess() { assertThat(orgUpdatedSraResponse.body().as(Map.class).get("message")).isEqualTo( "All sraIds updated successfully"); //retrieve 1st saved organisation by id - verifyRetrievedOrg(orgId2,sraId1); + verifyRetrievedOrg(orgId1,sraId1); //retrieve 2st saved organisation by id verifyRetrievedOrg(orgId2,sraId2); //Delete organisation @@ -580,7 +580,7 @@ void updateOrganisationSraIdShouldReturnFailureIfNoOrgId() { organisationSraUpdateRequest,hmctsAdmin, MULTI_STATUS); assertNotNull(orgUpdatedSraIdResponse); assertThat(orgUpdatedSraIdResponse.body().as(Map.class).get("status")).isEqualTo("failure"); - ArrayList sraIds = (ArrayList) orgUpdatedSraIdResponse.body().as(Map.class).get("sarIds"); + ArrayList sraIds = (ArrayList) orgUpdatedSraIdResponse.body().as(Map.class).get("sraIds"); LinkedHashMap response1 = (LinkedHashMap) sraIds.get(0); LinkedHashMap response2 = (LinkedHashMap) sraIds.get(1); @@ -610,7 +610,7 @@ void updateOrganisationSraIdShouldReturnFailureIfNoSraId() { organisationSraUpdateRequest,hmctsAdmin, MULTI_STATUS); assertNotNull(orgUpdatedSraResponse); assertThat(orgUpdatedSraResponse.body().as(Map.class).get("status")).isEqualTo("failure"); - ArrayList sraIds = (ArrayList) orgUpdatedSraResponse.body().as(Map.class).get("sarIds"); + ArrayList sraIds = (ArrayList) orgUpdatedSraResponse.body().as(Map.class).get("sraIds"); LinkedHashMap response1 = (LinkedHashMap) sraIds.get(0); LinkedHashMap response2 = (LinkedHashMap) sraIds.get(1); @@ -623,8 +623,8 @@ void updateOrganisationSraIdShouldReturnFailureIfNoSraId() { assertThat(response1.get("statusCode")).isEqualTo(400); assertThat(response2.get("statusCode")).isEqualTo(400); - assertThat(response1.get("message")).isEqualTo("Organisation SraId is missing"); - assertThat(response2.get("message")).isEqualTo("Organisation SraId is missing"); + assertThat(response1.get("message")).isEqualTo("Organisation sraId is missing"); + assertThat(response2.get("message")).isEqualTo("Organisation sraId is missing"); //Delete organisation deleteCreatedTestOrganisations(orgId1,orgId2); @@ -695,9 +695,9 @@ public OrganisationSraUpdateRequest createOrganisationSraUpdateRequest(String sr List organisationSraUpdateDataList = new ArrayList<>(); OrganisationSraUpdateRequest.OrganisationSraUpdateData organisationSraUpdateData1 = - new OrganisationSraUpdateRequest.OrganisationSraUpdateData(sraId1,orgId1); + new OrganisationSraUpdateRequest.OrganisationSraUpdateData(orgId1,sraId1); OrganisationSraUpdateRequest.OrganisationSraUpdateData organisationSraUpdateData2 = - new OrganisationSraUpdateRequest.OrganisationSraUpdateData(sraId2,orgId2); + new OrganisationSraUpdateRequest.OrganisationSraUpdateData(orgId2,sraId2); organisationSraUpdateDataList.add(organisationSraUpdateData1); organisationSraUpdateDataList.add(organisationSraUpdateData2); organisationSraUpdateRequest.setOrganisationSraUpdateDataList(organisationSraUpdateDataList); @@ -706,14 +706,14 @@ public OrganisationSraUpdateRequest createOrganisationSraUpdateRequest(String sr public void verifyRetrievedOrg(String orgId,String sraId) { - var orgResponse = professionalApiClient.retrieveOrganisationDetails(orgId, hmctsAdmin, OK); + var orgResponse = professionalApiClient.retrieveOrganisationDetailsForV2(orgId, hmctsAdmin, OK); assertThat(orgResponse).isNotNull(); - List organisationAttributes2 = (List)orgResponse.get("orgAttributes"); - assertThat(organisationAttributes2).isNotNull(); - LinkedHashMap attr2 = (LinkedHashMap)organisationAttributes2.get(0); - assertThat(attr2).isNotNull(); - assertThat(attr2.get("key")).isEqualTo("regulators-0"); - assertThat(attr2.get("value").toString()).isEqualTo( + List organisationAttributes = (List)orgResponse.get("orgAttributes"); + assertThat(organisationAttributes).isNotNull(); + LinkedHashMap attr = (LinkedHashMap)organisationAttributes.get(0); + assertThat(attr).isNotNull(); + assertThat(attr.get("key")).isEqualTo("regulators-0"); + assertThat(attr.get("value").toString()).isEqualTo( "{\"regulatorType\":\"Solicitor Regulation Authority " + "(SRA)\",\"organisationRegistrationNumber\":\"" + sraId + "\"}"); diff --git a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java index 82d0585359..899ca18017 100644 --- a/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java +++ b/src/integrationTest/java/uk/gov/hmcts/reform/professionalapi/UpdateOrgSraIntegrationTest.java @@ -66,7 +66,7 @@ void update_Sra_of_an_active_organisation_should_return_partial_success_if_any_f verifyRetrievedOrg(orgId1,sraId1); //verify error response - ArrayList responseList = (ArrayList)responses.get("sarIds"); + ArrayList responseList = (ArrayList)responses.get("sraIds"); LinkedHashMap result = (LinkedHashMap)responseList.get(0); assertThat(result.get("organisationId")).isEqualTo(orgId1); assertThat(result.get("status")).isEqualTo("success"); @@ -103,7 +103,7 @@ void update_Sra_missing_in_all_requests_should_return_failure() { assertThat(responses.get("status")).isEqualTo("failure"); - ArrayList responseList = (ArrayList)responses.get("sarIds"); + ArrayList responseList = (ArrayList)responses.get("sraIds"); LinkedHashMap firstResult = (LinkedHashMap)responseList.get(0); LinkedHashMap secondResult = (LinkedHashMap)responseList.get(1); assertThat(secondResult.get("organisationId")).isEqualTo(orgId2); @@ -134,7 +134,7 @@ void orgId_missing_in_all_requests_should_return_failure() { assertThat(responses.get("status")).isEqualTo("failure"); - ArrayList responseList = (ArrayList)responses.get("sarIds"); + ArrayList responseList = (ArrayList)responses.get("sraIds"); LinkedHashMap firstResult = (LinkedHashMap)responseList.get(0); LinkedHashMap secondResult = (LinkedHashMap)responseList.get(1); assertThat(secondResult.get("organisationId")).isEqualTo(""); @@ -171,7 +171,7 @@ void update_Sra_with_exception_during_save_returns_500_partial_success() { assertThat(responses.get("status")).isEqualTo("partial_success"); - ArrayList responseList = (ArrayList)responses.get("sarIds"); + ArrayList responseList = (ArrayList)responses.get("sraIds"); LinkedHashMap result = (LinkedHashMap)responseList.get(0); assertThat(result.get("organisationId")).isEqualTo(orgId1); assertThat(result.get("status")).isEqualTo("failure"); diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationSraUpdateRequest.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationSraUpdateRequest.java index 4b9e852cf0..985f1ed952 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationSraUpdateRequest.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/request/OrganisationSraUpdateRequest.java @@ -15,7 +15,7 @@ public class OrganisationSraUpdateRequest { - @JsonProperty(value = "sarIds") + @JsonProperty(value = "sraIds") private List organisationSraUpdateDataList; public OrganisationSraUpdateRequest() { diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/response/UpdateSraResponse.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/response/UpdateSraResponse.java index 11fed1411a..1423bb93e3 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/response/UpdateSraResponse.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/response/UpdateSraResponse.java @@ -24,7 +24,7 @@ public class UpdateSraResponse { private String message; @JsonInclude(NON_NULL) - @JsonProperty(value = "sarIds") + @JsonProperty(value = "sraIds") private List updateOrgSraResponse; } \ No newline at end of file From 0c875e30f593f92dd2be573ae14939e823d42dfb Mon Sep 17 00:00:00 2001 From: SabinaHMCTS <139119493+SabinaHMCTS@users.noreply.github.com> Date: Mon, 23 Sep 2024 16:16:13 +0100 Subject: [PATCH 64/64] Update OrganisationInternalControllerV2.java --- .../controller/internal/OrganisationInternalControllerV2.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2.java b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2.java index 46acecc7db..2bad3e8563 100644 --- a/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2.java +++ b/src/main/java/uk/gov/hmcts/reform/professionalapi/controller/internal/OrganisationInternalControllerV2.java @@ -251,7 +251,7 @@ public ResponseEntity updatesOrganisation( @Operation( - summary = "Updates an Organisation's name", + summary = "Updates an Organisation's sraId", description = "**IDAM Roles to access API** :
prd-admin", security = { @SecurityRequirement(name = "ServiceAuthorization"), @@ -260,7 +260,7 @@ public ResponseEntity updatesOrganisation( @ApiResponse( responseCode = "200", - description = "Organisation name has been updated", + description = "Organisation sraId has been updated", content = @Content(schema = @Schema(implementation = String.class)) ) @ApiResponse(