commit dd7e83cb00544273ccd794030ccf785dfa516c49
parent 7243876ab11582fed2ae21eedb2a2807a2c19318
Author: Antoine A <>
Date: Tue, 7 May 2024 18:26:55 +0900
Improve list cmd
Diffstat:
4 files changed, 37 insertions(+), 4 deletions(-)
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/Main.kt b/nexus/src/main/kotlin/tech/libeufin/nexus/Main.kt
@@ -358,14 +358,16 @@ class ListCmd: CliktCommand("List nexus transactions", name = "list") {
val txs = db.payment.metadataOutgoing()
Pair(
listOf(
- "transaction", "id", "creditor", "subject"
+ "transaction", "id", "creditor", "wtid", "exchange URL", "subject"
),
txs.map {
listOf(
"${it.date} ${it.amount}",
it.id,
fmtPayto(it.creditor),
- it.subject ?: ""
+ it.wtid?.toString() ?: "",
+ it.exchangeBaseUrl ?: "",
+ it.subject ?: "",
)
}
)
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/db/PaymentDAO.kt b/nexus/src/main/kotlin/tech/libeufin/nexus/db/PaymentDAO.kt
@@ -225,7 +225,10 @@ class PaymentDAO(private val db: Database) {
,execution_time
,credit_payto_uri
,message_id
+ ,wtid
+ ,exchange_base_url
FROM outgoing_transactions
+ LEFT OUTER JOIN talerable_outgoing_transactions using (outgoing_transaction_id)
ORDER BY execution_time
""")
stmt.all {
@@ -234,7 +237,9 @@ class PaymentDAO(private val db: Database) {
amount = it.getDecimal("amount"),
subject = it.getString("wire_transfer_subject"),
creditor = it.getString("credit_payto_uri"),
- id = it.getString("message_id")
+ id = it.getString("message_id"),
+ wtid = it.getBytes("wtid")?.run { ShortHashCode(this) },
+ exchangeBaseUrl = it.getString("exchange_base_url")
)
}
}
@@ -289,7 +294,8 @@ data class OutgoingTxMetadata(
val subject: String?,
val creditor: String?,
val id: String,
- // TODO when merged with v11
+ val wtid: ShortHashCode?,
+ val exchangeBaseUrl: String?
)
/** Initiated metadata for debugging */
diff --git a/nexus/src/test/kotlin/CliTest.kt b/nexus/src/test/kotlin/CliTest.kt
@@ -131,4 +131,25 @@ class CliTest {
assertEquals(statusCode, result.statusCode)
}
}
+
+ /** Test list cmds */
+ @Test
+ fun listCheck() = setup { db, _ ->
+ fun check() {
+ for (list in listOf("incoming", "outgoing", "initiated")) {
+ val result = nexusCmd.test("testing list $list -c conf/test.conf")
+ assertEquals(0, result.statusCode)
+ }
+ }
+ // Check empty
+ check()
+ // Check with transactions
+ ingestIn(db)
+ ingestOut(db)
+ check()
+ // Check with taler transactions
+ talerableOut(db)
+ talerableIn(db)
+ check()
+ }
}
\ No newline at end of file
diff --git a/nexus/src/test/kotlin/helpers.kt b/nexus/src/test/kotlin/helpers.kt
@@ -157,6 +157,10 @@ suspend fun ingestIn(db: Database) {
ingestIncomingPayment(db, genInPay("ignored"), AccountType.normal)
}
+/** Ingest an outgoing transaction */
+suspend fun ingestOut(db: Database) {
+ ingestOutgoingPayment(db, genOutPay("ignored"))
+}
/* ----- Auth ----- */