[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[libeufin] branch master updated: Avoid stack-trace for double download
From: |
gnunet |
Subject: |
[libeufin] branch master updated: Avoid stack-trace for double download of accounts. |
Date: |
Fri, 15 Jan 2021 16:54:46 +0100 |
This is an automated email from the git hooks/post-receive script.
ms pushed a commit to branch master
in repository libeufin.
The following commit(s) were added to refs/heads/master by this push:
new 1ce76c5 Avoid stack-trace for double download of accounts.
1ce76c5 is described below
commit 1ce76c52f15995d869f62e212f067e53e9369785
Author: ms <ms@taler.net>
AuthorDate: Fri Jan 15 16:53:28 2021 +0100
Avoid stack-trace for double download of accounts.
---
cli/bin/libeufin-cli | 3 +--
nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsNexus.kt | 11 ++++++++---
.../src/main/kotlin/tech/libeufin/nexus/server/NexusServer.kt | 8 ++------
3 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/cli/bin/libeufin-cli b/cli/bin/libeufin-cli
index 7cc0b42..262169f 100755
--- a/cli/bin/libeufin-cli
+++ b/cli/bin/libeufin-cli
@@ -320,8 +320,7 @@ def list_offered_bank_accounts(obj, connection_name):
print("Could not reach nexus at " + url)
exit(1)
-
- tell_user(resp)
+ tell_user(resp, withsuccess=True)
@accounts.command(help="Schedules a new task")
@click.argument("account-name")
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsNexus.kt
b/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsNexus.kt
index da2260c..5e6fc65 100644
--- a/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsNexus.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsNexus.kt
@@ -40,7 +40,9 @@ import io.ktor.response.respond
import io.ktor.response.respondText
import io.ktor.routing.Route
import io.ktor.routing.post
+import org.jetbrains.exposed.sql.and
import org.jetbrains.exposed.sql.insert
+import org.jetbrains.exposed.sql.select
import org.jetbrains.exposed.sql.statements.api.ExposedBlob
import org.jetbrains.exposed.sql.transactions.transaction
import tech.libeufin.nexus.*
@@ -333,9 +335,7 @@ private fun getEbicsSubscriberDetails(bankConnectionId:
String): EbicsClientSubs
}
suspend fun ebicsFetchAccounts(connId: String, client: HttpClient) {
- val subscriberDetails = transaction {
- getEbicsSubscriberDetails(connId)
- }
+ val subscriberDetails = transaction { getEbicsSubscriberDetails(connId) }
val response = doEbicsDownloadTransaction(
client, subscriberDetails, "HTD", EbicsStandardOrderParams()
)
@@ -352,6 +352,11 @@ suspend fun ebicsFetchAccounts(connId: String, client:
HttpClient) {
)
transaction {
payload.value.partnerInfo.accountInfoList?.forEach {
accountInfo ->
+ val isDuplicate = OfferedBankAccountsTable.select {
+ OfferedBankAccountsTable.bankConnection eq connId and (
+ OfferedBankAccountsTable.offeredAccountId eq
accountInfo.id)
+ }.firstOrNull()
+ if (isDuplicate != null) return@forEach
OfferedBankAccountsTable.insert { newRow ->
newRow[accountHolder] = accountInfo.accountHolder ?:
"NOT GIVEN"
newRow[iban] =
accountInfo.accountNumberList?.filterIsInstance<EbicsTypes.GeneralAccountNumber>()
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/server/NexusServer.kt
b/nexus/src/main/kotlin/tech/libeufin/nexus/server/NexusServer.kt
index 878f7e8..096ff27 100644
--- a/nexus/src/main/kotlin/tech/libeufin/nexus/server/NexusServer.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/server/NexusServer.kt
@@ -46,7 +46,6 @@ import io.ktor.response.respondText
import io.ktor.routing.*
import io.ktor.server.engine.embeddedServer
import io.ktor.server.netty.Netty
-import io.ktor.util.error
import io.ktor.utils.io.ByteReadChannel
import io.ktor.utils.io.jvm.javaio.toByteReadChannel
import io.ktor.utils.io.jvm.javaio.toInputStream
@@ -212,11 +211,8 @@ fun createLoopbackBankConnection(bankConnectionName:
String, user: NexusUserEnti
}
fun requireBankConnectionInternal(connId: String): NexusBankConnectionEntity {
- val conn = transaction { NexusBankConnectionEntity.findById(connId) }
- if (conn == null) {
- throw NexusError(HttpStatusCode.NotFound, "bank connection '$connId'
not found")
- }
- return conn
+ return transaction { NexusBankConnectionEntity.findById(connId) }
+ ?: throw NexusError(HttpStatusCode.NotFound, "bank connection
'$connId' not found")
}
fun requireBankConnection(call: ApplicationCall, parameterKey: String):
NexusBankConnectionEntity {
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [libeufin] branch master updated: Avoid stack-trace for double download of accounts.,
gnunet <=