gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[libeufin] branch master updated: Fill camt.053 with mock data.


From: gnunet
Subject: [libeufin] branch master updated: Fill camt.053 with mock data.
Date: Tue, 24 Mar 2020 15:43:36 +0100

This is an automated email from the git hooks/post-receive script.

marcello pushed a commit to branch master
in repository libeufin.

The following commit(s) were added to refs/heads/master by this push:
     new 0b64117  Fill camt.053 with mock data.
0b64117 is described below

commit 0b6411791fdb13f226d6bbe8546b141cba86a1eb
Author: Marcello Stanisci <address@hidden>
AuthorDate: Tue Mar 24 15:43:09 2020 +0100

    Fill camt.053 with mock data.
---
 .../tech/libeufin/sandbox/EbicsProtocolBackend.kt  | 117 ++++++++++++++++-----
 util/src/main/kotlin/time.kt                       |  18 ++++
 2 files changed, 107 insertions(+), 28 deletions(-)

diff --git 
a/sandbox/src/main/kotlin/tech/libeufin/sandbox/EbicsProtocolBackend.kt 
b/sandbox/src/main/kotlin/tech/libeufin/sandbox/EbicsProtocolBackend.kt
index 98a3fdd..69bb144 100644
--- a/sandbox/src/main/kotlin/tech/libeufin/sandbox/EbicsProtocolBackend.kt
+++ b/sandbox/src/main/kotlin/tech/libeufin/sandbox/EbicsProtocolBackend.kt
@@ -54,6 +54,9 @@ import org.joda.time.DateTime
 import org.joda.time.Instant
 import java.io.BufferedInputStream
 import java.io.ByteArrayInputStream
+import java.time.ZoneId
+import java.time.ZonedDateTime
+import java.time.format.DateTimeFormatter
 import javax.xml.datatype.XMLGregorianCalendar
 
 
@@ -171,6 +174,8 @@ fun buildCamtString(history: 
SizedIterable<BankTransactionEntity>, type: Int): S
      * - Id of the servicer (Issuer and Code)
      */
 
