mirror of
https://github.com/OpenBankProject/OBP-API.git
synced 2026-02-06 13:07:02 +00:00
feature/BGv1.3 added periodic_payments - step3
This commit is contained in:
parent
d4aa006dac
commit
ea3edbe85b
@ -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)}
|
||||
|
||||
|
||||
@ -434,7 +434,6 @@ object ConnectorBuilderUtil {
|
||||
val protectedMethods = List(
|
||||
"makePaymentImpl",
|
||||
"createTransactionRequestImpl",
|
||||
"createTransactionRequestImpl210",
|
||||
"saveTransactionRequestTransactionImpl",
|
||||
"saveTransactionRequestChallengeImpl",
|
||||
"saveTransactionRequestStatusImpl",
|
||||
|
||||
@ -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 {
|
||||
|
||||
@ -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]
|
||||
|
||||
@ -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()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user