[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[libeufin] branch master updated: nexus-fetch
From: |
gnunet |
Subject: |
[libeufin] branch master updated: nexus-fetch |
Date: |
Wed, 29 Nov 2023 12:44:13 +0100 |
This is an automated email from the git hooks/post-receive script.
ms pushed a commit to branch master
in repository libeufin.
The following commit(s) were added to refs/heads/master by this push:
new 426952bf nexus-fetch
426952bf is described below
commit 426952bfd788c0cbe89287f8ae721cdf626cb2da
Author: MS <ms@taler.net>
AuthorDate: Wed Nov 29 12:42:41 2023 +0100
nexus-fetch
Renaming flags and relaxing the check over the bank keys
when --parse or --import were specified.
---
.../main/kotlin/tech/libeufin/nexus/EbicsFetch.kt | 80 ++++++++++++++--------
1 file changed, 51 insertions(+), 29 deletions(-)
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/EbicsFetch.kt
b/nexus/src/main/kotlin/tech/libeufin/nexus/EbicsFetch.kt
index 509a5493..459cbeb1 100644
--- a/nexus/src/main/kotlin/tech/libeufin/nexus/EbicsFetch.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/EbicsFetch.kt
@@ -12,7 +12,6 @@ import tech.libeufin.util.*
import tech.libeufin.util.ebics_h005.Ebics3Request
import java.io.File
import java.io.IOException
-import java.net.URLEncoder
import java.nio.file.Path
import java.time.Instant
import java.time.LocalDate
@@ -20,9 +19,7 @@ import java.time.ZoneId
import java.util.UUID
import kotlin.concurrent.fixedRateTimer
import kotlin.io.path.createDirectories
-import kotlin.math.min
import kotlin.system.exitProcess
-import kotlin.text.StringBuilder
/**
* Necessary data to perform a download.
@@ -552,11 +549,15 @@ class EbicsFetch: CliktCommand("Fetches bank records.
Defaults to camt.054 noti
" latest document is always until the current time."
)
- private val debug by option(
+ private val parse by option(
help = "Reads one ISO20022 document from STDIN and prints " +
"the parsing results. It does not affect the database."
).flag(default = false)
+ private val import by option(
+ help = "Read one ISO20022 document from STDIN and imports its content
into the database"
+ ).flag(default = false)
+
private val ebicsExtraLog by option(
help = "Logs to STDERR the init phase of an EBICS download request"
).flag(default = false)
@@ -577,7 +578,7 @@ class EbicsFetch: CliktCommand("Fetches bank records.
Defaults to camt.054 noti
val dbCfg = cfg.config.extractDbConfigOrFail()
val db = Database(dbCfg.dbConnStr)
val bankKeys = loadBankKeys(cfg.bankPublicKeysFilename) ?:
exitProcess(1)
- if (!bankKeys.accepted) {
+ if (!bankKeys.accepted && !import && !parse) {
logger.error("Bank keys are not accepted, yet. Won't fetch any
records.")
exitProcess(1)
}
@@ -593,30 +594,6 @@ class EbicsFetch: CliktCommand("Fetches bank records.
Defaults to camt.054 noti
if (onlyReports) whichDoc = SupportedDocument.CAMT_052
if (onlyStatements) whichDoc = SupportedDocument.CAMT_053
if (onlyLogs) whichDoc = SupportedDocument.PAIN_002_LOGS
-
- if (debug) {
- logger.debug("Reading from STDIN, running in debug mode. Not
involving the database.")
- val maybeStdin = generateSequence(::readLine).joinToString("\n")
- when(whichDoc) {
- SupportedDocument.CAMT_054 -> {
- try {
- println(parseIncomingTxNotif(maybeStdin, cfg.currency))
- } catch (e: WrongPaymentDirection) {
- logger.info("Input doesn't contain incoming payments")
- }
- try {
- println(parseOutgoingTxNotif(maybeStdin, cfg.currency))
- } catch (e: WrongPaymentDirection) {
- logger.debug("Input doesn't contain outgoing payments")
- }
- }
- else -> {
- logger.error("Parsing $whichDoc not supported")
- exitProcess(1)
- }
- }
- return
- }
val minAmountCfg: String? = cfg.config.lookupString(
"nexus-fetch",
"minimum_amount"
@@ -641,6 +618,51 @@ class EbicsFetch: CliktCommand("Fetches bank records.
Defaults to camt.054 noti
ebicsExtraLog,
minAmount
)
+ if (parse || import) {
+ logger.debug("Reading from STDIN, running in debug mode. Not
involving the database.")
+ val maybeStdin = generateSequence(::readLine).joinToString("\n")
+ when(whichDoc) {
+ SupportedDocument.CAMT_054 -> {
+ try {
+ val incomingTxs = parseIncomingTxNotif(maybeStdin,
cfg.currency)
+ println(incomingTxs)
+ if (import) {
+ runBlocking {
+ incomingTxs.forEach {
+ ingestIncomingPayment(db, ctx, it)
+ }
+ }
+ }
+ } catch (e: WrongPaymentDirection) {
+ logger.info("Input doesn't contain incoming payments")
+ } catch (e: Exception) {
+ logger.error(e.message)
+ exitProcess(1)
+ }
+ try {
+ val outgoingTxs = parseOutgoingTxNotif(maybeStdin,
cfg.currency)
+ println(outgoingTxs)
+ if (import) {
+ runBlocking {
+ outgoingTxs.forEach {
+ ingestOutgoingPayment(db, it)
+ }
+ }
+ }
+ } catch (e: WrongPaymentDirection) {
+ logger.debug("Input doesn't contain outgoing payments")
+ } catch (e: Exception) {
+ logger.error(e.message)
+ exitProcess(1)
+ }
+ }
+ else -> {
+ logger.error("Parsing $whichDoc not supported")
+ exitProcess(1)
+ }
+ }
+ return
+ }
if (transient) {
logger.info("Transient mode: fetching once and returning.")
val pinnedStartVal = pinnedStart
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [libeufin] branch master updated: nexus-fetch,
gnunet <=