24 lines
No EOL
1.1 KiB
Kotlin
24 lines
No EOL
1.1 KiB
Kotlin
package net.dankito.fints.response
|
|
|
|
|
|
open class GetUserTanProceduresResponse(bankResponse: Response)
|
|
: Response(bankResponse.didReceiveResponse, bankResponse.receivedResponse, bankResponse.receivedSegments,
|
|
bankResponse.exception, bankResponse.noTanProcedureSelected, bankResponse.messageCreationError) {
|
|
|
|
/**
|
|
* comdirect sends "9955::Unzulässiges TAN-Verfahren." even though '999' is a valid TAN procedure
|
|
* for init dialog if user's TAN procedures are not known yet
|
|
* -> check if the only error is '9955', then it's still a success.
|
|
*/
|
|
override val successful: Boolean
|
|
get() = noTanProcedureSelected == false && couldCreateMessage && didReceiveResponse
|
|
&& tanRequiredButUserDidNotEnterOne == false
|
|
&& (responseContainsErrors == false || containsOnlyInvalidTanProcedureError())
|
|
|
|
protected open fun containsOnlyInvalidTanProcedureError(): Boolean {
|
|
val errorFeedbacks = segmentFeedbacks.flatMap { it.feedbacks }.filter { it.isError }
|
|
|
|
return errorFeedbacks.size == 1 && errorFeedbacks.first().responseCode == 9955
|
|
}
|
|
|
|
} |