Renamed UserAccount to User
This commit is contained in:
parent
c35026bfcc
commit
cb45c181ae
|
@ -38,8 +38,10 @@ interface BankingClient {
|
|||
* Convenience wrapper around [getAccountDataAsync].
|
||||
* Updates account's transactions beginning from [BankAccount.lastTransactionsRetrievalTime].
|
||||
* This may requires TAN if [BankAccount.lastTransactionsRetrievalTime] is older than 90 days.
|
||||
*
|
||||
* Optionally specify which [accounts] should be updated. If not specified all accounts will be updated.
|
||||
*/
|
||||
suspend fun updateAccountTransactionsAsync(user: UserAccount, accounts: List<BankAccount>? = null): Response<List<GetTransactionsResponse>>
|
||||
suspend fun updateAccountTransactionsAsync(user: User, accounts: List<BankAccount>? = null): Response<List<GetTransactionsResponse>>
|
||||
|
||||
|
||||
suspend fun transferMoneyAsync(bankCode: String, loginName: String, password: String, recipientName: String,
|
||||
|
|
|
@ -3,7 +3,7 @@ package net.codinux.banking.client
|
|||
import net.codinux.banking.client.model.AccountCredentials
|
||||
import net.codinux.banking.client.model.Amount
|
||||
import net.codinux.banking.client.model.BankAccount
|
||||
import net.codinux.banking.client.model.UserAccount
|
||||
import net.codinux.banking.client.model.User
|
||||
import net.codinux.banking.client.model.options.GetAccountDataOptions
|
||||
import net.codinux.banking.client.model.request.GetAccountDataRequest
|
||||
import net.codinux.banking.client.model.request.TransferMoneyRequest
|
||||
|
@ -16,7 +16,7 @@ abstract class BankingClientForUserBase(
|
|||
protected val client: BankingClient
|
||||
) : BankingClientForUser {
|
||||
|
||||
private lateinit var user: UserAccount
|
||||
private lateinit var user: User
|
||||
|
||||
override suspend fun getAccountDataAsync(options: GetAccountDataOptions) =
|
||||
client.getAccountDataAsync(GetAccountDataRequest(credentials, options)).also {
|
||||
|
|
|
@ -3,7 +3,7 @@ package net.codinux.banking.client
|
|||
import kotlinx.coroutines.runBlocking
|
||||
import net.codinux.banking.client.model.Amount
|
||||
import net.codinux.banking.client.model.BankAccount
|
||||
import net.codinux.banking.client.model.UserAccount
|
||||
import net.codinux.banking.client.model.User
|
||||
import net.codinux.banking.client.model.options.GetAccountDataOptions
|
||||
import net.codinux.banking.client.model.request.GetAccountDataRequest
|
||||
import net.codinux.banking.client.model.request.TransferMoneyRequest
|
||||
|
@ -19,7 +19,7 @@ fun BankingClient.getAccountData(request: GetAccountDataRequest) = runBlocking {
|
|||
getAccountDataAsync(request)
|
||||
}
|
||||
|
||||
fun BankingClient.updateAccountTransactions(user: UserAccount, accounts: List<BankAccount>? = null) = runBlocking {
|
||||
fun BankingClient.updateAccountTransactions(user: User, accounts: List<BankAccount>? = null) = runBlocking {
|
||||
updateAccountTransactionsAsync(user, accounts)
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
package net.codinux.banking.client.model
|
||||
|
||||
import net.codinux.banking.client.model.config.NoArgConstructor
|
||||
|
||||
/**
|
||||
* Contains only the basic info of a bank, just enough that a client application can display it to the user
|
||||
* and the user knows exactly which bank is meant / referred to.
|
||||
*
|
||||
* As e.g. when adding a new account, client application has no data about the bank locally, so it can use this
|
||||
* information to display it to the user.
|
||||
*/
|
||||
@NoArgConstructor
|
||||
open class BankViewInfo(
|
||||
val bankCode: String,
|
||||
var loginName: String,
|
||||
val bankName: String,
|
||||
val bankingGroup: BankingGroup? = null
|
||||
) {
|
||||
override fun toString() = "$bankCode $bankName $loginName"
|
||||
}
|
|
@ -7,7 +7,7 @@ import net.codinux.banking.client.model.tan.TanMethod
|
|||
|
||||
@Suppress("RUNTIME_ANNOTATION_NOT_SUPPORTED")
|
||||
@NoArgConstructor
|
||||
open class UserAccount(
|
||||
open class User(
|
||||
val bankCode: String,
|
||||
var loginName: String,
|
||||
/**
|
|
@ -1,17 +0,0 @@
|
|||
package net.codinux.banking.client.model
|
||||
|
||||
import net.codinux.banking.client.model.config.NoArgConstructor
|
||||
|
||||
/**
|
||||
* Contains only the basic info of a [UserAccount], just enough that a client application can display it to the user
|
||||
* and the user knows exactly which [UserAccount] is meant / referred.
|
||||
*/
|
||||
@NoArgConstructor
|
||||
open class UserAccountViewInfo(
|
||||
val bankCode: String,
|
||||
var loginName: String,
|
||||
val bankName: String,
|
||||
val bankingGroup: BankingGroup? = null
|
||||
) {
|
||||
override fun toString() = "$bankCode $bankName $loginName"
|
||||
}
|
|
@ -1,14 +1,14 @@
|
|||
package net.codinux.banking.client.model.response
|
||||
|
||||
import net.codinux.banking.client.model.AccountTransaction
|
||||
import net.codinux.banking.client.model.UserAccount
|
||||
import net.codinux.banking.client.model.User
|
||||
import net.codinux.banking.client.model.config.JsonIgnore
|
||||
import net.codinux.banking.client.model.config.NoArgConstructor
|
||||
|
||||
@Suppress("RUNTIME_ANNOTATION_NOT_SUPPORTED")
|
||||
@NoArgConstructor
|
||||
open class GetAccountDataResponse(
|
||||
val user: UserAccount
|
||||
val user: User
|
||||
) {
|
||||
|
||||
@get:JsonIgnore
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
package net.codinux.banking.client.model.tan
|
||||
|
||||
import net.codinux.banking.client.model.BankAccountViewInfo
|
||||
import net.codinux.banking.client.model.UserAccount
|
||||
import net.codinux.banking.client.model.UserAccountViewInfo
|
||||
import net.codinux.banking.client.model.User
|
||||
import net.codinux.banking.client.model.BankViewInfo
|
||||
import net.codinux.banking.client.model.config.JsonIgnore
|
||||
import net.codinux.banking.client.model.config.NoArgConstructor
|
||||
|
||||
|
@ -24,7 +24,7 @@ open class TanChallenge(
|
|||
* When adding an account, frontend has no UserAccount object in BankingClientCallback to know which TanMethods are
|
||||
* available for User.
|
||||
* Also on other calls to bank server, bank server may returned an updated list of available TanMethods, so that
|
||||
* [UserAccount] may contains an outdated list of available TanMethods.
|
||||
* [User] may contains an outdated list of available TanMethods.
|
||||
*
|
||||
* Therefore i added list with up to date TanMethods here to ensure EnterTanDialog can display user's up to date TanMethods.
|
||||
*/
|
||||
|
@ -41,7 +41,7 @@ open class TanChallenge(
|
|||
|
||||
open val tanImage: TanImage? = null,
|
||||
open val flickerCode: FlickerCode? = null,
|
||||
open val user: UserAccountViewInfo,
|
||||
open val user: BankViewInfo,
|
||||
open val account: BankAccountViewInfo? = null
|
||||
) {
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ import net.codinux.banking.client.BankingClient
|
|||
import net.codinux.banking.client.BankingClientCallback
|
||||
import net.codinux.banking.client.model.BankAccount
|
||||
import net.codinux.banking.client.model.BankAccountFeatures
|
||||
import net.codinux.banking.client.model.UserAccount
|
||||
import net.codinux.banking.client.model.User
|
||||
import net.codinux.banking.client.model.options.GetAccountDataOptions
|
||||
import net.codinux.banking.client.model.request.GetAccountDataRequest
|
||||
import net.codinux.banking.client.model.request.TransferMoneyRequestForUser
|
||||
|
@ -32,7 +32,7 @@ open class FinTs4kBankingClient(
|
|||
return mapper.map(response)
|
||||
}
|
||||
|
||||
override suspend fun updateAccountTransactionsAsync(user: UserAccount, accounts: List<BankAccount>?): Response<List<GetTransactionsResponse>> {
|
||||
override suspend fun updateAccountTransactionsAsync(user: User, accounts: List<BankAccount>?): Response<List<GetTransactionsResponse>> {
|
||||
val accountsToRequest = (accounts ?: user.accounts).filter { it.supportsAnyFeature(BankAccountFeatures.RetrieveBalance, BankAccountFeatures.RetrieveBalance) }
|
||||
|
||||
if (accountsToRequest.isNotEmpty()) {
|
||||
|
|
|
@ -47,7 +47,7 @@ open class FinTs4kMapper {
|
|||
abortIfTanIsRequired = options.abortIfTanIsRequired
|
||||
)
|
||||
|
||||
open fun mapToUpdateAccountTransactionsParameter(user: UserAccount, account: BankAccount, finTsModel: BankData?): GetAccountDataParameter {
|
||||
open fun mapToUpdateAccountTransactionsParameter(user: User, account: BankAccount, finTsModel: BankData?): GetAccountDataParameter {
|
||||
val accountIdentifier = BankAccountIdentifierImpl(account.identifier, account.subAccountNumber, account.iban)
|
||||
val from = account.lastTransactionsRetrievalTime?.toLocalDateTime(TimeZone.EuropeBerlin)?.date // TODO: in case lastTransactionsUpdateTime is not set, this would retrieve all transactions (and require a TAN im most cases)
|
||||
val retrieveTransactions = if (from != null) RetrieveTransactions.AccordingToRetrieveFromAndTo else RetrieveTransactions.OfLast90Days
|
||||
|
@ -106,7 +106,7 @@ open class FinTs4kMapper {
|
|||
}
|
||||
|
||||
|
||||
open fun mapToUserAccountViewInfo(bank: BankData): UserAccountViewInfo = UserAccountViewInfo(
|
||||
open fun mapToUserAccountViewInfo(bank: BankData): BankViewInfo = BankViewInfo(
|
||||
bank.bankCode, bank.customerId, bank.bankName, getBankingGroup(bank.bankName, bank.bic)
|
||||
)
|
||||
|
||||
|
@ -117,7 +117,7 @@ open class FinTs4kMapper {
|
|||
)
|
||||
|
||||
|
||||
protected open fun mapUser(user: net.dankito.banking.client.model.CustomerAccount) = UserAccount(
|
||||
protected open fun mapUser(user: net.dankito.banking.client.model.CustomerAccount) = User(
|
||||
user.bankCode, user.loginName, user.password,
|
||||
user.bankName, user.bic, user.customerName, user.userId,
|
||||
user.accounts.map { mapAccount(it) },
|
||||
|
|
Loading…
Reference in New Issue