libeufin

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

commit 60bdc1ccd72f1be6df506775abb227bc93c595d6
parent 69d823dc1d888a0208c5f8301db8f5c09be54f80
Author: Florian Dold <florian.dold@gmail.com>
Date:   Thu, 18 Jun 2020 20:34:26 +0530

check before double-submission

Diffstat:
Mnexus/src/main/kotlin/tech/libeufin/nexus/bankaccount/BankAccount.kt | 12+++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/bankaccount/BankAccount.kt b/nexus/src/main/kotlin/tech/libeufin/nexus/bankaccount/BankAccount.kt @@ -34,14 +34,20 @@ import java.time.Instant suspend fun submitPreparedPayment(httpClient: HttpClient, paymentInitiationId: Long) { - val type = transaction { + val r = transaction { val paymentInitiation = PaymentInitiationEntity.findById(paymentInitiationId) if (paymentInitiation == null) { throw NexusError(HttpStatusCode.NotFound, "prepared payment not found") } - paymentInitiation.bankAccount.defaultBankConnection?.type + object { + val type = paymentInitiation.bankAccount.defaultBankConnection?.type + val submitted = paymentInitiation.submitted + } + } + if (r.submitted) { + return } - when (type) { + when (r.type) { null -> throw NexusError(HttpStatusCode.NotFound, "no default bank connection") "ebics" -> submitEbicsPaymentInitiation(httpClient, paymentInitiationId) }