libeufin

Integration and sandbox testing for FinTech APIs and data formats
Log | Files | Refs | Submodules | README | LICENSE

commit 12c1a45ce0bb96b874d27629a7ac0ead227ac773
parent 95c75f5f15ad4462d8281f9a0f1ffb1b8f30aa1a
Author: Florian Dold <florian.dold@gmail.com>
Date:   Thu, 18 Jun 2020 12:30:50 +0530

Inline helper function

Diffstat:
Mnexus/build.gradle | 1-
Mnexus/src/main/kotlin/tech/libeufin/nexus/Helpers.kt | 16----------------
Mnexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsNexus.kt | 13++++++++-----
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 }