commit 12c1a45ce0bb96b874d27629a7ac0ead227ac773
parent 95c75f5f15ad4462d8281f9a0f1ffb1b8f30aa1a
Author: Florian Dold <florian.dold@gmail.com>
Date: Thu, 18 Jun 2020 12:30:50 +0530
Inline helper function
Diffstat:
3 files changed, 8 insertions(+), 22 deletions(-)
diff --git a/nexus/build.gradle b/nexus/build.gradle
@@ -120,4 +120,3 @@ jar {
run {
standardInput = System.in
}
-
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/Helpers.kt b/nexus/src/main/kotlin/tech/libeufin/nexus/Helpers.kt
@@ -50,22 +50,6 @@ fun extractFirstIban(bankAccounts: List<EbicsTypes.AbstractAccountNumber>?): Str
return null
}
-/**
- * Skip national only-numeric codes, and returns the first BIC in list
- */
-fun extractFirstBic(bankCodes: List<EbicsTypes.AbstractBankCode>?): String? {
- if (bankCodes == null)
- return null
-
- for (item in bankCodes) {
- if (item is EbicsTypes.GeneralBankCode) {
- if (item.international)
- return item.value
- }
- }
- return null
-}
-
fun getEbicsSubscriberDetailsInternal(subscriber: EbicsSubscriberEntity): EbicsClientSubscriberDetails {
var bankAuthPubValue: RSAPublicKey? = null
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsNexus.kt b/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsNexus.kt
@@ -45,6 +45,7 @@ import org.jetbrains.exposed.sql.transactions.transaction
import tech.libeufin.nexus.*
import tech.libeufin.nexus.logger
import tech.libeufin.util.*
+import tech.libeufin.util.ebics_h004.EbicsTypes
import tech.libeufin.util.ebics_h004.HTDResponseOrderData
import java.io.ByteArrayOutputStream
import java.security.interfaces.RSAPrivateCrtKey
@@ -332,14 +333,16 @@ fun Route.ebicsBankConnectionRoutes(client: HttpClient) {
transaction {
val conn = requireBankConnection(call, "connid")
payload.value.partnerInfo.accountInfoList?.forEach {
- val bankAccount = NexusBankAccountEntity.new(id = it.id) {
+ NexusBankAccountEntity.new(id = it.id) {
accountHolder = it.accountHolder ?: "NOT-GIVEN"
iban = extractFirstIban(it.accountNumberList)
?: throw NexusError(HttpStatusCode.NotFound, reason = "bank gave no IBAN")
- bankCode = extractFirstBic(it.bankCodeList) ?: throw NexusError(
- HttpStatusCode.NotFound,
- reason = "bank gave no BIC"
- )
+ bankCode = it.bankCodeList?.filterIsInstance<EbicsTypes.GeneralBankCode>()
+ ?.find { it.international }?.value
+ ?: throw NexusError(
+ HttpStatusCode.NotFound,
+ reason = "bank gave no BIC"
+ )
defaultBankConnection = conn
highestSeenBankMessageId = 0
}