refactor/remove unused BankAccountBalance roles and update related references

This commit is contained in:
Hongwei 2025-04-24 15:46:10 +02:00
parent 0e4beeaae2
commit d7bd348442
10 changed files with 43 additions and 90 deletions

View File

@ -137,7 +137,7 @@ import code.regulatedentities.attribute.RegulatedEntityAttribute
import com.openbankproject.commons.model.ErrorMessage
import com.openbankproject.commons.util.Functions.Implicits._
import com.openbankproject.commons.util.{ApiVersion, Functions}
import code.bankaccountbalance.BankAccountBalance
import javax.mail.internet.MimeMessage
import net.liftweb.common._
import net.liftweb.db.{DB, DBLogEntry}
@ -1129,7 +1129,7 @@ object ToSchemify {
CustomerAccountLink,
TransactionIdMapping,
RegulatedEntityAttribute,
code.bankaccountbalance.BankAccountBalance
BankAccountBalance
)
// start grpc server

View File

@ -1010,21 +1010,21 @@ object ApiRole extends MdcLoggable{
case class CanGetBankLevelEndpointTag(requiresBankId: Boolean = true) extends ApiRole
lazy val canGetBankLevelEndpointTag = CanGetBankLevelEndpointTag()
// BankAccountBalance roles
case class CanCreateBankAccountBalance(requiresBankId: Boolean = false) extends ApiRole
lazy val canCreateBankAccountBalance = CanCreateBankAccountBalance()
case class CanGetBankAccountBalance(requiresBankId: Boolean = false) extends ApiRole
lazy val canGetBankAccountBalance = CanGetBankAccountBalance()
case class CanGetBankAccountBalances(requiresBankId: Boolean = false) extends ApiRole
lazy val canGetBankAccountBalances = CanGetBankAccountBalances()
case class CanUpdateBankAccountBalance(requiresBankId: Boolean = false) extends ApiRole
lazy val canUpdateBankAccountBalance = CanUpdateBankAccountBalance()
case class CanDeleteBankAccountBalance(requiresBankId: Boolean = false) extends ApiRole
lazy val canDeleteBankAccountBalance = CanDeleteBankAccountBalance()
// // BankAccountBalance roles
// case class CanCreateBankAccountBalance(requiresBankId: Boolean = false) extends ApiRole
// lazy val canCreateBankAccountBalance = CanCreateBankAccountBalance()
//
// case class CanGetBankAccountBalance(requiresBankId: Boolean = false) extends ApiRole
// lazy val canGetBankAccountBalance = CanGetBankAccountBalance()
//
// case class CanGetBankAccountBalances(requiresBankId: Boolean = false) extends ApiRole
// lazy val canGetBankAccountBalances = CanGetBankAccountBalances()
//
// case class CanUpdateBankAccountBalance(requiresBankId: Boolean = false) extends ApiRole
// lazy val canUpdateBankAccountBalance = CanUpdateBankAccountBalance()
//
// case class CanDeleteBankAccountBalance(requiresBankId: Boolean = false) extends ApiRole
// lazy val canDeleteBankAccountBalance = CanDeleteBankAccountBalance()
case class CanCreateHistoricalTransactionAtBank(requiresBankId: Boolean = true) extends ApiRole
lazy val canCreateHistoricalTransactionAtBank = CanCreateHistoricalTransactionAtBank()

View File

@ -208,8 +208,7 @@ trait APIMethods510 {
InvalidJsonFormat,
UnknownError
),
List(apiTagAccount, apiTagBalance),
Some(List(canCreateBankAccountBalance))
List(apiTagAccount, apiTagBalance)
)
lazy val createBankAccountBalance: OBPEndpoint = {
@ -256,8 +255,7 @@ trait APIMethods510 {
UserHasMissingRoles,
UnknownError
),
List(apiTagAccount, apiTagBalance),
Some(List(canGetBankAccountBalance))
List(apiTagAccount, apiTagBalance)
)
lazy val getBankAccountBalanceById: OBPEndpoint = {
@ -295,8 +293,7 @@ trait APIMethods510 {
UserHasMissingRoles,
UnknownError
),
List(apiTagAccount, apiTagBalance),
Some(List(canGetBankAccountBalances))
List(apiTagAccount, apiTagBalance)
)
lazy val getAllBankAccountBalances: OBPEndpoint = {
@ -335,8 +332,7 @@ trait APIMethods510 {
InvalidJsonFormat,
UnknownError
),
List(apiTagAccount, apiTagBalance),
Some(List(canUpdateBankAccountBalance))
List(apiTagAccount, apiTagBalance)
)
lazy val updateBankAccountBalance: OBPEndpoint = {
@ -383,8 +379,7 @@ trait APIMethods510 {
UserHasMissingRoles,
UnknownError
),
List(apiTagAccount, apiTagBalance),
Some(List(canDeleteBankAccountBalance))
List(apiTagAccount, apiTagBalance)
)
lazy val deleteBankAccountBalance: OBPEndpoint = {

View File

@ -19,10 +19,10 @@ class BankAccountBalance extends BankAccountBalanceTrait with LongKeyedMapper[Ba
//this is the smallest unit of currency! eg. cents, yen, pence, øre, etc.
object BalanceAmount extends MappedLong(this)
val foreignMappedBankAccount: Box[MappedBankAccount] = code.model.dataAccess.MappedBankAccount.find(
By(MappedBankAccount.theAccountId, AccountId_.get)
)
val foreignMappedBankAccountCurrency = foreignMappedBankAccount.map(_.currency).getOrElse("EUR")
// val foreignMappedBankAccount: Box[MappedBankAccount] = code.model.dataAccess.MappedBankAccount.find(
// By(MappedBankAccount.theAccountId, AccountId_.get)
// )
val foreignMappedBankAccountCurrency = "EUR" //foreignMappedBankAccount.map(_.currency).getOrElse("EUR")
override def balanceId: BalanceId = BalanceId(BalanceId_.get)
override def accountId: AccountId = AccountId(AccountId_.get)

View File

@ -990,7 +990,7 @@ object LocalMappedConnector extends Connector with MdcLoggable {
label = bankAccount.label,
bankId = bankAccount.bankId.value,
accountRoutings = bankAccount.accountRoutings.map(accountRounting => AccountRouting(accountRounting.scheme, accountRounting.address)),
balances = List(OneAccountBalance(AmountOfMoney(bankAccount.currency, bankAccount.balance.toString),"OpeningBooked")),
balances = List(BankAccountBalance(AmountOfMoney(bankAccount.currency, bankAccount.balance.toString),"OpeningBooked")),
overallBalance = AmountOfMoney(bankAccount.currency, bankAccount.balance.toString),
overallBalanceDate = now
)

View File

@ -1071,7 +1071,7 @@ trait RabbitMQConnector_vOct2024 extends Connector with MdcLoggable {
bankId=bankIdExample.value,
accountRoutings=List( AccountRouting(scheme=accountRoutingSchemeExample.value,
address=accountRoutingAddressExample.value)),
balances=List( OneAccountBalance(balance= AmountOfMoney(currency=balanceCurrencyExample.value,
balances=List( BankAccountBalance(balance= AmountOfMoney(currency=balanceCurrencyExample.value,
amount=balanceAmountExample.value),
balanceType="string")),
overallBalance= AmountOfMoney(currency=currencyExample.value,

View File

@ -1098,7 +1098,7 @@ trait RestConnector_vMar2019 extends Connector with MdcLoggable {
bankId=bankIdExample.value,
accountRoutings=List( AccountRouting(scheme=accountRoutingSchemeExample.value,
address=accountRoutingAddressExample.value)),
balances=List( OneAccountBalance(balance= AmountOfMoney(currency=balanceCurrencyExample.value,
balances=List( BankAccountBalance(balance= AmountOfMoney(currency=balanceCurrencyExample.value,
amount=balanceAmountExample.value),
balanceType="string")),
overallBalance= AmountOfMoney(currency=currencyExample.value,

View File

@ -1078,7 +1078,7 @@ trait StoredProcedureConnector_vDec2019 extends Connector with MdcLoggable {
bankId=bankIdExample.value,
accountRoutings=List( AccountRouting(scheme=accountRoutingSchemeExample.value,
address=accountRoutingAddressExample.value)),
balances=List( OneAccountBalance(balance= AmountOfMoney(currency=balanceCurrencyExample.value,
balances=List( BankAccountBalance(balance= AmountOfMoney(currency=balanceCurrencyExample.value,
amount=balanceAmountExample.value),
balanceType="string")),
overallBalance= AmountOfMoney(currency=currencyExample.value,

View File

@ -28,66 +28,48 @@ class BankAccountBalanceTest extends V510ServerSetup with DefaultUsers {
def createMockBalance(bankId: String, accountId: String): String = {
val json = bankAccountBalanceRequestJsonV510
val entitlement = Entitlement.entitlement.vend.addEntitlement("", resourceUser1.userId, CanCreateBankAccountBalance.toString)
val request = (v5_1_0_Request / "banks" / bankId / "accounts" / accountId / "balances").POST <@ user1
val request = (v5_1_0_Request / "accounts" / accountId / "balances").POST <@ user1
val response = makePostRequest(request, write(json))
Entitlement.entitlement.vend.deleteEntitlement(entitlement)
(response.body.extract[BankAccountBalanceResponseJsonV510].balance_id)
}
feature("Create Bank Account Balance") {
scenario("401 Unauthorized", Create, VersionOfApi) {
val request = (v5_1_0_Request / "banks" / bankId / "accounts" / accountId / "balances").POST
val request = (v5_1_0_Request / "accounts" / accountId / "balances").POST
val response = makePostRequest(request, write(bankAccountBalanceRequestJsonV510))
response.code should equal(401)
response.body.extract[ErrorMessage].message should equal(ErrorMessages.UserNotLoggedIn)
}
scenario("403 Forbidden (no role)", Create, VersionOfApi) {
val request = (v5_1_0_Request / "banks" / bankId / "accounts" / accountId / "balances").POST <@ user1
val response = makePostRequest(request, write(bankAccountBalanceRequestJsonV510))
response.code should equal(403)
response.body.extract[ErrorMessage].message should startWith(ErrorMessages.UserHasMissingRoles + CanCreateBankAccountBalance)
}
scenario("201 Success + Field Echo", Create, VersionOfApi) {
val entitlement = Entitlement.entitlement.vend.addEntitlement("", resourceUser1.userId, CanCreateBankAccountBalance.toString)
val request = (v5_1_0_Request / "banks" / bankId / "accounts" / accountId / "balances").POST <@ user1
val request = (v5_1_0_Request / "accounts" / accountId / "balances").POST <@ user1
val response = makePostRequest(request, write(bankAccountBalanceRequestJsonV510))
response.code should equal(201)
val created = response.body.extract[BankAccountBalanceResponseJsonV510]
created.balance_type should equal(bankAccountBalanceRequestJsonV510.balance_type)
created.balance_amount should equal(bankAccountBalanceRequestJsonV510.balance_amount)
created.account_id should equal(accountId)
Entitlement.entitlement.vend.deleteEntitlement(entitlement)
}
}
feature("Update Bank Account Balance") {
scenario("401 Unauthorized", Update, VersionOfApi) {
val request = (v5_1_0_Request / "banks" / bankId / "accounts" / accountId / "balances" / balanceId).PUT
val request = (v5_1_0_Request / "accounts" / accountId / "balances" / balanceId).PUT
val response = makePutRequest(request, write(bankAccountBalanceRequestJsonV510))
response.code should equal(401)
}
scenario("403 Forbidden", Update, VersionOfApi) {
val request = (v5_1_0_Request / "banks" / bankId / "accounts" / accountId / "balances" / balanceId).PUT <@ user1
val response = makePutRequest(request, write(bankAccountBalanceRequestJsonV510))
response.code should equal(403)
}
scenario("200 Success", Update, VersionOfApi) {
lazy val bankId = testBankId1.value
lazy val accountId = testAccountId1.value
lazy val balanceId = createMockBalance(bankId, accountId)
val entitlement = Entitlement.entitlement.vend.addEntitlement("", resourceUser1.userId, CanUpdateBankAccountBalance.toString)
val request = (v5_1_0_Request / "banks" / bankId / "accounts" / accountId / "balances" / balanceId).PUT <@ user1
val request = (v5_1_0_Request / "accounts" / accountId / "balances" / balanceId).PUT <@ user1
val response = makePutRequest(request, write(bankAccountBalanceRequestJsonV510))
response.code should equal(200)
Entitlement.entitlement.vend.deleteEntitlement(entitlement)
}
}
@ -97,27 +79,19 @@ class BankAccountBalanceTest extends V510ServerSetup with DefaultUsers {
lazy val balanceId = createMockBalance(bankId, accountId)
scenario("401 Unauthorized", Delete, VersionOfApi) {
val request = (v5_1_0_Request / "banks" / bankId / "accounts" / accountId / "balances" / balanceId).DELETE
val request = (v5_1_0_Request / "accounts" / accountId / "balances" / balanceId).DELETE
val response = makeDeleteRequest(request)
response.code should equal(401)
}
scenario("403 Forbidden", Delete, VersionOfApi) {
val request = (v5_1_0_Request / "banks" / bankId / "accounts" / accountId / "balances" / balanceId).DELETE <@ user1
val response = makeDeleteRequest(request)
response.code should equal(403)
}
scenario("204 Success", Delete, VersionOfApi) {
lazy val bankId = testBankId1.value
lazy val accountId = testAccountId1.value
lazy val balanceId = createMockBalance(bankId, accountId)
val entitlement = Entitlement.entitlement.vend.addEntitlement("", resourceUser1.userId, CanDeleteBankAccountBalance.toString)
val request = (v5_1_0_Request / "banks" / bankId / "accounts" / accountId / "balances" / balanceId).DELETE <@ user1
val request = (v5_1_0_Request / "accounts" / accountId / "balances" / balanceId).DELETE <@ user1
val response = makeDeleteRequest(request)
response.code should equal(204)
Entitlement.entitlement.vend.deleteEntitlement(entitlement)
}
}
@ -127,25 +101,17 @@ class BankAccountBalanceTest extends V510ServerSetup with DefaultUsers {
lazy val balanceId = createMockBalance(bankId, accountId)
scenario("401 Unauthorized", GetAll, VersionOfApi) {
val request = (v5_1_0_Request / "banks" / bankId / "accounts" / accountId / "balances").GET
val request = (v5_1_0_Request / "accounts" / accountId / "balances").GET
val response = makeGetRequest(request)
response.code should equal(401)
}
scenario("403 Forbidden", GetAll, VersionOfApi) {
val request = (v5_1_0_Request / "banks" / bankId / "accounts" / accountId / "balances").GET <@ user1
val response = makeGetRequest(request)
response.code should equal(403)
}
scenario("200 Success", GetAll, VersionOfApi) {
lazy val bankId = testBankId1.value
lazy val accountId = testAccountId1.value
val entitlement = Entitlement.entitlement.vend.addEntitlement("", resourceUser1.userId, CanGetBankAccountBalances.toString)
val request = (v5_1_0_Request / "banks" / bankId / "accounts" / accountId / "balances").GET <@ user1
val request = (v5_1_0_Request / "accounts" / accountId / "balances").GET <@ user1
val response = makeGetRequest(request)
response.code should equal(200)
Entitlement.entitlement.vend.deleteEntitlement(entitlement)
}
}
@ -154,26 +120,18 @@ class BankAccountBalanceTest extends V510ServerSetup with DefaultUsers {
lazy val accountId = testAccountId1.value
scenario("401 Unauthorized", GetOne, VersionOfApi) {
val request = (v5_1_0_Request / "banks" / bankId / "accounts" / accountId / "balances" / balanceId).GET
val request = (v5_1_0_Request / "accounts" / accountId / "balances" / balanceId).GET
val response = makeGetRequest(request)
response.code should equal(401)
}
scenario("403 Forbidden", GetOne, VersionOfApi) {
val request = (v5_1_0_Request / "banks" / bankId / "accounts" / accountId / "balances" / balanceId).GET <@ user1
val response = makeGetRequest(request)
response.code should equal(403)
}
scenario("200 Success", GetOne, VersionOfApi) {
lazy val bankId = testBankId1.value
lazy val accountId = testAccountId1.value
lazy val balanceId = createMockBalance(bankId, accountId)
val entitlement = Entitlement.entitlement.vend.addEntitlement("", resourceUser1.userId, CanGetBankAccountBalance.toString)
val request = (v5_1_0_Request / "banks" / bankId / "accounts" / accountId / "balances" / balanceId).GET <@ user1
val request = (v5_1_0_Request / "accounts" / accountId / "balances" / balanceId).GET <@ user1
val response = makeGetRequest(request)
response.code should equal(200)
Entitlement.entitlement.vend.deleteEntitlement(entitlement)
}
}
}

View File

@ -398,12 +398,12 @@ case class AccountBalances(
label: String,
bankId: String,
accountRoutings: List[AccountRouting],
balances: List[OneAccountBalance],
balances: List[BankAccountBalance],
overallBalance: AmountOfMoney,
overallBalanceDate: Date
)
case class OneAccountBalance(
case class BankAccountBalance(
balance: AmountOfMoney,
balanceType: String,
)