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:
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)
}