diff --git a/app/src/main/resources/swagger/api-docs.json b/app/src/main/resources/swagger/api-docs.json index f72da11e9..1619773c0 100644 --- a/app/src/main/resources/swagger/api-docs.json +++ b/app/src/main/resources/swagger/api-docs.json @@ -764,47 +764,6 @@ "summary" : "getInstitutions", "description" : "Service to get all the institutions related to logged user", "operationId" : "v2RetrieveUserInstitutions", - "parameters" : [ { - "name" : "authenticated", - "in" : "query", - "required" : false, - "style" : "form", - "schema" : { - "type" : "boolean" - } - }, { - "name" : "authorities[0].authority", - "in" : "query", - "required" : false, - "style" : "form", - "schema" : { - "type" : "string" - } - }, { - "name" : "credentials", - "in" : "query", - "required" : false, - "style" : "form", - "schema" : { - "type" : "object" - } - }, { - "name" : "details", - "in" : "query", - "required" : false, - "style" : "form", - "schema" : { - "type" : "object" - } - }, { - "name" : "principal", - "in" : "query", - "required" : false, - "style" : "form", - "schema" : { - "type" : "object" - } - } ], "responses" : { "200" : { "description" : "OK", @@ -1318,38 +1277,6 @@ "description" : "Service to get the users with the given user id related to a specific institution", "operationId" : "v2RetrieveInstitutionUser", "parameters" : [ { - "name" : "authenticated", - "in" : "query", - "required" : false, - "style" : "form", - "schema" : { - "type" : "boolean" - } - }, { - "name" : "authorities[0].authority", - "in" : "query", - "required" : false, - "style" : "form", - "schema" : { - "type" : "string" - } - }, { - "name" : "credentials", - "in" : "query", - "required" : false, - "style" : "form", - "schema" : { - "type" : "object" - } - }, { - "name" : "details", - "in" : "query", - "required" : false, - "style" : "form", - "schema" : { - "type" : "object" - } - }, { "name" : "institutionId", "in" : "path", "description" : "Institution's unique internal identifier", @@ -1358,14 +1285,6 @@ "schema" : { "type" : "string" } - }, { - "name" : "principal", - "in" : "query", - "required" : false, - "style" : "form", - "schema" : { - "type" : "object" - } }, { "name" : "userId", "in" : "path", @@ -1455,8 +1374,7 @@ "required" : true, "style" : "simple", "schema" : { - "type" : "string", - "enum" : [ "AS", "CON", "GSP", "PA", "PG", "PSP", "PT", "REC", "SA", "SCP" ] + "type" : "string" } } ], "responses" : { @@ -1702,47 +1620,6 @@ "summary" : "sendSupportRequest", "description" : "Service to retrieve Support contact's form", "operationId" : "sendSupportRequestUsingPOST", - "parameters" : [ { - "name" : "authenticated", - "in" : "query", - "required" : false, - "style" : "form", - "schema" : { - "type" : "boolean" - } - }, { - "name" : "authorities[0].authority", - "in" : "query", - "required" : false, - "style" : "form", - "schema" : { - "type" : "string" - } - }, { - "name" : "credentials", - "in" : "query", - "required" : false, - "style" : "form", - "schema" : { - "type" : "object" - } - }, { - "name" : "details", - "in" : "query", - "required" : false, - "style" : "form", - "schema" : { - "type" : "object" - } - }, { - "name" : "principal", - "in" : "query", - "required" : false, - "style" : "form", - "schema" : { - "type" : "object" - } - } ], "requestBody" : { "content" : { "application/json" : { @@ -1897,38 +1774,6 @@ "description" : "Service to create a 'Billing Token' based on a Self Care session token", "operationId" : "billingTokenUsingGET", "parameters" : [ { - "name" : "authenticated", - "in" : "query", - "required" : false, - "style" : "form", - "schema" : { - "type" : "boolean" - } - }, { - "name" : "authorities[0].authority", - "in" : "query", - "required" : false, - "style" : "form", - "schema" : { - "type" : "string" - } - }, { - "name" : "credentials", - "in" : "query", - "required" : false, - "style" : "form", - "schema" : { - "type" : "string" - } - }, { - "name" : "details", - "in" : "query", - "required" : false, - "style" : "form", - "schema" : { - "type" : "object" - } - }, { "name" : "institutionId", "in" : "query", "description" : "Institution's unique internal identifier", @@ -1937,22 +1782,6 @@ "schema" : { "type" : "string" } - }, { - "name" : "name", - "in" : "query", - "required" : false, - "style" : "form", - "schema" : { - "type" : "string" - } - }, { - "name" : "principal", - "in" : "query", - "required" : false, - "style" : "form", - "schema" : { - "type" : "object" - } }, { "name" : "environment", "in" : "query", @@ -2675,38 +2504,6 @@ "description" : "Service to get all the users related to a specific institution", "operationId" : "v2GetUsersUsingGET", "parameters" : [ { - "name" : "authenticated", - "in" : "query", - "required" : false, - "style" : "form", - "schema" : { - "type" : "boolean" - } - }, { - "name" : "authorities[0].authority", - "in" : "query", - "required" : false, - "style" : "form", - "schema" : { - "type" : "string" - } - }, { - "name" : "credentials", - "in" : "query", - "required" : false, - "style" : "form", - "schema" : { - "type" : "object" - } - }, { - "name" : "details", - "in" : "query", - "required" : false, - "style" : "form", - "schema" : { - "type" : "object" - } - }, { "name" : "institutionId", "in" : "path", "description" : "Institution's unique internal identifier", @@ -2715,14 +2512,6 @@ "schema" : { "type" : "string" } - }, { - "name" : "principal", - "in" : "query", - "required" : false, - "style" : "form", - "schema" : { - "type" : "object" - } }, { "name" : "productId", "in" : "query", @@ -3565,8 +3354,7 @@ "type" : "string" }, "institutionType" : { - "type" : "string", - "enum" : [ "AS", "CON", "GSP", "PA", "PG", "PSP", "PT", "REC", "SA", "SCP" ] + "type" : "string" }, "productId" : { "type" : "string" @@ -3724,8 +3512,7 @@ "type" : "string" }, "institutionType" : { - "type" : "string", - "enum" : [ "AS", "CON", "GSP", "PA", "PG", "PSP", "PT", "REC", "SA", "SCP" ] + "type" : "string" }, "onboarding" : { "type" : "array", @@ -3842,8 +3629,7 @@ }, "institutionType" : { "type" : "string", - "description" : "Institution's type", - "enum" : [ "AS", "CON", "GSP", "PA", "PG", "PSP", "PT", "REC", "SA", "SCP" ] + "description" : "Institution's type" }, "mailAddress" : { "type" : "string", diff --git a/connector-api/pom.xml b/connector-api/pom.xml index 23bab15b4..eb1dcc778 100644 --- a/connector-api/pom.xml +++ b/connector-api/pom.xml @@ -23,13 +23,9 @@ it.pagopa.selfcare onboarding-sdk-product - 0.2.0 + 0.2.1 compile - - org.springframework.data - spring-data-commons - diff --git a/connector-api/src/main/java/it/pagopa/selfcare/dashboard/connector/model/delegation/DelegationWithInfo.java b/connector-api/src/main/java/it/pagopa/selfcare/dashboard/connector/model/delegation/DelegationWithInfo.java index 9edc8dbee..38bbb252e 100644 --- a/connector-api/src/main/java/it/pagopa/selfcare/dashboard/connector/model/delegation/DelegationWithInfo.java +++ b/connector-api/src/main/java/it/pagopa/selfcare/dashboard/connector/model/delegation/DelegationWithInfo.java @@ -1,6 +1,6 @@ package it.pagopa.selfcare.dashboard.connector.model.delegation; -import it.pagopa.selfcare.commons.base.utils.InstitutionType; +import it.pagopa.selfcare.onboarding.common.InstitutionType; import lombok.Data; import java.time.OffsetDateTime; @@ -19,7 +19,7 @@ public class DelegationWithInfo { private DelegationType type; private OffsetDateTime createdAt; private OffsetDateTime updatedAt; - private InstitutionType institutionType; + private String institutionType; private String status; private String taxCode; } diff --git a/connector-api/src/main/java/it/pagopa/selfcare/dashboard/connector/model/institution/Institution.java b/connector-api/src/main/java/it/pagopa/selfcare/dashboard/connector/model/institution/Institution.java index cb03adc66..bda327e33 100644 --- a/connector-api/src/main/java/it/pagopa/selfcare/dashboard/connector/model/institution/Institution.java +++ b/connector-api/src/main/java/it/pagopa/selfcare/dashboard/connector/model/institution/Institution.java @@ -1,6 +1,6 @@ package it.pagopa.selfcare.dashboard.connector.model.institution; -import it.pagopa.selfcare.commons.base.utils.InstitutionType; +import it.pagopa.selfcare.onboarding.common.InstitutionType; import lombok.Data; import lombok.EqualsAndHashCode; @@ -19,7 +19,7 @@ public class Institution { private String zipCode; private String taxCode; private String origin; - private InstitutionType institutionType; + private String institutionType; private List attributes; private List geographicTaxonomies; private String category; diff --git a/connector-api/src/main/java/it/pagopa/selfcare/dashboard/connector/model/institution/InstitutionInfo.java b/connector-api/src/main/java/it/pagopa/selfcare/dashboard/connector/model/institution/InstitutionInfo.java index 139203828..235d897df 100644 --- a/connector-api/src/main/java/it/pagopa/selfcare/dashboard/connector/model/institution/InstitutionInfo.java +++ b/connector-api/src/main/java/it/pagopa/selfcare/dashboard/connector/model/institution/InstitutionInfo.java @@ -1,6 +1,6 @@ package it.pagopa.selfcare.dashboard.connector.model.institution; -import it.pagopa.selfcare.commons.base.utils.InstitutionType; +import it.pagopa.selfcare.onboarding.common.InstitutionType; import lombok.Data; import java.util.List; diff --git a/connector/rest/src/main/java/it/pagopa/selfcare/dashboard/connector/rest/model/InstitutionUpdate.java b/connector/rest/src/main/java/it/pagopa/selfcare/dashboard/connector/rest/model/InstitutionUpdate.java index bb29ae125..46d4153e9 100644 --- a/connector/rest/src/main/java/it/pagopa/selfcare/dashboard/connector/rest/model/InstitutionUpdate.java +++ b/connector/rest/src/main/java/it/pagopa/selfcare/dashboard/connector/rest/model/InstitutionUpdate.java @@ -1,6 +1,6 @@ package it.pagopa.selfcare.dashboard.connector.rest.model; -import it.pagopa.selfcare.commons.base.utils.InstitutionType; +import it.pagopa.selfcare.onboarding.common.InstitutionType; import it.pagopa.selfcare.dashboard.connector.model.institution.AdditionalInformations; import it.pagopa.selfcare.dashboard.connector.model.institution.DataProtectionOfficer; import it.pagopa.selfcare.dashboard.connector.model.institution.PaymentServiceProvider; diff --git a/connector/rest/src/main/java/it/pagopa/selfcare/dashboard/connector/rest/model/mapper/InstitutionMapper.java b/connector/rest/src/main/java/it/pagopa/selfcare/dashboard/connector/rest/model/mapper/InstitutionMapper.java index 35a38911b..49aab454d 100644 --- a/connector/rest/src/main/java/it/pagopa/selfcare/dashboard/connector/rest/model/mapper/InstitutionMapper.java +++ b/connector/rest/src/main/java/it/pagopa/selfcare/dashboard/connector/rest/model/mapper/InstitutionMapper.java @@ -1,6 +1,6 @@ package it.pagopa.selfcare.dashboard.connector.rest.model.mapper; -import it.pagopa.selfcare.commons.base.utils.InstitutionType; +import it.pagopa.selfcare.onboarding.common.InstitutionType; import it.pagopa.selfcare.core.generated.openapi.v1.dto.*; import it.pagopa.selfcare.dashboard.connector.model.institution.Billing; import it.pagopa.selfcare.dashboard.connector.model.institution.*; diff --git a/connector/rest/src/main/java/it/pagopa/selfcare/dashboard/connector/rest/model/onboarding/OnboardingData.java b/connector/rest/src/main/java/it/pagopa/selfcare/dashboard/connector/rest/model/onboarding/OnboardingData.java index 8cf4a5321..11c0914db 100644 --- a/connector/rest/src/main/java/it/pagopa/selfcare/dashboard/connector/rest/model/onboarding/OnboardingData.java +++ b/connector/rest/src/main/java/it/pagopa/selfcare/dashboard/connector/rest/model/onboarding/OnboardingData.java @@ -1,7 +1,7 @@ package it.pagopa.selfcare.dashboard.connector.rest.model.onboarding; import it.pagopa.selfcare.commons.base.security.PartyRole; -import it.pagopa.selfcare.commons.base.utils.InstitutionType; +import it.pagopa.selfcare.onboarding.common.InstitutionType; import it.pagopa.selfcare.dashboard.connector.model.institution.*; import it.pagopa.selfcare.dashboard.connector.rest.model.product.ProductInfo; import lombok.Data; diff --git a/connector/rest/src/main/java/it/pagopa/selfcare/dashboard/connector/rest/model/onboarding/OnboardingPnPGData.java b/connector/rest/src/main/java/it/pagopa/selfcare/dashboard/connector/rest/model/onboarding/OnboardingPnPGData.java index 75943737d..2412a575e 100644 --- a/connector/rest/src/main/java/it/pagopa/selfcare/dashboard/connector/rest/model/onboarding/OnboardingPnPGData.java +++ b/connector/rest/src/main/java/it/pagopa/selfcare/dashboard/connector/rest/model/onboarding/OnboardingPnPGData.java @@ -1,7 +1,7 @@ package it.pagopa.selfcare.dashboard.connector.rest.model.onboarding; import it.pagopa.selfcare.commons.base.security.PartyRole; -import it.pagopa.selfcare.commons.base.utils.InstitutionType; +import it.pagopa.selfcare.onboarding.common.InstitutionType; import it.pagopa.selfcare.dashboard.connector.model.institution.*; import it.pagopa.selfcare.dashboard.connector.rest.model.product.PnPGProductInfo; import it.pagopa.selfcare.dashboard.connector.rest.model.product.ProductInfo; diff --git a/core/src/main/java/it/pagopa/selfcare/dashboard/core/BrokerServiceImpl.java b/core/src/main/java/it/pagopa/selfcare/dashboard/core/BrokerServiceImpl.java index 147808fa5..fb1d29ef9 100644 --- a/core/src/main/java/it/pagopa/selfcare/dashboard/core/BrokerServiceImpl.java +++ b/core/src/main/java/it/pagopa/selfcare/dashboard/core/BrokerServiceImpl.java @@ -8,7 +8,7 @@ import java.util.List; -import static it.pagopa.selfcare.commons.base.utils.InstitutionType.PSP; +import static it.pagopa.selfcare.onboarding.common.InstitutionType.PSP; @Slf4j diff --git a/core/src/main/java/it/pagopa/selfcare/dashboard/core/DelegationServiceImpl.java b/core/src/main/java/it/pagopa/selfcare/dashboard/core/DelegationServiceImpl.java index d698710e8..2efbe7742 100644 --- a/core/src/main/java/it/pagopa/selfcare/dashboard/core/DelegationServiceImpl.java +++ b/core/src/main/java/it/pagopa/selfcare/dashboard/core/DelegationServiceImpl.java @@ -1,7 +1,7 @@ package it.pagopa.selfcare.dashboard.core; import it.pagopa.selfcare.commons.base.logging.LogUtils; -import it.pagopa.selfcare.commons.base.utils.InstitutionType; +import it.pagopa.selfcare.onboarding.common.InstitutionType; import it.pagopa.selfcare.dashboard.connector.api.MsCoreConnector; import it.pagopa.selfcare.dashboard.connector.exception.ResourceNotFoundException; import it.pagopa.selfcare.dashboard.connector.model.delegation.*; @@ -49,7 +49,7 @@ public DelegationId createDelegation(DelegationRequest delegation) { private void setToInstitutionId(DelegationRequest delegation) { List institutions = msCoreConnector.getInstitutionsFromTaxCode(delegation.getTo(), null, null, null); Institution partner = institutions.stream() - .filter(institution -> institution.getInstitutionType() == InstitutionType.PT) + .filter(institution -> InstitutionType.PT.name().equals(institution.getInstitutionType())) .findFirst() .orElse(institutions.stream().findFirst() .orElseThrow(() -> new ResourceNotFoundException( diff --git a/web/pom.xml b/web/pom.xml index 0234ab6d0..5b1eb8fd8 100644 --- a/web/pom.xml +++ b/web/pom.xml @@ -47,7 +47,7 @@ it.pagopa.selfcare onboarding-sdk-product - 0.2.0 + 0.2.1 compile diff --git a/web/src/main/java/it/pagopa/selfcare/dashboard/web/config/SwaggerConfig.java b/web/src/main/java/it/pagopa/selfcare/dashboard/web/config/SwaggerConfig.java index 4e58bd84f..784743fa7 100644 --- a/web/src/main/java/it/pagopa/selfcare/dashboard/web/config/SwaggerConfig.java +++ b/web/src/main/java/it/pagopa/selfcare/dashboard/web/config/SwaggerConfig.java @@ -2,12 +2,14 @@ import com.fasterxml.classmate.TypeResolver; import it.pagopa.selfcare.commons.web.model.Problem; +import it.pagopa.selfcare.commons.web.security.JwtAuthenticationToken; import it.pagopa.selfcare.commons.web.swagger.BaseSwaggerConfig; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.*; import org.springframework.core.env.Environment; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpMethod; +import org.springframework.security.core.Authentication; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.AuthorizationScope; @@ -72,6 +74,8 @@ public Docket swaggerSpringPlugin(@Autowired TypeResolver typeResolver) { new Tag("onboarding", environment.getProperty("swagger.dashboard.onboarding.api.description"))) .directModelSubstitute(LocalTime.class, String.class) .ignoredParameterTypes(Pageable.class) + .ignoredParameterTypes(Authentication.class) + .ignoredParameterTypes(JwtAuthenticationToken.class) .forCodeGeneration(true) .useDefaultResponseMessages(false) .globalResponses(HttpMethod.GET, List.of(INTERNAL_SERVER_ERROR_RESPONSE, UNAUTHORIZED_RESPONSE, BAD_REQUEST_RESPONSE, NOT_FOUND_RESPONSE)) diff --git a/web/src/main/java/it/pagopa/selfcare/dashboard/web/controller/ProductController.java b/web/src/main/java/it/pagopa/selfcare/dashboard/web/controller/ProductController.java index c7e0acfce..0e1cebe0d 100644 --- a/web/src/main/java/it/pagopa/selfcare/dashboard/web/controller/ProductController.java +++ b/web/src/main/java/it/pagopa/selfcare/dashboard/web/controller/ProductController.java @@ -3,7 +3,8 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; -import it.pagopa.selfcare.commons.base.utils.InstitutionType; +import it.pagopa.selfcare.dashboard.connector.exception.BadGatewayException; +import it.pagopa.selfcare.onboarding.common.InstitutionType; import it.pagopa.selfcare.dashboard.connector.model.backoffice.BrokerInfo; import it.pagopa.selfcare.dashboard.core.BrokerService; @@ -65,15 +66,14 @@ public Collection getProductBrokers(@ApiParam("${swagger.dashboa String productId, @ApiParam("${swagger.dashboard.products.model.institutionType}") @PathVariable("institutionType") - InstitutionType institutionType) { + String institutionType) { log.trace("getProductBrokers start"); log.debug("productId = {}, institutionType = {}", productId, institutionType); - List brokers; - if(PAGO_PA_PRODUCT_ID.equals(productId)) { - brokers = brokerService.findAllByInstitutionType(institutionType.name()); - } else { - brokers = brokerService.findInstitutionsByProductAndType(productId, institutionType.name()); - } + + List brokers = PAGO_PA_PRODUCT_ID.equals(productId) + ? brokerService.findAllByInstitutionType(InstitutionType.valueOf(institutionType).name()) + : brokerService.findInstitutionsByProductAndType(productId, institutionType); + Collection result = brokerResourceMapper.toResourceList(brokers); log.debug("getProductBrokers result = {}", result); log.trace("getProductBrokers end"); diff --git a/web/src/main/java/it/pagopa/selfcare/dashboard/web/model/InstitutionResource.java b/web/src/main/java/it/pagopa/selfcare/dashboard/web/model/InstitutionResource.java index 551cfeaeb..33f9511b2 100644 --- a/web/src/main/java/it/pagopa/selfcare/dashboard/web/model/InstitutionResource.java +++ b/web/src/main/java/it/pagopa/selfcare/dashboard/web/model/InstitutionResource.java @@ -1,7 +1,7 @@ package it.pagopa.selfcare.dashboard.web.model; import io.swagger.annotations.ApiModelProperty; -import it.pagopa.selfcare.commons.base.utils.InstitutionType; +import it.pagopa.selfcare.onboarding.common.InstitutionType; import lombok.Data; import java.util.List; @@ -22,7 +22,7 @@ public class InstitutionResource { private String origin; @ApiModelProperty(value = "${swagger.dashboard.institutions.model.institutionType}") - private InstitutionType institutionType; + private String institutionType; @ApiModelProperty(value = "${swagger.dashboard.institutions.model.name}") private String name; diff --git a/web/src/main/java/it/pagopa/selfcare/dashboard/web/model/onboarding/OnboardingRequestResource.java b/web/src/main/java/it/pagopa/selfcare/dashboard/web/model/onboarding/OnboardingRequestResource.java index e75b50c73..53ea22e0e 100644 --- a/web/src/main/java/it/pagopa/selfcare/dashboard/web/model/onboarding/OnboardingRequestResource.java +++ b/web/src/main/java/it/pagopa/selfcare/dashboard/web/model/onboarding/OnboardingRequestResource.java @@ -2,7 +2,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.annotations.ApiModelProperty; -import it.pagopa.selfcare.commons.base.utils.InstitutionType; +import it.pagopa.selfcare.onboarding.common.InstitutionType; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/web/src/test/java/it/pagopa/selfcare/dashboard/web/controller/ProductControllerTest.java b/web/src/test/java/it/pagopa/selfcare/dashboard/web/controller/ProductControllerTest.java index 9d980bce6..a8183fcb7 100644 --- a/web/src/test/java/it/pagopa/selfcare/dashboard/web/controller/ProductControllerTest.java +++ b/web/src/test/java/it/pagopa/selfcare/dashboard/web/controller/ProductControllerTest.java @@ -147,19 +147,4 @@ void getProductBrokers() throws Exception { verifyNoMoreInteractions(brokerServiceMock); } - - @Test - void getProductBrokersForUnsupportedType() throws Exception { - String productId = "prod-pagopa"; - MvcResult result = mockMvc.perform(MockMvcRequestBuilders - .get(BASE_URL + "/{productId}/brokers/{institutionType}", productId, "TEST") - .contentType(APPLICATION_JSON_VALUE) - .accept(APPLICATION_JSON_VALUE)) - .andExpect(status().is4xxClientError()) - .andReturn(); - // then - assertEquals(400, result.getResponse().getStatus()); - Mockito.verifyNoInteractions(brokerServiceMock); - } - }