Skip to content

Commit 2c73031

Browse files
authored
Merge pull request #8 from SOFTNETWORK-APP/feature/paymentAccountWithoutBankAccount
add a new endpoint so as to handle separately bank and user accounts
2 parents 2754bdd + 4ff1c1e commit 2c73031

File tree

13 files changed

+850
-757
lines changed

13 files changed

+850
-757
lines changed

build.sbt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ ThisBuild / organization := "app.softnetwork"
22

33
name := "payment"
44

5-
ThisBuild / version := "0.7.4"
5+
ThisBuild / version := "0.8.0"
66

77
ThisBuild / scalaVersion := "2.12.18"
88

common/src/main/resources/reference.conf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ payment{
2727
card-route = "card"
2828
payment-method-route = "method"
2929
bank-route = "bank"
30+
account-route = "account"
3031
declaration-route = "declaration"
3132
kyc-route = "kyc"
3233

common/src/main/scala/app/softnetwork/payment/config/Payment.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ object Payment {
1515
cardRoute: String,
1616
paymentMethodRoute: String,
1717
bankRoute: String,
18+
accountRoute: String,
1819
declarationRoute: String,
1920
kycRoute: String,
2021
disableBankAccountDeletion: Boolean,

common/src/main/scala/app/softnetwork/payment/message/PaymentMessages.scala

Lines changed: 45 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -639,41 +639,33 @@ object PaymentMessages {
639639
lazy val key: String = transactionId
640640
}
641641

642-
/** Commands related to the bank account */
642+
/** Commands related to the payment account */
643643

644-
case class BankAccountCommand(
645-
bankAccount: BankAccount,
644+
case class UserPaymentAccountCommand(
646645
user: Either[NaturalUser, LegalUser],
647646
acceptedTermsOfPSP: Option[Boolean] = None,
648-
tokenId: Option[String] = None,
649-
bankTokenId: Option[String] = None
647+
tokenId: Option[String] = None
650648
)
651649

652-
object BankAccountCommand {
650+
object UserPaymentAccountCommand {
653651

654652
def apply(
655-
bankAccount: BankAccount,
656653
naturalUser: NaturalUser,
657654
acceptedTermsOfPSP: Option[Boolean],
658-
tokenId: Option[String],
659-
bankTokenId: Option[String]
660-
): BankAccountCommand =
661-
BankAccountCommand(bankAccount, Left(naturalUser), acceptedTermsOfPSP, tokenId, bankTokenId)
655+
tokenId: Option[String]
656+
): UserPaymentAccountCommand =
657+
UserPaymentAccountCommand(Left(naturalUser), acceptedTermsOfPSP, tokenId)
662658

663659
def apply(
664-
bankAccount: BankAccount,
665660
legalUser: LegalUser,
666661
acceptedTermsOfPSP: Option[Boolean],
667-
tokenId: Option[String],
668-
bankTokenId: Option[String]
669-
): BankAccountCommand =
670-
BankAccountCommand(bankAccount, Right(legalUser), acceptedTermsOfPSP, tokenId, bankTokenId)
662+
tokenId: Option[String]
663+
): UserPaymentAccountCommand =
664+
UserPaymentAccountCommand(Right(legalUser), acceptedTermsOfPSP, tokenId)
671665
}
672666

673667
/** @param creditedAccount
674668
* - account to credit
675-
* @param bankAccount
676-
* - bank account
677669
* @param user
678670
* - payment user
679671
* @param acceptedTermsOfPSP
@@ -686,18 +678,38 @@ object PaymentMessages {
686678
* - optional client id
687679
* @param tokenId
688680
* - optional account token id
689-
* @param bankTokenId
690-
* - optional bank token id
691681
*/
692-
case class CreateOrUpdateBankAccount(
682+
case class CreateOrUpdateUserPaymentAccount(
693683
creditedAccount: String,
694-
bankAccount: BankAccount,
695684
user: Option[PaymentAccount.User] = None,
696685
acceptedTermsOfPSP: Option[Boolean] = None,
697686
ipAddress: Option[String] = None,
698687
userAgent: Option[String],
699688
clientId: Option[String] = None,
700-
tokenId: Option[String] = None,
689+
tokenId: Option[String] = None
690+
) extends PaymentCommandWithKey
691+
with PaymentAccountCommand {
692+
val key: String = creditedAccount
693+
}
694+
695+
case class BankAccountCommand(
696+
bankAccount: BankAccount,
697+
bankTokenId: Option[String] = None
698+
)
699+
700+
/** @param creditedAccount
701+
* - account to credit
702+
* @param bankAccount
703+
* - bank account
704+
* @param clientId
705+
* - optional client id
706+
* @param bankTokenId
707+
* - optional bank token id
708+
*/
709+
case class CreateOrUpdateBankAccount(
710+
creditedAccount: String,
711+
bankAccount: BankAccount,
712+
clientId: Option[String] = None,
701713
bankTokenId: Option[String] = None
702714
) extends PaymentCommandWithKey
703715
with PaymentAccountCommand {
@@ -1029,14 +1041,18 @@ object PaymentMessages {
10291041
case class PaymentAccountLoaded(paymentAccount: PaymentAccount) extends PaymentResult
10301042

10311043
case class BankAccountCreatedOrUpdated(
1044+
bankAccountCreated: Boolean,
1045+
bankAccountUpdated: Boolean,
1046+
mandateCanceled: Boolean,
1047+
paymentAccount: PaymentAccountView
1048+
) extends PaymentResult
1049+
1050+
case class UserPaymentAccountCreatedOrUpdated(
10321051
userCreated: Boolean,
10331052
userTypeUpdated: Boolean,
10341053
kycUpdated: Boolean,
10351054
userUpdated: Boolean,
1036-
bankAccountCreated: Boolean,
1037-
bankAccountUpdated: Boolean,
10381055
documentsUpdated: Boolean,
1039-
mandateCanceled: Boolean,
10401056
uboDeclarationCreated: Boolean,
10411057
paymentAccount: PaymentAccountView
10421058
) extends PaymentResult
@@ -1177,6 +1193,9 @@ object PaymentMessages {
11771193

11781194
case object BankAccountNotCreatedOrUpdated extends PaymentError("BankAccountNotCreatedOrUpdated")
11791195

1196+
case object UserPaymentAccountNotCreatedOrUpdated
1197+
extends PaymentError("UserPaymentAccountNotCreatedOrUpdated")
1198+
11801199
case object KycDocumentNotAdded extends PaymentError("KycDocumentNotAdded")
11811200

11821201
case object KycDocumentStatusNotUpdated extends PaymentError("KycDocumentStatusNotUpdated")

0 commit comments

Comments
 (0)