Changed type of tanExpirationTime to Instant so that UI can better convert it to user's time zone

This commit is contained in:
dankito 2024-09-09 02:55:37 +02:00
parent be2908517f
commit 75320da2be
5 changed files with 10 additions and 13 deletions

View File

@ -1,6 +1,6 @@
package net.codinux.banking.fints.model package net.codinux.banking.fints.model
import kotlinx.datetime.LocalDateTime import kotlinx.datetime.Instant
import net.codinux.banking.fints.tan.FlickerCode import net.codinux.banking.fints.tan.FlickerCode
@ -13,7 +13,7 @@ open class FlickerCodeTanChallenge(
tanMediaIdentifier: String?, tanMediaIdentifier: String?,
bank: BankData, bank: BankData,
account: AccountData? = null, account: AccountData? = null,
tanExpirationTime: LocalDateTime? = null tanExpirationTime: Instant? = null
) : TanChallenge(forAction, messageToShowToUser, challenge, tanMethod, tanMediaIdentifier, bank, account, tanExpirationTime) { ) : TanChallenge(forAction, messageToShowToUser, challenge, tanMethod, tanMediaIdentifier, bank, account, tanExpirationTime) {
override fun toString(): String { override fun toString(): String {

View File

@ -1,6 +1,6 @@
package net.codinux.banking.fints.model package net.codinux.banking.fints.model
import kotlinx.datetime.LocalDateTime import kotlinx.datetime.Instant
import net.codinux.banking.fints.tan.TanImage import net.codinux.banking.fints.tan.TanImage
@ -13,7 +13,7 @@ open class ImageTanChallenge(
tanMediaIdentifier: String?, tanMediaIdentifier: String?,
bank: BankData, bank: BankData,
account: AccountData? = null, account: AccountData? = null,
tanExpirationTime: LocalDateTime? = null tanExpirationTime: Instant? = null
) : TanChallenge(forAction, messageToShowToUser, challenge, tanMethod, tanMediaIdentifier, bank, account, tanExpirationTime) { ) : TanChallenge(forAction, messageToShowToUser, challenge, tanMethod, tanMediaIdentifier, bank, account, tanExpirationTime) {
override fun toString(): String { override fun toString(): String {

View File

@ -1,7 +1,6 @@
package net.codinux.banking.fints.model package net.codinux.banking.fints.model
import kotlinx.datetime.Instant import kotlinx.datetime.Instant
import kotlinx.datetime.LocalDateTime
import net.codinux.banking.fints.extensions.nowExt import net.codinux.banking.fints.extensions.nowExt
import net.codinux.banking.fints.messages.datenelemente.implementierte.tan.TanMedium import net.codinux.banking.fints.messages.datenelemente.implementierte.tan.TanMedium
import net.codinux.banking.fints.response.BankResponse import net.codinux.banking.fints.response.BankResponse
@ -21,7 +20,7 @@ open class TanChallenge(
* *
* In server's time zone, that is Europe/Berlin. * In server's time zone, that is Europe/Berlin.
*/ */
val tanExpirationTime: LocalDateTime? = null, val tanExpirationTime: Instant? = null,
val challengeCreationTimestamp: Instant = Instant.nowExt() val challengeCreationTimestamp: Instant = Instant.nowExt()
) { ) {

View File

@ -1,9 +1,7 @@
package net.codinux.banking.fints.response package net.codinux.banking.fints.response
import kotlinx.datetime.LocalDate import kotlinx.datetime.*
import kotlinx.datetime.LocalDateTime import net.codinux.banking.fints.extensions.EuropeBerlin
import kotlinx.datetime.LocalTime
import kotlinx.datetime.atTime
import net.codinux.log.logger import net.codinux.log.logger
import net.codinux.banking.fints.log.IMessageLogAppender import net.codinux.banking.fints.log.IMessageLogAppender
import net.codinux.banking.fints.messages.Separators import net.codinux.banking.fints.messages.Separators
@ -577,7 +575,7 @@ open class ResponseParser(
if (dataElementGroups.size > 3) parseStringToNullIfEmpty(dataElementGroups[3]) else null, if (dataElementGroups.size > 3) parseStringToNullIfEmpty(dataElementGroups[3]) else null,
if (dataElementGroups.size > 4) parseStringToNullIfEmpty(dataElementGroups[4]) else null, if (dataElementGroups.size > 4) parseStringToNullIfEmpty(dataElementGroups[4]) else null,
binaryChallengeHHD_UC?.let { extractBinaryData(it) }, binaryChallengeHHD_UC?.let { extractBinaryData(it) },
if (dataElementGroups.size > 6) parseNullableDateTime(dataElementGroups[6]) else null, if (dataElementGroups.size > 6) parseNullableDateTime(dataElementGroups[6])?.toInstant(TimeZone.EuropeBerlin) else null,
if (dataElementGroups.size > 7) parseStringToNullIfEmpty(dataElementGroups[7]) else null, if (dataElementGroups.size > 7) parseStringToNullIfEmpty(dataElementGroups[7]) else null,
segment segment
) )

View File

@ -1,6 +1,6 @@
package net.codinux.banking.fints.response.segments package net.codinux.banking.fints.response.segments
import kotlinx.datetime.LocalDateTime import kotlinx.datetime.Instant
import net.codinux.banking.fints.messages.datenelemente.implementierte.tan.TanProcess import net.codinux.banking.fints.messages.datenelemente.implementierte.tan.TanProcess
@ -37,7 +37,7 @@ open class TanResponse(
* *
* In server's time zone, that is Europe/Berlin. * In server's time zone, that is Europe/Berlin.
*/ */
val tanExpirationTime: LocalDateTime?, val tanExpirationTime: Instant?,
val tanMediaIdentifier: String? = null, // M: bei TAN-Prozess=1, 3, 4 und „Anzahl unterstützter aktiver TAN-Medien“ nicht vorhanden. O: sonst val tanMediaIdentifier: String? = null, // M: bei TAN-Prozess=1, 3, 4 und „Anzahl unterstützter aktiver TAN-Medien“ nicht vorhanden. O: sonst
segmentString: String segmentString: String