From 01b4a39db7adc244a78eeef66cd6a26431558d15 Mon Sep 17 00:00:00 2001 From: nttdata-rtorsoli <riccardo.torsoli@emeal.nttdata.com> Date: Fri, 24 Nov 2023 14:25:00 +0100 Subject: [PATCH] PIN-4084 Resolved PR issue --- project/Versions.scala | 2 +- src/main/resources/interface-specification.yml | 11 ++++++++++- .../api/impl/TenantApiMarshallerImpl.scala | 2 ++ .../api/impl/TenantApiServiceImpl.scala | 12 ++++++------ .../interop/tenantprocess/api/impl/package.scala | 9 +++++---- .../tenantprocess/provider/TenantCreationSpec.scala | 5 ----- 6 files changed, 24 insertions(+), 17 deletions(-) diff --git a/project/Versions.scala b/project/Versions.scala index 1360ccc..f4a42b0 100644 --- a/project/Versions.scala +++ b/project/Versions.scala @@ -23,6 +23,6 @@ object PagopaVersions { lazy val agreementProcessVersion = "1.0.x-SNAPSHOT" lazy val agreementManagementVersion = "1.0.x-SNAPSHOT" lazy val catalogManagementVersion = "1.0.x-SNAPSHOT" - lazy val tenantManagementVersion = "1.0.x-SNAPSHOT" + lazy val tenantManagementVersion = "PIN-4083-SNAPSHOT"//"1.0.x-SNAPSHOT" lazy val commonsVersion = "1.0.x-SNAPSHOT" } diff --git a/src/main/resources/interface-specification.yml b/src/main/resources/interface-specification.yml index f9424c3..7d202ab 100644 --- a/src/main/resources/interface-specification.yml +++ b/src/main/resources/interface-specification.yml @@ -221,7 +221,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Tenant' + $ref: '#/components/schemas/CompactTenant' '409': description: Selfcare Id is already assigned and is different from the request content: @@ -817,6 +817,15 @@ components: maxLength: 64 required: - code + CompactTenant: + description: Tenant Compact model + type: object + properties: + id: + type: string + format: uuid + required: + - id Tenant: description: Tenant model type: object diff --git a/src/main/scala/it/pagopa/interop/tenantprocess/api/impl/TenantApiMarshallerImpl.scala b/src/main/scala/it/pagopa/interop/tenantprocess/api/impl/TenantApiMarshallerImpl.scala index 9082004..5bf0c20 100644 --- a/src/main/scala/it/pagopa/interop/tenantprocess/api/impl/TenantApiMarshallerImpl.scala +++ b/src/main/scala/it/pagopa/interop/tenantprocess/api/impl/TenantApiMarshallerImpl.scala @@ -39,4 +39,6 @@ object TenantApiMarshallerImpl extends TenantApiMarshaller with SprayJsonSupport override implicit def fromEntityUnmarshallerMailSeed: FromEntityUnmarshaller[MailSeed] = sprayJsonUnmarshaller[MailSeed] + override implicit def toEntityMarshallerCompactTenant: ToEntityMarshaller[CompactTenant] = + sprayJsonMarshaller[CompactTenant] } diff --git a/src/main/scala/it/pagopa/interop/tenantprocess/api/impl/TenantApiServiceImpl.scala b/src/main/scala/it/pagopa/interop/tenantprocess/api/impl/TenantApiServiceImpl.scala index dee7ac7..3be7dc5 100644 --- a/src/main/scala/it/pagopa/interop/tenantprocess/api/impl/TenantApiServiceImpl.scala +++ b/src/main/scala/it/pagopa/interop/tenantprocess/api/impl/TenantApiServiceImpl.scala @@ -38,6 +38,7 @@ import it.pagopa.interop.tenantprocess.api.adapters.TenantManagementAdapters._ import it.pagopa.interop.tenantprocess.error.ResponseHandlers._ import it.pagopa.interop.tenantprocess.error.TenantProcessErrors._ import it.pagopa.interop.tenantprocess.model._ +import it.pagopa.interop.tenantprocess.model.{CompactTenant => TenantUUID} import it.pagopa.interop.tenantprocess.service._ import it.pagopa.interop.tenantmanagement.model.tenant.PersistentExternalId @@ -207,8 +208,8 @@ final case class TenantApiServiceImpl( override def selfcareUpsertTenant(seed: SelfcareTenantSeed)(implicit contexts: Seq[(String, String)], - toEntityMarshallerProblem: ToEntityMarshaller[Problem], - toEntityMarshallerTenant: ToEntityMarshaller[Tenant] + toEntityMarshallerTenant: ToEntityMarshaller[TenantUUID], + toEntityMarshallerProblem: ToEntityMarshaller[Problem] ): Route = authorize(ADMIN_ROLE, API_ROLE, SECURITY_ROLE, INTERNAL_ROLE) { val operationLabel = s"Creating tenant with external id ${seed.externalId} via SelfCare request" logger.info(operationLabel) @@ -229,7 +230,7 @@ final case class TenantApiServiceImpl( tenant.selfcareId.fold(updateTenant())(verifyConflict) } - val result: Future[Tenant] = for { + val result: Future[TenantUUID] = for { existingTenant <- findTenant(seed.externalId) _ <- existingTenant.traverse(t => assertResourceAllowed(t.id)) tenant <- existingTenant @@ -237,11 +238,10 @@ final case class TenantApiServiceImpl( tenantKind <- getTenantKindLoadingCertifiedAttributes(tenant.attributes, tenant.externalId) _ <- updateSelfcareId(tenant, tenantKind) _ <- tenantManagementService.addTenantMail(tenant.id, seed.digitalAddress.toDependency) - tenant <- tenantManagementService.getTenantById(tenant.id) - } yield tenant.toApi + } yield TenantUUID(tenant.id) onComplete(result) { - selfcareUpsertTenantResponse[Tenant](operationLabel)(selfcareUpsertTenant200) + selfcareUpsertTenantResponse[TenantUUID](operationLabel)(selfcareUpsertTenant200) } } diff --git a/src/main/scala/it/pagopa/interop/tenantprocess/api/impl/package.scala b/src/main/scala/it/pagopa/interop/tenantprocess/api/impl/package.scala index 404c024..affad54 100644 --- a/src/main/scala/it/pagopa/interop/tenantprocess/api/impl/package.scala +++ b/src/main/scala/it/pagopa/interop/tenantprocess/api/impl/package.scala @@ -42,10 +42,11 @@ package object impl extends SprayJsonSupport with DefaultJsonProtocol { implicit def tenantVerifierFormat: RootJsonFormat[TenantVerifier] = jsonFormat4(TenantVerifier) implicit def tenantRevokerFormat: RootJsonFormat[TenantRevoker] = jsonFormat5(TenantRevoker) - implicit def tenantFormat: RootJsonFormat[Tenant] = jsonFormat12(Tenant) - implicit def tenantsFormat: RootJsonFormat[Tenants] = jsonFormat2(Tenants) - implicit def problemErrorFormat: RootJsonFormat[ProblemError] = jsonFormat2(ProblemError) - implicit def problemFormat: RootJsonFormat[Problem] = jsonFormat6(Problem) + implicit def compactTenantFormat: RootJsonFormat[CompactTenant] = jsonFormat2(CompactTenant) + implicit def tenantFormat: RootJsonFormat[Tenant] = jsonFormat12(Tenant) + implicit def tenantsFormat: RootJsonFormat[Tenants] = jsonFormat2(Tenants) + implicit def problemErrorFormat: RootJsonFormat[ProblemError] = jsonFormat2(ProblemError) + implicit def problemFormat: RootJsonFormat[Problem] = jsonFormat6(Problem) final val entityMarshallerProblem: ToEntityMarshaller[Problem] = sprayJsonMarshaller[Problem] diff --git a/src/test/scala/it/pagopa/interop/tenantprocess/provider/TenantCreationSpec.scala b/src/test/scala/it/pagopa/interop/tenantprocess/provider/TenantCreationSpec.scala index ff61e65..a9b624d 100644 --- a/src/test/scala/it/pagopa/interop/tenantprocess/provider/TenantCreationSpec.scala +++ b/src/test/scala/it/pagopa/interop/tenantprocess/provider/TenantCreationSpec.scala @@ -913,7 +913,6 @@ class TenantCreationSpec extends AnyWordSpecLike with SpecHelper with ScalatestR mockCreateTenant(expectedTenantSeed, tenant) mockUpdateTenant(tenantId, expectedTenantUpdate) mockAddTenantMail(tenantId, dependencyMailSeed) - mockGetTenantById(tenantId, persistentTenant) Get() ~> tenantService.selfcareUpsertTenant(seed) ~> check { assert(status == StatusCodes.OK) @@ -948,7 +947,6 @@ class TenantCreationSpec extends AnyWordSpecLike with SpecHelper with ScalatestR mockCreateTenant(expectedTenantSeed, tenant) mockUpdateTenant(tenantId, expectedTenantUpdate) mockAddTenantMail(tenantId, dependencyMailSeed) - mockGetTenantById(tenantId, persistentTenant) Get() ~> tenantService.selfcareUpsertTenant(seed) ~> check { assert(status == StatusCodes.OK) @@ -978,7 +976,6 @@ class TenantCreationSpec extends AnyWordSpecLike with SpecHelper with ScalatestR mockGetTenantByExternalId(PersistentExternalId(seed.externalId.origin, seed.externalId.value), tenant) mockUpdateTenant(tenantId, expectedTenantUpdate) mockAddTenantMail(tenantId, dependencyMailSeed) - mockGetTenantById(tenantId, persistentTenant) Get() ~> tenantService.selfcareUpsertTenant(seed) ~> check { assert(status == StatusCodes.OK) @@ -1002,7 +999,6 @@ class TenantCreationSpec extends AnyWordSpecLike with SpecHelper with ScalatestR mockGetTenantByExternalId(PersistentExternalId(seed.externalId.origin, seed.externalId.value), tenant) mockAddTenantMail(tenantId, dependencyMailSeed) - mockGetTenantById(tenantId, tenant) Get() ~> tenantService.selfcareUpsertTenant(seed) ~> check { assert(status == StatusCodes.OK) @@ -1076,7 +1072,6 @@ class TenantCreationSpec extends AnyWordSpecLike with SpecHelper with ScalatestR mockGetTenantByExternalId(PersistentExternalId(seed.externalId.origin, seed.externalId.value), tenant) mockUpdateTenant(tenantId, expectedTenantUpdate) mockAddTenantMail(tenantId, dependencyMailSeed) - mockGetTenantById(tenantId, tenant) Get() ~> tenantService.selfcareUpsertTenant(seed) ~> check { assert(status == StatusCodes.OK)