libeufin

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

commit dd7e83cb00544273ccd794030ccf785dfa516c49
parent 7243876ab11582fed2ae21eedb2a2807a2c19318
Author: Antoine A <>
Date:   Tue,  7 May 2024 18:26:55 +0900

Improve list cmd

Diffstat:
Mnexus/src/main/kotlin/tech/libeufin/nexus/Main.kt | 6++++--
Mnexus/src/main/kotlin/tech/libeufin/nexus/db/PaymentDAO.kt | 10++++++++--
Mnexus/src/test/kotlin/CliTest.kt | 21+++++++++++++++++++++
Mnexus/src/test/kotlin/helpers.kt | 4++++
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 ----- */