diff --git a/obp-api/src/main/scala/code/bankconnectors/Connector.scala b/obp-api/src/main/scala/code/bankconnectors/Connector.scala index 126c8e597..fc832dd84 100644 --- a/obp-api/src/main/scala/code/bankconnectors/Connector.scala +++ b/obp-api/src/main/scala/code/bankconnectors/Connector.scala @@ -1076,7 +1076,19 @@ trait Connector extends MdcLoggable { chargeValue <- getChargeValue(chargeLevelAmount,transactionRequestCommonBodyAmount) 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)} map { + transactionRequest <- Future{ + TransactionRequests.transactionRequestProvider.vend.createTransactionRequestImpl210( + TransactionRequestId(generateUUID()), + transactionRequestType, + fromAccount, + toAccount, + transactionRequestCommonBody, + detailsPlain, + status.toString, + charge, + chargePolicy, + ) + } map { unboxFullOrFail(_, callContext, s"$InvalidConnectorResponseForCreateTransactionRequestImpl210") } @@ -1100,7 +1112,7 @@ trait Connector extends MdcLoggable { //save transaction_id into database _ <- Future {saveTransactionRequestTransaction(transactionRequest.id, createdTransactionId)} - //update transaction_id field for varibale 'transactionRequest' + //update transaction_id field for variable 'transactionRequest' transactionRequest <- Future(transactionRequest.copy(transaction_ids = createdTransactionId.value)) } yield { @@ -1165,35 +1177,11 @@ trait Connector extends MdcLoggable { berlinGroupPayments: Option[SepaCreditTransfersBerlinGroupV13], callContext: Option[CallContext]): OBPReturnType[Box[TransactionRequest]] = Future{(Failure(setUnimplementedError), callContext)} - //place holder for various connector methods that overwrite methods like these, does the actual data access + //placeholder for various connector methods that overwrite methods like these, does the actual data access protected def createTransactionRequestImpl(transactionRequestId: TransactionRequestId, transactionRequestType: TransactionRequestType, fromAccount : BankAccount, counterparty : BankAccount, body: TransactionRequestBody, status: String, charge: TransactionRequestCharge) : Box[TransactionRequest] = Failure(setUnimplementedError) - /** - * - * @param transactionRequestId - * @param transactionRequestType Support Types: SANDBOX_TAN, FREE_FORM, SEPA and COUNTERPARTY - * @param fromAccount - * @param toAccount - * @param transactionRequestCommonBody Body from http request: should have common fields: - * @param details This is the details / body of the request (contains all fields in the body) - * @param status "INITIATED" "PENDING" "FAILED" "COMPLETED" - * @param charge - * @param chargePolicy SHARED, SENDER, RECEIVER - * @return Always create a new Transaction Request in mapper, and return all the fields - */ - protected def createTransactionRequestImpl210(transactionRequestId: TransactionRequestId, - transactionRequestType: TransactionRequestType, - fromAccount: BankAccount, - toAccount: BankAccount, - transactionRequestCommonBody: TransactionRequestCommonBodyJSON, - details: String, - status: String, - charge: TransactionRequestCharge, - chargePolicy: String, - berlinGroupPayments: Option[SepaCreditTransfersBerlinGroupV13]): Box[TransactionRequest] = Failure(setUnimplementedError) - def notifyTransactionRequest(fromAccount: BankAccount, toAccount: BankAccount, transactionRequest: TransactionRequest, callContext: Option[CallContext]): OBPReturnType[Box[TransactionRequestStatusValue]] = Future{(Failure(setUnimplementedError), callContext)} diff --git a/obp-api/src/main/scala/code/bankconnectors/ConnectorBuilderUtil.scala b/obp-api/src/main/scala/code/bankconnectors/ConnectorBuilderUtil.scala index 937fa0e9c..a5abd178f 100644 --- a/obp-api/src/main/scala/code/bankconnectors/ConnectorBuilderUtil.scala +++ b/obp-api/src/main/scala/code/bankconnectors/ConnectorBuilderUtil.scala @@ -434,7 +434,6 @@ object ConnectorBuilderUtil { val protectedMethods = List( "makePaymentImpl", "createTransactionRequestImpl", - "createTransactionRequestImpl210", "saveTransactionRequestTransactionImpl", "saveTransactionRequestChallengeImpl", "saveTransactionRequestStatusImpl", diff --git a/obp-api/src/main/scala/code/bankconnectors/LocalMappedConnector.scala b/obp-api/src/main/scala/code/bankconnectors/LocalMappedConnector.scala index 3fed007cf..23d551415 100644 --- a/obp-api/src/main/scala/code/bankconnectors/LocalMappedConnector.scala +++ b/obp-api/src/main/scala/code/bankconnectors/LocalMappedConnector.scala @@ -2226,29 +2226,6 @@ object LocalMappedConnector extends Connector with MdcLoggable { charge) } - override def createTransactionRequestImpl210(transactionRequestId: TransactionRequestId, - transactionRequestType: TransactionRequestType, - fromAccount: BankAccount, - toAccount: BankAccount, - transactionRequestCommonBody: TransactionRequestCommonBodyJSON, - details: String, - status: String, - charge: TransactionRequestCharge, - chargePolicy: String, - berlinGroupPayments: Option[SepaCreditTransfersBerlinGroupV13]): Box[TransactionRequest] = { - - TransactionRequests.transactionRequestProvider.vend.createTransactionRequestImpl210(transactionRequestId, - transactionRequestType, - fromAccount, - toAccount, - transactionRequestCommonBody, - details, - status, - charge, - chargePolicy, - berlinGroupPayments: Option[SepaCreditTransfersBerlinGroupV13]) - } - override def saveTransactionRequestTransactionImpl(transactionRequestId: TransactionRequestId, transactionId: TransactionId): Box[Boolean] = { TransactionRequests.transactionRequestProvider.vend.saveTransactionRequestTransactionImpl(transactionRequestId, transactionId) } @@ -5026,7 +5003,17 @@ 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) + TransactionRequests.transactionRequestProvider.vend.createTransactionRequestImpl210( + TransactionRequestId(generateUUID()), + transactionRequestType, + fromAccount, + toAccount, + transactionRequestCommonBody, + detailsPlain, + status.toString, + charge, + chargePolicy, + ) } map { unboxFullOrFail(_, callContext, s"$InvalidConnectorResponseForCreateTransactionRequestImpl210") } @@ -5171,7 +5158,17 @@ 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 { - val transactionRequest = createTransactionRequestImpl210(TransactionRequestId(generateUUID()), transactionRequestType, fromAccount, toAccount, transactionRequestCommonBody, detailsPlain, status.toString, charge, chargePolicy) + val transactionRequest = TransactionRequests.transactionRequestProvider.vend.createTransactionRequestImpl210( + TransactionRequestId(generateUUID()), + transactionRequestType, + fromAccount, + toAccount, + transactionRequestCommonBody, + detailsPlain, + status.toString, + charge, + chargePolicy, + ) saveTransactionRequestReasons(reasons, transactionRequest) transactionRequest } map { diff --git a/obp-api/src/main/scala/code/transactionrequests/TransactionRequests.scala b/obp-api/src/main/scala/code/transactionrequests/TransactionRequests.scala index 30d4ebada..74a3393eb 100644 --- a/obp-api/src/main/scala/code/transactionrequests/TransactionRequests.scala +++ b/obp-api/src/main/scala/code/transactionrequests/TransactionRequests.scala @@ -66,6 +66,20 @@ trait TransactionRequestProvider { body: TransactionRequestBody, status: String, charge: TransactionRequestCharge) : Box[TransactionRequest] + + /** + * + * @param transactionRequestId + * @param transactionRequestType Support Types: SANDBOX_TAN, FREE_FORM, SEPA and COUNTERPARTY + * @param fromAccount + * @param toAccount + * @param transactionRequestCommonBody Body from http request: should have common fields: + * @param details This is the details / body of the request (contains all fields in the body) + * @param status "INITIATED" "PENDING" "FAILED" "COMPLETED" + * @param charge + * @param chargePolicy SHARED, SENDER, RECEIVER + * @return Always create a new Transaction Request in mapper, and return all the fields + */ def createTransactionRequestImpl210(transactionRequestId: TransactionRequestId, transactionRequestType: TransactionRequestType, fromAccount: BankAccount, @@ -75,7 +89,8 @@ trait TransactionRequestProvider { status: String, charge: TransactionRequestCharge, chargePolicy: String, - berlinGroupPayments: Option[SepaCreditTransfersBerlinGroupV13]): Box[TransactionRequest] + berlinGroupPayments: Option[SepaCreditTransfersBerlinGroupV13] = None): Box[TransactionRequest] + def saveTransactionRequestTransactionImpl(transactionRequestId: TransactionRequestId, transactionId: TransactionId): Box[Boolean] def saveTransactionRequestChallengeImpl(transactionRequestId: TransactionRequestId, challenge: TransactionRequestChallenge): Box[Boolean] def saveTransactionRequestStatusImpl(transactionRequestId: TransactionRequestId, status: String): Box[Boolean] diff --git a/obp-commons/src/main/scala/com/openbankproject/commons/dto/JsonsTransfer.scala b/obp-commons/src/main/scala/com/openbankproject/commons/dto/JsonsTransfer.scala index 916be6c83..2acbf89b0 100644 --- a/obp-commons/src/main/scala/com/openbankproject/commons/dto/JsonsTransfer.scala +++ b/obp-commons/src/main/scala/com/openbankproject/commons/dto/JsonsTransfer.scala @@ -1099,11 +1099,6 @@ case class InBoundCreateTransactionRequestImpl(status: Status, data: Transaction override val inboundAdapterCallContext: InboundAdapterCallContext = InboundAdapterCallContext() } -case class OutBoundCreateTransactionRequestImpl210(transactionRequestId: TransactionRequestId, transactionRequestType: TransactionRequestType, fromAccount: BankAccount, toAccount: BankAccount, transactionRequestCommonBody: TransactionRequestCommonBodyJSON, details: String, status: String, charge: TransactionRequestCharge, chargePolicy: String) extends TopicTrait -case class InBoundCreateTransactionRequestImpl210(status: Status, data: TransactionRequest) extends InBoundTrait[TransactionRequest] { - override val inboundAdapterCallContext: InboundAdapterCallContext = InboundAdapterCallContext() -} - case class OutBoundSaveTransactionRequestTransaction(transactionRequestId: TransactionRequestId, transactionId: TransactionId) extends TopicTrait case class InBoundSaveTransactionRequestTransaction(status: Status, data: Boolean) extends InBoundTrait[Boolean] { override val inboundAdapterCallContext: InboundAdapterCallContext = InboundAdapterCallContext()