Renamed UserAccount to User
This commit is contained in:
parent
c35026bfcc
commit
cb45c181ae
|
@ -38,8 +38,10 @@ interface BankingClient {
|
||||||
* Convenience wrapper around [getAccountDataAsync].
|
* Convenience wrapper around [getAccountDataAsync].
|
||||||
* Updates account's transactions beginning from [BankAccount.lastTransactionsRetrievalTime].
|
* Updates account's transactions beginning from [BankAccount.lastTransactionsRetrievalTime].
|
||||||
* This may requires TAN if [BankAccount.lastTransactionsRetrievalTime] is older than 90 days.
|
* 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,
|
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.AccountCredentials
|
||||||
import net.codinux.banking.client.model.Amount
|
import net.codinux.banking.client.model.Amount
|
||||||
import net.codinux.banking.client.model.BankAccount
|
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.options.GetAccountDataOptions
|
||||||
import net.codinux.banking.client.model.request.GetAccountDataRequest
|
import net.codinux.banking.client.model.request.GetAccountDataRequest
|
||||||
import net.codinux.banking.client.model.request.TransferMoneyRequest
|
import net.codinux.banking.client.model.request.TransferMoneyRequest
|
||||||
|
@ -16,7 +16,7 @@ abstract class BankingClientForUserBase(
|
||||||
protected val client: BankingClient
|
protected val client: BankingClient
|
||||||
) : BankingClientForUser {
|
) : BankingClientForUser {
|
||||||
|
|
||||||
private lateinit var user: UserAccount
|
private lateinit var user: User
|
||||||
|
|
||||||
override suspend fun getAccountDataAsync(options: GetAccountDataOptions) =
|
override suspend fun getAccountDataAsync(options: GetAccountDataOptions) =
|
||||||
client.getAccountDataAsync(GetAccountDataRequest(credentials, options)).also {
|
client.getAccountDataAsync(GetAccountDataRequest(credentials, options)).also {
|
||||||
|
|
|
@ -3,7 +3,7 @@ package net.codinux.banking.client
|
||||||
import kotlinx.coroutines.runBlocking
|
import kotlinx.coroutines.runBlocking
|
||||||
import net.codinux.banking.client.model.Amount
|
import net.codinux.banking.client.model.Amount
|
||||||
import net.codinux.banking.client.model.BankAccount
|
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.options.GetAccountDataOptions
|
||||||
import net.codinux.banking.client.model.request.GetAccountDataRequest
|
import net.codinux.banking.client.model.request.GetAccountDataRequest
|
||||||
import net.codinux.banking.client.model.request.TransferMoneyRequest
|
import net.codinux.banking.client.model.request.TransferMoneyRequest
|
||||||
|
@ -19,7 +19,7 @@ fun BankingClient.getAccountData(request: GetAccountDataRequest) = runBlocking {
|
||||||
getAccountDataAsync(request)
|
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)
|
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")
|
@Suppress("RUNTIME_ANNOTATION_NOT_SUPPORTED")
|
||||||
@NoArgConstructor
|
@NoArgConstructor
|
||||||
open class UserAccount(
|
open class User(
|
||||||
val bankCode: String,
|
val bankCode: String,
|
||||||
var loginName: 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
|
package net.codinux.banking.client.model.response
|
||||||
|
|
||||||
import net.codinux.banking.client.model.AccountTransaction
|
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.JsonIgnore
|
||||||
import net.codinux.banking.client.model.config.NoArgConstructor
|
import net.codinux.banking.client.model.config.NoArgConstructor
|
||||||
|
|
||||||
@Suppress("RUNTIME_ANNOTATION_NOT_SUPPORTED")
|
@Suppress("RUNTIME_ANNOTATION_NOT_SUPPORTED")
|
||||||
@NoArgConstructor
|
@NoArgConstructor
|
||||||
open class GetAccountDataResponse(
|
open class GetAccountDataResponse(
|
||||||
val user: UserAccount
|
val user: User
|
||||||
) {
|
) {
|
||||||
|
|
||||||
@get:JsonIgnore
|
@get:JsonIgnore
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
package net.codinux.banking.client.model.tan
|
package net.codinux.banking.client.model.tan
|
||||||
|
|
||||||
import net.codinux.banking.client.model.BankAccountViewInfo
|
import net.codinux.banking.client.model.BankAccountViewInfo
|
||||||
import net.codinux.banking.client.model.UserAccount
|
import net.codinux.banking.client.model.User
|
||||||
import net.codinux.banking.client.model.UserAccountViewInfo
|
import net.codinux.banking.client.model.BankViewInfo
|
||||||
import net.codinux.banking.client.model.config.JsonIgnore
|
import net.codinux.banking.client.model.config.JsonIgnore
|
||||||
import net.codinux.banking.client.model.config.NoArgConstructor
|
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
|
* When adding an account, frontend has no UserAccount object in BankingClientCallback to know which TanMethods are
|
||||||
* available for User.
|
* available for User.
|
||||||
* Also on other calls to bank server, bank server may returned an updated list of available TanMethods, so that
|
* 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.
|
* 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 tanImage: TanImage? = null,
|
||||||
open val flickerCode: FlickerCode? = null,
|
open val flickerCode: FlickerCode? = null,
|
||||||
open val user: UserAccountViewInfo,
|
open val user: BankViewInfo,
|
||||||
open val account: BankAccountViewInfo? = null
|
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.BankingClientCallback
|
||||||
import net.codinux.banking.client.model.BankAccount
|
import net.codinux.banking.client.model.BankAccount
|
||||||
import net.codinux.banking.client.model.BankAccountFeatures
|
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.options.GetAccountDataOptions
|
||||||
import net.codinux.banking.client.model.request.GetAccountDataRequest
|
import net.codinux.banking.client.model.request.GetAccountDataRequest
|
||||||
import net.codinux.banking.client.model.request.TransferMoneyRequestForUser
|
import net.codinux.banking.client.model.request.TransferMoneyRequestForUser
|
||||||
|
@ -32,7 +32,7 @@ open class FinTs4kBankingClient(
|
||||||
return mapper.map(response)
|
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) }
|
val accountsToRequest = (accounts ?: user.accounts).filter { it.supportsAnyFeature(BankAccountFeatures.RetrieveBalance, BankAccountFeatures.RetrieveBalance) }
|
||||||
|
|
||||||
if (accountsToRequest.isNotEmpty()) {
|
if (accountsToRequest.isNotEmpty()) {
|
||||||
|
|
|
@ -47,7 +47,7 @@ open class FinTs4kMapper {
|
||||||
abortIfTanIsRequired = options.abortIfTanIsRequired
|
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 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 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
|
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)
|
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.bankCode, user.loginName, user.password,
|
||||||
user.bankName, user.bic, user.customerName, user.userId,
|
user.bankName, user.bic, user.customerName, user.userId,
|
||||||
user.accounts.map { mapAccount(it) },
|
user.accounts.map { mapAccount(it) },
|
||||||
|
|
Loading…
Reference in New Issue