gnunet-svn
[Top][All Lists]
Advanced

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

[libeufin] branch master updated: Draft for /admin/statements and /admin


From: gnunet
Subject: [libeufin] branch master updated: Draft for /admin/statements and /admin/reports
Date: Fri, 21 Aug 2020 08:33:19 +0200

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

heng-yeow pushed a commit to branch master
in repository libeufin.

The following commit(s) were added to refs/heads/master by this push:
     new bcf02d0  Draft for /admin/statements and /admin/reports
bcf02d0 is described below

commit bcf02d090c17ad1f7879893631d0f890ac4d28df
Author: tanhengyeow <E0032242@u.nus.edu>
AuthorDate: Fri Aug 21 14:33:09 2020 +0800

    Draft for /admin/statements and /admin/reports
---
 .../src/main/kotlin/tech/libeufin/sandbox/JSON.kt  | 26 ++++++++++-
 .../src/main/kotlin/tech/libeufin/sandbox/Main.kt  | 51 ++++++++++++++++++++++
 2 files changed, 76 insertions(+), 1 deletion(-)

diff --git a/sandbox/src/main/kotlin/tech/libeufin/sandbox/JSON.kt 
b/sandbox/src/main/kotlin/tech/libeufin/sandbox/JSON.kt
index eeb7578..9716bc2 100644
--- a/sandbox/src/main/kotlin/tech/libeufin/sandbox/JSON.kt
+++ b/sandbox/src/main/kotlin/tech/libeufin/sandbox/JSON.kt
@@ -50,7 +50,6 @@ data class PaymentsResponse(
     val payments: MutableList<RawPayment> = mutableListOf()
 )
 
-
 /**
  * Used to create AND show one Ebics subscriber in the system.
  */
@@ -72,3 +71,28 @@ data class BankAccountRequest(
     val name: String,
     val label: String
 )
+
+data class DateRange(
+    val startDate: Long,
+    val endDate: Long
+)
+
+data class BankAccountStatements(
+    var bankAccountStatements: MutableList<BankAccountStatement> = 
mutableListOf()
+)
+
+data class BankAccountReports(
+    var bankAccountReports: MutableList<BankAccountReport> = mutableListOf()
+)
+
+data class BankAccountStatement(
+    var statementId: String,
+    var creationTime: Long,
+    var message: MutableList<String> = mutableListOf()
+)
+
+data class BankAccountReport(
+    var reportId: String,
+    var creationTime: Long,
+    val message: String
+)
diff --git a/sandbox/src/main/kotlin/tech/libeufin/sandbox/Main.kt 
b/sandbox/src/main/kotlin/tech/libeufin/sandbox/Main.kt
index 7cf2d2c..0a32c50 100644
--- a/sandbox/src/main/kotlin/tech/libeufin/sandbox/Main.kt
+++ b/sandbox/src/main/kotlin/tech/libeufin/sandbox/Main.kt
@@ -75,6 +75,7 @@ import 
tech.libeufin.sandbox.BankAccountTransactionsTable.debitorName
 import tech.libeufin.util.*
 import tech.libeufin.util.ebics_h004.EbicsResponse
 import tech.libeufin.util.ebics_h004.EbicsTypes
+import java.util.UUID
 
 class CustomerNotFound(id: String?) : Exception("Customer ${id} not found")
 class BadInputData(inputData: String?) : Exception("Customer provided invalid 
input data: ${inputData}")
@@ -382,6 +383,56 @@ fun serverMain(dbName: String) {
             post("/ebicsweb") {
                 call.ebicsweb()
             }
+            /**
+             * Shows all bank account statements.
+             */
+            get("/admin/statements") {
+                var ret = BankAccountStatement()
+                ret.creationTime = Instant.now().toEpochMilli()
+                ret.statementId = "C52-" + 
Instant.now().toEpochMilli().toHttpDateString() + "-" + 
UUID.randomUUID().toString()
+                ret.message = mutableListOf<String>()
+                transaction {
+                    BankAccountTransactionsTable.selectAll().forEach {
+                        ret.message.add(
+                            constructXml(indent = true) {
+                                root("Document") {
+                                    attribute("xmlns", 
"urn:iso:std:iso:20022:tech:xsd:camt.053.001.02")
+                                    attribute("xmlns:xsi", 
"http://www.w3.org/2001/XMLSchema-instance";)
+                                    attribute(
+                                        "xsi:schemaLocation",
+                                        
"urn:iso:std:iso:20022:tech:xsd:camt.053.001.02 camt.053.001.02.xsd"
+                                    )
+                                    element("Ntry") {
+                                        element("Amt") {
+                                            attribute("Ccy", it.currency)
+                                            text(it.amount)
+                                        }
+                                    }
+                                }
+                            }
+                        )
+                    }
+                }
+                transaction {
+                    BankAccountStatementsTable.insert {
+                        it[statementId] = ret.statementId
+                        it[creationTime] = ret.creationTime
+                        it[xmlMessage] = ret.message.toString()
+                    }
+                }
+                call.respond(ret)
+                return@get
+            }
+            /**
+             * Shows all bank account reports.
+             */
+            get("/admin/reports") {
+                val body = call.receive<DateRange>()
+                var ret = BankAccountReport()
+
+                call.respond(ret)
+                return@get
+            }
         }
     }
     LOGGER.info("Up and running")

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

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