libeufin

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

commit 5b19ae252484010728591ffe504b1da8301b9403
parent 4810f43922486dfb56273e5b93222978fa07585e
Author: Antoine A <>
Date:   Thu, 25 Jul 2024 16:54:50 +0200

nexus: support KYC transaction in listing command

Diffstat:
Mnexus/src/main/kotlin/tech/libeufin/nexus/cli/Testing.kt | 4++--
Mnexus/src/main/kotlin/tech/libeufin/nexus/db/PaymentDAO.kt | 12++++++++++--
Mnexus/src/test/kotlin/CliTest.kt | 2++
3 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/cli/Testing.kt b/nexus/src/main/kotlin/tech/libeufin/nexus/cli/Testing.kt @@ -228,13 +228,13 @@ class ListCmd: CliktCommand("List nexus transactions", name = "list") { val txs = db.payment.metadataIncoming() Pair( listOf( - "transaction", "id", "reserve_pub", "debtor", "subject" + "transaction", "id", "talerable", "debtor", "subject" ), txs.map { listOf( "${it.date} ${it.amount}", it.id.toString(), - it.reservePub?.toString() ?: "", + it.talerable?.toString() ?: "", fmtPayto(it.debtor), 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 @@ -205,20 +205,28 @@ class PaymentDAO(private val db: Database) { ,execution_time ,debit_payto_uri ,bank_id + ,type ,reserve_public_key + ,account_pub FROM incoming_transactions LEFT OUTER JOIN talerable_incoming_transactions using (incoming_transaction_id) ORDER BY execution_time """ ) { all { + val type = it.getOptEnum<TalerIncomingType>("type") IncomingTxMetadata( date = it.getLong("execution_time").asInstant(), amount = it.getDecimal("amount"), subject = it.getString("wire_transfer_subject"), debtor = it.getString("debit_payto_uri"), id = it.getString("bank_id"), - reservePub = it.getBytes("reserve_public_key")?.run { EddsaPublicKey(this) } + talerable = when (type) { + null -> null + TalerIncomingType.reserve -> "reserve ${EddsaPublicKey(it.getBytes("reserve_public_key"))}" + TalerIncomingType.kyc -> "kyc ${EddsaPublicKey(it.getBytes("account_pub"))}" + TalerIncomingType.wad -> throw UnsupportedOperationException() + } ) } } @@ -294,7 +302,7 @@ data class IncomingTxMetadata( val subject: String, val debtor: String, val id: String?, - val reservePub: EddsaPublicKey? + val talerable: String? ) /** Outgoing transaction metadata for debugging */ diff --git a/nexus/src/test/kotlin/CliTest.kt b/nexus/src/test/kotlin/CliTest.kt @@ -152,9 +152,11 @@ class CliTest { // Check with taler transactions talerableOut(db) talerableIn(db) + talerableKycIn(db) check() // Check with null id talerableIn(db, true) + talerableKycIn(db, true) check() } } \ No newline at end of file