+    val now = DateTime.now()
+
     return constructXml(indent = true) {
         root("Document") {
             attribute("xmlns", 
"urn:iso:std:iso:20022:tech:xsd:camt.053.001.08")
@@ -178,8 +183,12 @@ fun buildCamtString(history: 
SizedIterable<BankTransactionEntity>, type: Int): S
             attribute("xmlns:schemaLocation", 
"urn:iso:std:iso:20022:tech:xsd:camt.053.001.02 camt.053.001.02.xsd")
             element("BkToCstmrStmt") {
                 element("GrpHdr") {
-                    element("MsgId")
-                    element("CreDtTm")
+                    element("MsgId") {
+                        text("0")
+                    }
+                    element("CreDtTm") {
+                        text(now.toZonedString())
+                    }
                     element("MsgPgntn") {
                         element("PgNb") {
                             text("001")
@@ -193,7 +202,9 @@ fun buildCamtString(history: 
SizedIterable<BankTransactionEntity>, type: Int): S
                     element("Id")
                     element("ElctrncSeqNb")
                     element("LglSeqNb")
-                    element("CreDtTm")
+                    element("CreDtTm") {
+                        text(now.toZonedString())
+                    }
 
                     element("Acct") {
                         // mandatory account identifier
@@ -224,10 +235,12 @@ fun buildCamtString(history: 
SizedIterable<BankTransactionEntity>, type: Int): S
                             text(Amount(1).toPlainString())
                         }
                         element("CdtDbtInd") {
+                            text("DBIT")
                             // CRDT or DBIT here
                         }
                         element("Dt/Dt") {
                             // date of this balance
+                            now.toDashedDate()
                         }
                     }
 
@@ -244,42 +257,66 @@ fun buildCamtString(history: 
SizedIterable<BankTransactionEntity>, type: Int): S
                         }
                         element("CdtDbtInd") {
                             // CRDT or DBIT here
+                            text("DBIT")
+                        }
+                        element("Dt/Dt") {
+                            text(now.toDashedDate())
                         }
-                        element("Dt/Dt")
                     }
                     history.forEach {
                         element("Ntry") {
                             element("Amt")
-                            element("CdtDbtInd")
+                            element("CdtDbtInd") {
+                                text("DBIT")
+                            }
                             element("Sts") {
                                 /* Status of the entry (see 2.4.2.15.5 from 
the ISO20022 reference document.)
                                  * From the original text:
                                  * "Status of an entry on the books of the 
account servicer" */
                                 text("BOOK")
-
                             }
-                            element("BookDt/Dt") // date of the booking
-                            element("ValDt/Dt") // date of assets' actual 
(un)availability
-                            element("AcctSvcrRef")
+                            element("BookDt/Dt") {
+                                text(now.toDashedDate())
+                            } // date of the booking
+                            element("ValDt/Dt") {
+                                text(now.toDashedDate())
+                            } // date of assets' actual (un)availability
+                            element("AcctSvcrRef") {
+                                text("0")
+                            }
                             element("BkTxCd") {
                                 /*  "Set of elements used to fully identify 
the type of underlying
                                  *   transaction resulting in an entry".  */
                                 element("Domn") {
-                                    element("Cd")
+                                    element("Cd") {
+                                        text("PMNT")
+                                    }
                                     element("Fmly") {
-                                        element("Cd")
-                                        element("SubFmlyCd")
+                                        element("Cd") {
+                                            text("ICDT")
+                                        }
+                                        element("SubFmlyCd") {
+                                            text("ESCT")
+                                        }
                                     }
                                     element("Prtry") {
-                                        element("Cd")
-                                        element("Issr")
+                                        element("Cd") {
+                                            text("0")
+                                        }
+                                        element("Issr") {
+                                            text("XY")
+                                        }
                                     }
                                 }
                             }
                             element("NtryDtls/TxDtls") {
                                 element("Refs") {
-                                    element("MsgId")
-                                    element("PmtInfId")
+                                    element("MsgId") {
+                                        text("0")
+                                    }
+                                    element("PmtInfId") {
+                                        text("0")
+                                    }
                                     element("EndToEndId") {
                                         text("NOTPROVIDED")
                                     }
@@ -290,29 +327,53 @@ fun buildCamtString(history: 
SizedIterable<BankTransactionEntity>, type: Int): S
                                 }
                                 element("BkTxCd") {
                                     element("Domn") {
-                                        element("Cd")
+                                        element("Cd") {
+                                            text("PMNT")
+                                        }
                                         element("Fmly") {
-                                            element("Cd")
-                                            element("SubFmlyCd")
+                                            element("Cd") {
+                                                text("ICDT")
+                                            }
+                                            element("SubFmlyCd") {
+                                                text("ESCT")
+                                            }
                                         }
                                     }
                                     element("Prtry") {
-                                        element("Cd")
-                                        element("Issr")
+                                        element("Cd") {
+                                            text("0")
+                                        }
+                                        element("Issr") {
+                                            text("XY")
+                                        }
                                     }
                                 }
                                 element("RltdPties") {
-                                    element("Dbtr/Nm")
-                                    element("DbtrAcct/Id/IBAN")
-                                    element("Cdtr/Nm")
-                                    element("CdtrAcct/Id/IBAN")
+                                    element("Dbtr/Nm") {
+                                        text("Max Mustermann")
+                                    }
+                                    element("DbtrAcct/Id/IBAN") {
+                                        text("DEBITOR'S IBAN")
+                                    }
+                                    element("Cdtr/Nm") {
+                                        text("Lina Musterfrau")
+                                    }
+                                    element("CdtrAcct/Id/IBAN") {
+                                        text("CREDITOR'S IBAN")
+                                    }
                                 }
                                 element("RltdAgts") {
-                                    element("CdtrAgt/FinInstnId/BIC")
+                                    element("CdtrAgt/FinInstnId/BIC") {
+                                        text("CREDITOR'S BIC")
+                                    }
+                                }
+                                element("RmtInf/Ustrd") {
+                                    text("made up subject")
                                 }
-                                element("RmtInf/Ustrd")
                             }
-                            element("AddtlNtryInf")
+                            element("AddtlNtryInf") {
+                                text("additional information not given")
+                            }
                         }
                     }
                 }
diff --git a/util/src/main/kotlin/time.kt b/util/src/main/kotlin/time.kt
new file mode 100644
index 0000000..1173ffd
--- /dev/null
+++ b/util/src/main/kotlin/time.kt
@@ -0,0 +1,18 @@
+package tech.libeufin.util
+
+import org.joda.time.DateTime
+import java.time.ZoneId
+import java.time.ZonedDateTime
+import java.time.format.DateTimeFormatter
+
+
+fun DateTime.toZonedString(): String {
+    val dateFormatter = DateTimeFormatter.ISO_OFFSET_DATE_TIME
+    val instant = java.time.Instant.ofEpochSecond(this.millis)
+    val zoned = ZonedDateTime.ofInstant(instant, ZoneId.systemDefault())
+    return dateFormatter.format(zoned)
+}
+
+fun DateTime.toDashedDate(): String {
+    return this.toString("Y-MM-dd")
+}

-- 
To stop receiving notification emails like this one, please contact
address@hidden.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]