commit aecf4112ab5d8c56a9be3a0458f227f2b61a4d2b
parent df45bda1e6fcff81f07ae1e1d322979d2eb95cbe
Author: Antoine A <>
Date: Tue, 24 Oct 2023 14:17:08 +0000
Fix some status codes
Diffstat:
3 files changed, 26 insertions(+), 29 deletions(-)
diff --git a/bank/src/main/kotlin/tech/libeufin/bank/CoreBankApi.kt b/bank/src/main/kotlin/tech/libeufin/bank/CoreBankApi.kt
@@ -109,7 +109,6 @@ private fun Routing.coreBankTokenApi(db: Database) {
}
}
-
private fun Routing.coreBankAccountsMgmtApi(db: Database, ctx: BankApplicationContext) {
post("/accounts") {
// check if only admin is allowed to create new accounts
@@ -410,7 +409,7 @@ private fun Routing.coreBankTransactionsApi(db: Database, ctx: BankApplicationCo
"Creditor account was not found",
TalerErrorCode.TALER_EC_BANK_UNKNOWN_ACCOUNT
)
- BankTransactionResult.SUCCESS -> call.respond(HttpStatusCode.OK)
+ BankTransactionResult.SUCCESS -> call.respond(HttpStatusCode.NoContent)
}
}
}
@@ -462,18 +461,18 @@ fun Routing.coreBankWithdrawalApi(db: Database, ctx: BankApplicationContext) {
post("/withdrawals/{withdrawal_id}/abort") {
val op = getWithdrawal(db, call.expectUriComponent("withdrawal_id")) // Idempotency:
if (op.aborted) {
- call.respondText("{}", ContentType.Application.Json)
+ call.respond(HttpStatusCode.NoContent)
return@post
} // Op is found, it'll now fail only if previously confirmed (DB checks).
if (!db.talerWithdrawalAbort(op.withdrawalUuid)) throw conflict(
hint = "Cannot abort confirmed withdrawal", talerEc = TalerErrorCode.TALER_EC_END
)
- call.respondText("{}", ContentType.Application.Json)
+ call.respond(HttpStatusCode.NoContent)
}
post("/withdrawals/{withdrawal_id}/confirm") {
val op = getWithdrawal(db, call.expectUriComponent("withdrawal_id")) // Checking idempotency:
if (op.confirmationDone) {
- call.respondText("{}", ContentType.Application.Json)
+ call.respond(HttpStatusCode.NoContent)
return@post
}
if (op.aborted) throw conflict(
@@ -509,9 +508,7 @@ fun Routing.coreBankWithdrawalApi(db: Database, ctx: BankApplicationContext) {
talerEc = TalerErrorCode.TALER_EC_BANK_UNKNOWN_ACCOUNT
)
WithdrawalConfirmationResult.CONFLICT -> throw internalServerError("Bank didn't check for idempotency")
- WithdrawalConfirmationResult.SUCCESS -> call.respondText(
- "{}", ContentType.Application.Json
- )
+ WithdrawalConfirmationResult.SUCCESS -> call.respond(HttpStatusCode.NoContent)
}
}
}
\ No newline at end of file
diff --git a/bank/src/test/kotlin/CoreBankApiTest.kt b/bank/src/test/kotlin/CoreBankApiTest.kt
@@ -263,7 +263,7 @@ class CoreBankAccountsMgmtApiTest {
jsonBody(json {
"payto_uri" to "payto://iban/MERCHANT-IBAN-XYZ?message=payout&amount=KUDOS:1"
})
- }.assertOk()
+ }.assertNoContent()
client.delete("/accounts/merchant") {
basicAuth("admin", "admin-password")
}.assertConflict()
@@ -272,7 +272,7 @@ class CoreBankAccountsMgmtApiTest {
jsonBody(json {
"payto_uri" to "payto://iban/EXCHANGE-IBAN-XYZ?message=payout&amount=KUDOS:1"
})
- }.assertOk()
+ }.assertNoContent()
client.delete("/accounts/merchant") {
basicAuth("admin", "admin-password")
}.assertNoContent()
@@ -496,7 +496,7 @@ class CoreBankTransactionsApiTest {
jsonBody(json {
"payto_uri" to "payto://iban/EXCHANGE-IBAN-XYZ?message=payout$it&amount=KUDOS:0.$it"
})
- }.assertOk()
+ }.assertNoContent()
}
// Gen two transactions from exchange to merchant
repeat(2) {
@@ -505,7 +505,7 @@ class CoreBankTransactionsApiTest {
jsonBody(json {
"payto_uri" to "payto://iban/MERCHANT-IBAN-XYZ?message=payout$it&amount=KUDOS:0.$it"
})
- }.assertOk()
+ }.assertNoContent()
}
// Check no useless polling
@@ -543,7 +543,7 @@ class CoreBankTransactionsApiTest {
jsonBody(json {
"payto_uri" to "payto://iban/EXCHANGE-IBAN-XYZ?message=payout_poll&amount=KUDOS:4.2"
})
- }.assertOk()
+ }.assertNoContent()
}
// Testing ranges.
@@ -553,7 +553,7 @@ class CoreBankTransactionsApiTest {
jsonBody(json {
"payto_uri" to "payto://iban/EXCHANGE-IBAN-XYZ?message=payout_range&amount=KUDOS:0.001"
})
- }.assertOk()
+ }.assertNoContent()
}
// forward range:
@@ -579,7 +579,7 @@ class CoreBankTransactionsApiTest {
"payto_uri" to "payto://iban/EXCHANGE-IBAN-XYZ?message=payout"
"amount" to "KUDOS:0.3"
})
- }.assertOk()
+ }.assertNoContent()
// Check OK
client.get("/accounts/merchant/transactions/1") {
basicAuth("merchant", "merchant-password")
@@ -612,7 +612,7 @@ class CoreBankTransactionsApiTest {
client.post("/accounts/merchant/transactions") {
basicAuth("merchant", "merchant-password")
jsonBody(valid_req)
- }.assertOk()
+ }.assertNoContent()
client.get("/accounts/merchant/transactions/1") {
basicAuth("merchant", "merchant-password")
}.assertOk().run {
@@ -626,7 +626,7 @@ class CoreBankTransactionsApiTest {
jsonBody(json {
"payto_uri" to "payto://iban/EXCHANGE-IBAN-XYZ?message=payout2&amount=KUDOS:1.05"
})
- }.assertOk()
+ }.assertNoContent()
client.get("/accounts/merchant/transactions/3") {
basicAuth("merchant", "merchant-password")
}.assertOk().run {
@@ -641,7 +641,7 @@ class CoreBankTransactionsApiTest {
"payto_uri" to "payto://iban/EXCHANGE-IBAN-XYZ?message=payout3&amount=KUDOS:1.05"
"amount" to "KUDOS:10.003"
})
- }.assertOk()
+ }.assertNoContent()
client.get("/accounts/merchant/transactions/5") {
basicAuth("merchant", "merchant-password")
}.assertOk().run {
@@ -734,9 +734,9 @@ class CoreBankWithdrawalApiTest {
val uuid = resp.taler_withdraw_uri.split("/").last()
// Check OK
- client.post("/withdrawals/$uuid/abort").assertOk()
+ client.post("/withdrawals/$uuid/abort").assertNoContent()
// Check idempotence
- client.post("/withdrawals/$uuid/abort").assertOk()
+ client.post("/withdrawals/$uuid/abort").assertNoContent()
}
// Check abort selected
@@ -754,9 +754,9 @@ class CoreBankWithdrawalApiTest {
}.assertOk()
// Check OK
- client.post("/withdrawals/$uuid/abort").assertOk()
+ client.post("/withdrawals/$uuid/abort").assertNoContent()
// Check idempotence
- client.post("/withdrawals/$uuid/abort").assertOk()
+ client.post("/withdrawals/$uuid/abort").assertNoContent()
}
// Check abort confirmed
@@ -772,7 +772,7 @@ class CoreBankWithdrawalApiTest {
"selected_exchange" to IbanPayTo("payto://iban/EXCHANGE-IBAN-XYZ")
})
}.assertOk()
- client.post("/withdrawals/$uuid/confirm").assertOk()
+ client.post("/withdrawals/$uuid/confirm").assertNoContent()
// Check error
client.post("/withdrawals/$uuid/abort").assertConflict()
@@ -787,7 +787,7 @@ class CoreBankWithdrawalApiTest {
// POST /withdrawals/withdrawal_id/confirm
@Test
- fun confirm() = bankSetup { db ->
+ fun confirm() = bankSetup { _ ->
// Check confirm created
client.post("/accounts/merchant/withdrawals") {
basicAuth("merchant", "merchant-password")
@@ -815,9 +815,9 @@ class CoreBankWithdrawalApiTest {
}.assertOk()
// Check OK
- client.post("/withdrawals/$uuid/confirm").assertOk()
+ client.post("/withdrawals/$uuid/confirm").assertNoContent()
// Check idempotence
- client.post("/withdrawals/$uuid/confirm").assertOk()
+ client.post("/withdrawals/$uuid/confirm").assertNoContent()
}
// Check confirm aborted
@@ -833,7 +833,7 @@ class CoreBankWithdrawalApiTest {
"selected_exchange" to IbanPayTo("payto://iban/EXCHANGE-IBAN-XYZ")
})
}.assertOk()
- client.post("/withdrawals/$uuid/abort").assertOk()
+ client.post("/withdrawals/$uuid/abort").assertNoContent()
// Check error
client.post("/withdrawals/$uuid/confirm").assertConflict()
diff --git a/bank/src/test/kotlin/WireGatewayApiTest.kt b/bank/src/test/kotlin/WireGatewayApiTest.kt
@@ -271,7 +271,7 @@ class WireGatewayApiTest {
}.assertOk()
client.post("/withdrawals/${uuid}/confirm") {
basicAuth("merchant", "merchant-password")
- }.assertOk()
+ }.assertNoContent()
}
// Check ignore bogus subject
@@ -356,7 +356,7 @@ class WireGatewayApiTest {
}.assertOk()
client.post("/withdrawals/${uuid}/confirm") {
basicAuth("merchant", "merchant-password")
- }.assertOk()
+ }.assertNoContent()
}
}