mirror of
https://github.com/OpenBankProject/OBP-API.git
synced 2026-02-06 15:27:01 +00:00
feature/Transaction Request Reasons - WIP 3
This commit is contained in:
parent
8ea7b76fa8
commit
83e8c4f097
@ -8,7 +8,7 @@
|
||||
<groupId>com.tesobe</groupId>
|
||||
<artifactId>obp-parent</artifactId>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
<version>1.6.2</version>
|
||||
<version>1.6.3</version>
|
||||
</parent>
|
||||
<artifactId>obp-api</artifactId>
|
||||
<packaging>war</packaging>
|
||||
|
||||
@ -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 {
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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("[", ", ", "]")
|
||||
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
<groupId>com.tesobe</groupId>
|
||||
<artifactId>obp-parent</artifactId>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
<version>1.6.2</version>
|
||||
<version>1.6.3</version>
|
||||
</parent>
|
||||
<artifactId>obp-commons</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user