diff --git a/obp-api/pom.xml b/obp-api/pom.xml index e8e167401..9dd2f2323 100644 --- a/obp-api/pom.xml +++ b/obp-api/pom.xml @@ -8,7 +8,7 @@ com.tesobe obp-parent ../pom.xml - 1.6.2 + 1.6.3 obp-api war diff --git a/obp-api/src/main/scala/code/api/v4_0_0/APIMethods400.scala b/obp-api/src/main/scala/code/api/v4_0_0/APIMethods400.scala index ab82ef11e..481aae679 100644 --- a/obp-api/src/main/scala/code/api/v4_0_0/APIMethods400.scala +++ b/obp-api/src/main/scala/code/api/v4_0_0/APIMethods400.scala @@ -37,7 +37,7 @@ import code.metadata.tags.Tags import code.model.dataAccess.{AuthUser, BankAccountCreation} import code.model.{toUserExtended, _} import code.transactionChallenge.MappedExpectedChallengeAnswer -import code.transactionrequests.{MappedTransactionRequestProvider, TransactionRequestReasons} +import code.transactionrequests.MappedTransactionRequestProvider import code.transactionrequests.TransactionRequests.TransactionChallengeTypes._ import code.transactionrequests.TransactionRequests.TransactionRequestTypes import code.transactionrequests.TransactionRequests.TransactionRequestTypes.{apply => _, _} @@ -671,20 +671,7 @@ trait APIMethods400 { getScaMethodAtInstance(transactionRequestType.value).toOption, transDetailsSEPAJson.reasons, callContext) - } yield { - for (reason <- transDetailsSEPAJson.reasons.getOrElse(Nil)) { - TransactionRequestReasons - .create - .TransactionRequestId(createdTransactionRequest.id.value) - .Amount(reason.amount.getOrElse("")) - .Code(reason.code) - .Currency(reason.currency.getOrElse("")) - .DocumentNumber(reason.documentNumber.getOrElse("")) - .Description(reason.description.getOrElse("")) - .save() - } - (createdTransactionRequest, callContext) - } + } yield (createdTransactionRequest, callContext) } case FREE_FORM => { for { diff --git a/obp-api/src/main/scala/code/bankconnectors/LocalMappedConnector.scala b/obp-api/src/main/scala/code/bankconnectors/LocalMappedConnector.scala index 62102daeb..b7b8833b8 100644 --- a/obp-api/src/main/scala/code/bankconnectors/LocalMappedConnector.scala +++ b/obp-api/src/main/scala/code/bankconnectors/LocalMappedConnector.scala @@ -3654,13 +3654,15 @@ object LocalMappedConnector extends Connector with MdcLoggable { charge = TransactionRequestCharge("Total charges for completed transaction", AmountOfMoney(transactionRequestCommonBody.value.currency, chargeValue)) // Always create a new Transaction Request transactionRequest <- Future { - createTransactionRequestImpl210(TransactionRequestId(generateUUID()), transactionRequestType, fromAccount, toAccount, transactionRequestCommonBody, detailsPlain, status.toString, charge, chargePolicy) + val transactionRequest = createTransactionRequestImpl210(TransactionRequestId(generateUUID()), transactionRequestType, fromAccount, toAccount, transactionRequestCommonBody, detailsPlain, status.toString, charge, chargePolicy) + saveTransactionRequestReasons(reasons, transactionRequest) + transactionRequest } map { unboxFullOrFail(_, callContext, s"$InvalidConnectorResponseForCreateTransactionRequestImpl210") } // If no challenge necessary, create Transaction immediately and put in data store and object to return - (transactionRequest, callConext) <- status match { + (transactionRequest, callContext) <- status match { case TransactionRequestStatus.COMPLETED => for { (createdTransactionId, callContext) <- NewStyle.function.makePaymentv210( @@ -3745,6 +3747,20 @@ object LocalMappedConnector extends Connector with MdcLoggable { } } + private def saveTransactionRequestReasons(reasons: Option[List[TransactionRequestReason]], transactionRequest: Box[TransactionRequest]) = { + for (reason <- reasons.getOrElse(Nil)) { + TransactionRequestReasons + .create + .TransactionRequestId(transactionRequest.map(_.id.value).getOrElse("")) + .Amount(reason.amount.getOrElse("")) + .Code(reason.code) + .Currency(reason.currency.getOrElse("")) + .DocumentNumber(reason.documentNumber.getOrElse("")) + .Description(reason.description.getOrElse("")) + .save() + } + } + override def saveTransactionRequestTransaction(transactionRequestId: TransactionRequestId, transactionId: TransactionId) = { //put connector agnostic logic here if necessary saveTransactionRequestTransactionImpl(transactionRequestId, transactionId) diff --git a/obp-api/src/main/scala/code/bankconnectors/storedprocedure/StoredProcedureConnector_vDec2019.scala b/obp-api/src/main/scala/code/bankconnectors/storedprocedure/StoredProcedureConnector_vDec2019.scala index 6974b9464..55b3548d7 100644 --- a/obp-api/src/main/scala/code/bankconnectors/storedprocedure/StoredProcedureConnector_vDec2019.scala +++ b/obp-api/src/main/scala/code/bankconnectors/storedprocedure/StoredProcedureConnector_vDec2019.scala @@ -74,7 +74,7 @@ trait StoredProcedureConnector_vDec2019 extends Connector with MdcLoggable { val connectorName = "stored_procedure_vDec2019" //---------------- dynamic start -------------------please don't modify this line -// ---------- created on 2020-07-27T16:34:44Z +// ---------- created on 2020-07-28T13:44:41Z messageDocs += getAdapterInfoDoc def getAdapterInfoDoc = MessageDoc( @@ -1834,7 +1834,12 @@ trait StoredProcedureConnector_vDec2019 extends Connector with MdcLoggable { detailsPlain="string", chargePolicy="string", challengeType=Some("string"), - scaMethod=Some(com.openbankproject.commons.model.enums.StrongCustomerAuthentication.SMS)) + scaMethod=Some(com.openbankproject.commons.model.enums.StrongCustomerAuthentication.SMS), + reasons=Some(List( TransactionRequestReason(code="string", + documentNumber=Some("string"), + amount=Some(amountExample.value), + currency=Some(currencyExample.value), + description=Some("string"))))) ), exampleInboundMessage = ( InBoundCreateTransactionRequestv400(inboundAdapterCallContext=MessageDocsSwaggerDefinitions.inboundAdapterCallContext, @@ -1909,9 +1914,9 @@ trait StoredProcedureConnector_vDec2019 extends Connector with MdcLoggable { adapterImplementation = Some(AdapterImplementation("- Core", 1)) ) - override def createTransactionRequestv400(initiator: User, viewId: ViewId, fromAccount: BankAccount, toAccount: BankAccount, transactionRequestType: TransactionRequestType, transactionRequestCommonBody: TransactionRequestCommonBodyJSON, detailsPlain: String, chargePolicy: String, challengeType: Option[String], scaMethod: Option[StrongCustomerAuthentication.SCA], callContext: Option[CallContext]): OBPReturnType[Box[TransactionRequest]] = { + override def createTransactionRequestv400(initiator: User, viewId: ViewId, fromAccount: BankAccount, toAccount: BankAccount, transactionRequestType: TransactionRequestType, transactionRequestCommonBody: TransactionRequestCommonBodyJSON, detailsPlain: String, chargePolicy: String, challengeType: Option[String], scaMethod: Option[StrongCustomerAuthentication.SCA], reasons: Option[List[TransactionRequestReason]], callContext: Option[CallContext]): OBPReturnType[Box[TransactionRequest]] = { import com.openbankproject.commons.dto.{OutBoundCreateTransactionRequestv400 => OutBound, InBoundCreateTransactionRequestv400 => InBound} - val req = OutBound(callContext.map(_.toOutboundAdapterCallContext).orNull, initiator, viewId, fromAccount, toAccount, transactionRequestType, transactionRequestCommonBody, detailsPlain, chargePolicy, challengeType, scaMethod) + val req = OutBound(callContext.map(_.toOutboundAdapterCallContext).orNull, initiator, viewId, fromAccount, toAccount, transactionRequestType, transactionRequestCommonBody, detailsPlain, chargePolicy, challengeType, scaMethod, reasons) val response: Future[Box[InBound]] = sendRequest[InBound]("obp_create_transaction_requestv400", req, callContext) response.map(convertToTuple[TransactionRequest](callContext)) } @@ -5736,8 +5741,8 @@ trait StoredProcedureConnector_vDec2019 extends Connector with MdcLoggable { response.map(convertToTuple[Boolean](callContext)) } -// ---------- created on 2020-07-27T16:34:44Z -//---------------- dynamic end ---------------------please don't modify this line +// ---------- created on 2020-07-28T13:44:41Z +//---------------- dynamic end ---------------------please don't modify this line private val availableOperation = DynamicEntityOperation.values.map(it => s""""$it"""").mkString("[", ", ", "]") diff --git a/obp-commons/pom.xml b/obp-commons/pom.xml index d0034b61b..01f90fb07 100644 --- a/obp-commons/pom.xml +++ b/obp-commons/pom.xml @@ -7,7 +7,7 @@ com.tesobe obp-parent ../pom.xml - 1.6.2 + 1.6.3 obp-commons jar diff --git a/pom.xml b/pom.xml index 6914b59d7..d50991cdb 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ 4.0.0 com.tesobe obp-parent - 1.6.2 + 1.6.3 pom Open Bank Project API Parent 2011