Adjusted to updated model that bankCode has been renamed to domesticBankCode and countryCode got added
This commit is contained in:
parent
d7a9acbe56
commit
96c8cf59cd
|
@ -59,10 +59,10 @@ class InMemoryBankingRepository(
|
|||
|
||||
private fun map(bank: BankAccess) = BankAccessEntity(
|
||||
nextId++,
|
||||
bank.bankCode, bank.loginName, bank.password, bank.bankName, bank.bic, bank.customerName, bank.userId,
|
||||
bank.domesticBankCode, bank.loginName, bank.password, bank.bankName, bank.bic, bank.customerName, bank.userId,
|
||||
// TODO: may fix someday and also add BankAccounts
|
||||
emptyList(), bank.selectedTanMethodIdentifier, emptyList(), bank.selectedTanMediumIdentifier, emptyList(),
|
||||
bank.bankingGroup, bank.serverAddress,
|
||||
bank.bankingGroup, bank.serverAddress, bank.countryCode,
|
||||
bank.userSetDisplayName, bank.displayIndex,
|
||||
bank.iconUrl, bank.wrongCredentialsEntered,
|
||||
)
|
||||
|
|
|
@ -32,9 +32,9 @@ open class SqliteBankingRepository(
|
|||
val tanMedia = getAllTanMedia().groupBy { it.userId }
|
||||
val holdings = getAllHoldings().groupBy { it.bankAccountId }
|
||||
|
||||
return bankQueries.selectAllBanks { id, bankCode, loginName, password, bankName, bic, customerName, userId, selectedTanMethodIdentifier, selectedTanMediumIdentifier, bankingGroup, serverAddress, userSetDisplayName, clientData, displayIndex, iconUrl, wrongCredentialsEntered ->
|
||||
BankAccessEntity(id, bankCode, loginName, password, bankName, bic, customerName, userId, getAccountsOfBank(id, bankAccounts, holdings), selectedTanMethodIdentifier, tanMethods[id] ?: emptyList(), selectedTanMediumIdentifier, tanMedia[id] ?: emptyList(),
|
||||
bankingGroup?.let { BankingGroup.valueOf(it) }, serverAddress, userSetDisplayName, displayIndex.toInt(), iconUrl, wrongCredentialsEntered)
|
||||
return bankQueries.selectAllBanks { id, domesticBankCode, loginName, password, bankName, bic, customerName, userId, selectedTanMethodIdentifier, selectedTanMediumIdentifier, bankingGroup, serverAddress, userSetDisplayName, clientData, displayIndex, iconUrl, wrongCredentialsEntered ->
|
||||
BankAccessEntity(id, domesticBankCode, loginName, password, bankName, bic, customerName, userId, getAccountsOfBank(id, bankAccounts, holdings), selectedTanMethodIdentifier, tanMethods[id] ?: emptyList(), selectedTanMediumIdentifier, tanMedia[id] ?: emptyList(),
|
||||
bankingGroup?.let { BankingGroup.valueOf(it) }, serverAddress, "de", userSetDisplayName, displayIndex.toInt(), iconUrl, wrongCredentialsEntered)
|
||||
}.executeAsList()
|
||||
}
|
||||
|
||||
|
@ -46,7 +46,7 @@ open class SqliteBankingRepository(
|
|||
|
||||
override suspend fun persistBank(bank: BankAccess): BankAccessEntity {
|
||||
return bankQueries.transactionWithResult {
|
||||
bankQueries.insertBank(bank.bankCode, bank.loginName, bank.password, bank.bankName, bank.bic,
|
||||
bankQueries.insertBank(bank.domesticBankCode, bank.loginName, bank.password, bank.bankName, bank.bic,
|
||||
bank.customerName, bank.userId, bank.selectedTanMethodIdentifier, bank.selectedTanMediumIdentifier,
|
||||
bank.bankingGroup?.name, bank.serverAddress, null, bank.userSetDisplayName, bank.displayIndex.toLong(), bank.iconUrl, bank.wrongCredentialsEntered
|
||||
)
|
||||
|
|
|
@ -7,7 +7,7 @@ import net.codinux.banking.client.model.tan.TanMedium
|
|||
class BankAccessEntity(
|
||||
val id: Long,
|
||||
|
||||
bankCode: String,
|
||||
domesticBankCode: String,
|
||||
loginName: String,
|
||||
password: String?,
|
||||
|
||||
|
@ -27,13 +27,14 @@ class BankAccessEntity(
|
|||
|
||||
bankingGroup: BankingGroup? = null,
|
||||
serverAddress: String? = null,
|
||||
countryCode: String = "de",
|
||||
|
||||
userSetDisplayName: String? = null,
|
||||
displayIndex: Int = 0,
|
||||
|
||||
iconUrl: String? = null,
|
||||
wrongCredentialsEntered: Boolean = false
|
||||
) : BankAccess(bankCode, loginName, password, bankName, bic, customerName, userId, accounts, selectedTanMethodIdentifier, tanMethods, selectedTanMediumIdentifier, tanMedia, bankingGroup, serverAddress) {
|
||||
) : BankAccess(domesticBankCode, loginName, password, bankName, bic, customerName, userId, accounts, selectedTanMethodIdentifier, tanMethods, selectedTanMediumIdentifier, tanMedia, bankingGroup, serverAddress, countryCode) {
|
||||
|
||||
init {
|
||||
this.userSetDisplayName = userSetDisplayName
|
||||
|
@ -46,10 +47,10 @@ class BankAccessEntity(
|
|||
|
||||
constructor(id: Long, bank: BankAccess, bankAccounts: List<BankAccountEntity>, tanMethods: List<TanMethodEntity>, tanMedia: List<TanMediumEntity>) : this(
|
||||
id,
|
||||
bank.bankCode, bank.loginName, bank.password, bank.bankName, bank.bic, bank.customerName, bank.userId,
|
||||
bank.domesticBankCode, bank.loginName, bank.password, bank.bankName, bank.bic, bank.customerName, bank.userId,
|
||||
bankAccounts,
|
||||
bank.selectedTanMethodIdentifier, tanMethods, bank.selectedTanMediumIdentifier, tanMedia,
|
||||
bank.bankingGroup, bank.serverAddress,
|
||||
bank.bankingGroup, bank.serverAddress, bank.countryCode,
|
||||
bank.userSetDisplayName, bank.displayIndex,
|
||||
bank.iconUrl, bank.wrongCredentialsEntered,
|
||||
)
|
||||
|
|
|
@ -136,7 +136,7 @@ fun AddAccountDialog(
|
|||
}
|
||||
|
||||
Row(Modifier.fillMaxWidth().padding(top = 6.dp)) {
|
||||
Text(bank.bankCode, color = textColor)
|
||||
Text(bank.domesticBankCode, color = textColor)
|
||||
|
||||
Text("${bank.postalCode} ${bank.city}", Modifier.weight(1f).padding(start = 8.dp), color = if (supportsFinTs) Color.Gray else textColor)
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@ import kotlinx.serialization.Serializable
|
|||
@Serializable
|
||||
class BankInfo(
|
||||
val name: String,
|
||||
val bankCode: String,
|
||||
val domesticBankCode: String,
|
||||
val bic: String = "",
|
||||
val postalCode: String,
|
||||
val city: String,
|
||||
|
@ -23,5 +23,5 @@ class BankInfo(
|
|||
get() = pinTanVersion == "FinTS V3.0"
|
||||
|
||||
|
||||
override fun toString() = "$bankCode $name $city"
|
||||
override fun toString() = "$domesticBankCode $name $city"
|
||||
}
|
|
@ -36,7 +36,7 @@ class BankFinder {
|
|||
return getBankList(maxItems)
|
||||
}
|
||||
|
||||
return getBankList().asSequence().filter { it.bankCode.startsWith(query) }
|
||||
return getBankList().asSequence().filter { it.domesticBankCode.startsWith(query) }
|
||||
.max(maxItems)
|
||||
}
|
||||
|
||||
|
@ -69,7 +69,7 @@ class BankFinder {
|
|||
|
||||
val bankCode = iban.substring(4) // first two letters are the country code, third and fourth char are the checksum, bank code starts at 5th char
|
||||
|
||||
val result = getBankList().asSequence().filter { it.bankCode.startsWith(bankCode) }.max(2)
|
||||
val result = getBankList().asSequence().filter { it.domesticBankCode.startsWith(bankCode) }.max(2)
|
||||
|
||||
return if (result.size > 1) { // non unique result, but should actually never happen for BICs
|
||||
null
|
||||
|
|
|
@ -72,7 +72,7 @@ class BankingService(
|
|||
suspend fun addAccount(bank: BankInfo, loginName: String, password: String, retrieveAllTransactions: Boolean = false): Boolean {
|
||||
try {
|
||||
val retrieveTransactions = if (retrieveAllTransactions) RetrieveTransactions.All else RetrieveTransactions.OfLast90Days
|
||||
val response = client.getAccountDataAsync(GetAccountDataRequest(bank.bankCode, loginName, password, GetAccountDataOptions(retrieveTransactions), mapBankInfo(bank)))
|
||||
val response = client.getAccountDataAsync(GetAccountDataRequest(bank.domesticBankCode, loginName, password, GetAccountDataOptions(retrieveTransactions), mapBankInfo(bank)))
|
||||
|
||||
if (response.type == ResponseType.Success && response.data != null) {
|
||||
handleSuccessfulGetAccountDataResponse(response.data!!)
|
||||
|
@ -239,7 +239,7 @@ class BankingService(
|
|||
recipientName: String, recipientAccountIdentifier: String, amount: Amount, currency: String,
|
||||
paymentReference: String? = null, instantTransfer: Boolean = false, recipientBankIdentifier: String? = null): Boolean {
|
||||
val response = client.transferMoneyAsync(TransferMoneyRequestForUser(
|
||||
bank.bankCode, bank.loginName, bank.password!!,
|
||||
bank.domesticBankCode, bank.loginName, bank.password!!,
|
||||
BankAccountIdentifier(account.identifier, account.subAccountNumber, account.iban), // TODO: use BankingClient's one
|
||||
recipientName, recipientAccountIdentifier, recipientBankIdentifier,
|
||||
amount, "EUR",
|
||||
|
|
Loading…
Reference in New Issue