diff options
author | Antoine A <> | 2024-01-30 21:52:28 +0100 |
---|---|---|
committer | Antoine A <> | 2024-01-30 21:52:28 +0100 |
commit | af6b09f31537d016b45b3486e2cc815cb78e5db5 (patch) | |
tree | b85209ea9bc43b02b1d3feb7597893a2ca1bf8a5 /nexus | |
parent | 3e473d71a91f0795f585e81f83add32af3aec114 (diff) | |
download | libeufin-af6b09f31537d016b45b3486e2cc815cb78e5db5.tar.gz libeufin-af6b09f31537d016b45b3486e2cc815cb78e5db5.tar.bz2 libeufin-af6b09f31537d016b45b3486e2cc815cb78e5db5.zip |
Fix notification parsingv0.9.4-dev.8
Diffstat (limited to 'nexus')
-rw-r--r-- | nexus/src/main/kotlin/tech/libeufin/nexus/EbicsFetch.kt | 3 | ||||
-rw-r--r-- | nexus/src/main/kotlin/tech/libeufin/nexus/Iso20022.kt | 12 |
2 files changed, 7 insertions, 8 deletions
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/EbicsFetch.kt b/nexus/src/main/kotlin/tech/libeufin/nexus/EbicsFetch.kt index c2ddfbb0..62d0e8ab 100644 --- a/nexus/src/main/kotlin/tech/libeufin/nexus/EbicsFetch.kt +++ b/nexus/src/main/kotlin/tech/libeufin/nexus/EbicsFetch.kt @@ -236,9 +236,6 @@ suspend fun ingestIncomingPayment( ) { val reservePub = getTalerReservePub(payment) if (reservePub == null) { - logger.debug("Incoming payment with UID '${payment.bankId}'" + - " has invalid subject: ${payment.wireTransferSubject}." - ) val result = db.registerMalformedIncoming( payment, payment.amount, diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/Iso20022.kt b/nexus/src/main/kotlin/tech/libeufin/nexus/Iso20022.kt index 67167fa6..bd0bdcea 100644 --- a/nexus/src/main/kotlin/tech/libeufin/nexus/Iso20022.kt +++ b/nexus/src/main/kotlin/tech/libeufin/nexus/Iso20022.kt @@ -326,9 +326,11 @@ private fun notificationForEachTx( directionLambda: XmlDestructor.(Instant) -> Unit ) { destructXml(xml, "Document") { - one("BkToCstmrDbtCdtNtfctn") { - each("Ntfctn") { - each("Ntry") { + opt("BkToCstmrDbtCdtNtfctn")?.each("Ntfctn") { + each("Ntry") { + if (opt("RvslInd")?.bool() ?: false) { + logger.warn("Skip reversal transaction") + } else { one("Sts") { if (text() != "BOOK") { one("Cd") { @@ -339,8 +341,8 @@ private fun notificationForEachTx( } } } - val bookDate: Instant = one("BookgDt").one("Dt").dateTime().toInstant(ZoneOffset.UTC) - one("NtryDtls").one("TxDtls") { + val bookDate: Instant = one("BookgDt").one("Dt").date().atStartOfDay().toInstant(ZoneOffset.UTC) + one("NtryDtls").each("TxDtls") { directionLambda(this, bookDate) } } |