From e8bbdc4c98e0ab4cfdcf6299c55a0d9d17cc8969 Mon Sep 17 00:00:00 2001 From: manuraf Date: Tue, 8 Oct 2024 16:33:22 +0200 Subject: [PATCH] feat: getProductRoleMappings by institutionType --- app/src/main/resources/swagger/api-docs.json | 9 +++++++++ connector-api/pom.xml | 2 +- .../connector/rest/ProductConnectorImplTest.java | 10 ++++++---- .../selfcare/dashboard/core/ProductServiceImpl.java | 2 +- .../selfcare/dashboard/core/UserV2ServiceImpl.java | 6 ++++-- .../dashboard/core/ProductServiceImplTest.java | 9 +++++---- web/pom.xml | 2 +- 7 files changed, 27 insertions(+), 13 deletions(-) diff --git a/app/src/main/resources/swagger/api-docs.json b/app/src/main/resources/swagger/api-docs.json index 5da09826..a4e62abb 100644 --- a/app/src/main/resources/swagger/api-docs.json +++ b/app/src/main/resources/swagger/api-docs.json @@ -1444,6 +1444,15 @@ "schema" : { "type" : "string" } + }, { + "name" : "institutionType", + "in" : "query", + "description" : "Institution's type", + "required" : false, + "style" : "form", + "schema" : { + "type" : "string" + } } ], "responses" : { "200" : { diff --git a/connector-api/pom.xml b/connector-api/pom.xml index 99da7d7d..5bc77925 100644 --- a/connector-api/pom.xml +++ b/connector-api/pom.xml @@ -23,7 +23,7 @@ it.pagopa.selfcare onboarding-sdk-product - 0.3.0 + 0.3.2 compile diff --git a/connector/rest/src/test/java/it/pagopa/selfcare/dashboard/connector/rest/ProductConnectorImplTest.java b/connector/rest/src/test/java/it/pagopa/selfcare/dashboard/connector/rest/ProductConnectorImplTest.java index 7c97f0fc..bd19c3df 100644 --- a/connector/rest/src/test/java/it/pagopa/selfcare/dashboard/connector/rest/ProductConnectorImplTest.java +++ b/connector/rest/src/test/java/it/pagopa/selfcare/dashboard/connector/rest/ProductConnectorImplTest.java @@ -103,7 +103,7 @@ void GetProducts() throws IOException { @Test void getProductRoleMappingsWithoutProductId() { - Assertions.assertThrows(IllegalArgumentException.class, () -> productConnectorImpl.getProductRoleMappings(null)); + Assertions.assertThrows(IllegalArgumentException.class, () -> productConnectorImpl.getProductRoleMappings(null, null)); verify(productServiceMock, never()).getProduct(null); } @@ -111,8 +111,9 @@ void getProductRoleMappingsWithoutProductId() { void getProductRoleMappingsWithEmptyProduct() { String productId = "123"; + String institutionType = "type"; when(productServiceMock.getProduct(productId)).thenReturn(null); - Map result = productConnectorImpl.getProductRoleMappings(productId); + Map result = productConnectorImpl.getProductRoleMappings(productId, institutionType); assertNull(result); Mockito.verify(productServiceMock, times(1)).getProduct(productId); } @@ -121,6 +122,7 @@ void getProductRoleMappingsWithEmptyProduct() { void testGetProductRoleMappings() throws IOException { String productId = "123"; + String institutionType = "type"; ClassPathResource resource = new ClassPathResource("stubs/Product.json"); byte[] resourceStream = Files.readAllBytes(resource.getFile().toPath()); @@ -128,8 +130,8 @@ void testGetProductRoleMappings() throws IOException { }); when(productServiceMock.getProduct(productId)).thenReturn(product); - Map result = productConnectorImpl.getProductRoleMappings(productId); - Assertions.assertEquals(product.getRoleMappings(), result); + Map result = productConnectorImpl.getProductRoleMappings(productId, institutionType); + Assertions.assertEquals(product.getRoleMappings(institutionType), result); Mockito.verify(productServiceMock, times(1)).getProduct(productId); } diff --git a/core/src/main/java/it/pagopa/selfcare/dashboard/core/ProductServiceImpl.java b/core/src/main/java/it/pagopa/selfcare/dashboard/core/ProductServiceImpl.java index 841f094c..8f5e2cd4 100644 --- a/core/src/main/java/it/pagopa/selfcare/dashboard/core/ProductServiceImpl.java +++ b/core/src/main/java/it/pagopa/selfcare/dashboard/core/ProductServiceImpl.java @@ -29,7 +29,7 @@ public Map getProductRoles(String productId, String log.debug("getProductRoles productId = {}, institutionType = {}", productId, institutionType); Assert.hasText(productId, "A Product id is required"); - Map productRoleMappings = productsConnector.getProductRoleMappings(productId); + Map productRoleMappings = productsConnector.getProductRoleMappings(productId, institutionType); log.debug("getProductRoles result = {}", productRoleMappings); log.trace("getProductRoles end"); return productRoleMappings; diff --git a/core/src/main/java/it/pagopa/selfcare/dashboard/core/UserV2ServiceImpl.java b/core/src/main/java/it/pagopa/selfcare/dashboard/core/UserV2ServiceImpl.java index 10b88a3c..2837b950 100644 --- a/core/src/main/java/it/pagopa/selfcare/dashboard/core/UserV2ServiceImpl.java +++ b/core/src/main/java/it/pagopa/selfcare/dashboard/core/UserV2ServiceImpl.java @@ -178,9 +178,11 @@ private List retrieveRole(String productId, Set prod CreateUserDto.Role role = new CreateUserDto.Role(); role.setProductRole(productRole); - role.setLabel(ProductMapper.getLabel(productRole, product.getRoleMappings()).orElse(null)); - List partyRoles = ProductUtils.validRolesByProductRole(product, PHASE_ADDITION_ALLOWED.DASHBOARD, productRole); + //TODO https://pagopa.atlassian.net/browse/SELC-5706 for institutionType=null + role.setLabel(ProductMapper.getLabel(productRole, product.getRoleMappings(null)).orElse(null)); + + List partyRoles = ProductUtils.validRolesByProductRole(product, PHASE_ADDITION_ALLOWED.DASHBOARD, productRole, null); if(Objects.isNull(partyRoles) || partyRoles.isEmpty()){ throw new InvalidProductRoleException(String.format("Product role '%s' is not valid", productRole)); } diff --git a/core/src/test/java/it/pagopa/selfcare/dashboard/core/ProductServiceImplTest.java b/core/src/test/java/it/pagopa/selfcare/dashboard/core/ProductServiceImplTest.java index 908bb292..711a730c 100644 --- a/core/src/test/java/it/pagopa/selfcare/dashboard/core/ProductServiceImplTest.java +++ b/core/src/test/java/it/pagopa/selfcare/dashboard/core/ProductServiceImplTest.java @@ -34,21 +34,22 @@ public void setUp() { void getProductRoles() { String productId = "productId"; + String institutionType = "type"; Map productRoleMappingsMock = new HashMap<>(); ProductRoleInfo productRoleInfo = new ProductRoleInfo(); productRoleMappingsMock.put(PartyRole.MANAGER, productRoleInfo); - when(productsConnectorMock.getProductRoleMappings(productId)).thenReturn(productRoleMappingsMock); + when(productsConnectorMock.getProductRoleMappings(productId, institutionType)).thenReturn(productRoleMappingsMock); - Map result = productService.getProductRoles(productId); + Map result = productService.getProductRoles(productId, institutionType); Assertions.assertEquals(productRoleMappingsMock, result); - Mockito.verify(productsConnectorMock, Mockito.times(1)).getProductRoleMappings(productId); + Mockito.verify(productsConnectorMock, Mockito.times(1)).getProductRoleMappings(productId, institutionType); } @Test void getProductRolesWithoutProductId() { - Assertions.assertThrows(IllegalArgumentException.class, () -> productService.getProductRoles(null)); + Assertions.assertThrows(IllegalArgumentException.class, () -> productService.getProductRoles(null, null)); Mockito.verifyNoInteractions(productsConnectorMock); } diff --git a/web/pom.xml b/web/pom.xml index 44ae232f..c6eee0ef 100644 --- a/web/pom.xml +++ b/web/pom.xml @@ -42,7 +42,7 @@ it.pagopa.selfcare onboarding-sdk-product - 0.3.0 + 0.3.2 compile