From d36df0c44926c867e59957de36da613b2537b6a0 Mon Sep 17 00:00:00 2001 From: Riccardo Torsoli <122275960+nttdata-rtorsoli@users.noreply.github.com> Date: Thu, 30 May 2024 15:53:53 +0200 Subject: [PATCH] PIN-4903 BKE - Error during selfcare information retrieve at the creation of agreement contract (#263) Co-authored-by: nttdata-rtorsoli --- .../service/AgreementContractCreator.scala | 28 +++++++++++++------ 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/src/main/scala/it/pagopa/interop/agreementprocess/service/AgreementContractCreator.scala b/src/main/scala/it/pagopa/interop/agreementprocess/service/AgreementContractCreator.scala index 62f24471..5a139983 100644 --- a/src/main/scala/it/pagopa/interop/agreementprocess/service/AgreementContractCreator.scala +++ b/src/main/scala/it/pagopa/interop/agreementprocess/service/AgreementContractCreator.scala @@ -4,7 +4,11 @@ import akka.http.scaladsl.model.MediaTypes import it.pagopa.interop.agreementprocess.common.Adapters._ import it.pagopa.interop.agreementmanagement.client.model.{DocumentSeed, UpdateAgreementSeed} import it.pagopa.interop.agreementprocess.common.system.ApplicationConfiguration -import it.pagopa.interop.agreementprocess.error.AgreementProcessErrors.{MissingUserInfo, StampNotFound} +import it.pagopa.interop.agreementprocess.error.AgreementProcessErrors.{ + MissingUserInfo, + StampNotFound, + SelfcareIdNotFound +} import it.pagopa.interop.agreementprocess.service.util.PDFPayload import it.pagopa.interop.commons.cqrs.service.ReadModelService import it.pagopa.interop.commons.files.service.FileManager @@ -119,14 +123,20 @@ final class AgreementContractCreator( } - def getSubmissionInfo( - seed: UpdateAgreementSeed - )(implicit contexts: Seq[(String, String)], ec: ExecutionContext): Future[(String, OffsetDateTime)] = + def getSubmissionInfo(seed: UpdateAgreementSeed, consumer: PersistentTenant)(implicit + contexts: Seq[(String, String)], + ec: ExecutionContext + ): Future[(String, OffsetDateTime)] = for { - selfcareUuidd <- getSelfcareIdFutureUUID(contexts) - submission <- seed.stamps.submission.toFuture(StampNotFound("submission")) - userResponse <- selfcareV2ClientService.getUserById(selfcareUuidd, submission.who).map(_.toApi) - userResponseApi <- userResponse.toFuture.recoverWith { case _ => Future.failed(MissingUserInfo(submission.who)) } + submission <- seed.stamps.submission.toFuture(StampNotFound("submission")) + consumerSelfcareId <- consumer.selfcareId.toFuture(SelfcareIdNotFound(consumer.id)) + consumerSelfcareUuid <- consumerSelfcareId.toFutureUUID + userResponse <- selfcareV2ClientService + .getUserById(consumerSelfcareUuid, submission.who) + .map(_.toApi) + userResponseApi <- userResponse.toFuture.recoverWith { case _ => + Future.failed(MissingUserInfo(consumer.id)) + } submitter = getUserText(userResponseApi) } yield (submitter, submission.when) @@ -152,7 +162,7 @@ final class AgreementContractCreator( )(implicit contexts: Seq[(String, String)], ec: ExecutionContext): Future[PDFPayload] = { for { (certified, declared, verified) <- getAttributeInvolved(consumer, seed) - (submitter, submissionTimestamp) <- getSubmissionInfo(seed) + (submitter, submissionTimestamp) <- getSubmissionInfo(seed, consumer) (activator, activationTimestamp) <- getActivationInfo(seed) } yield PDFPayload( today = offsetDateTimeSupplier.get(),