gnunet-svn
[Top][All Lists]
Advanced

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

[libeufin] 03/05: Organize JSON types.


From: gnunet
Subject: [libeufin] 03/05: Organize JSON types.
Date: Sun, 10 May 2020 01:15:19 +0200

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

ms pushed a commit to branch master
in repository libeufin.

commit 4b42c655325ab5c69e776d7aec7cb6b2e42c79c9
Author: Marcello Stanisci <address@hidden>
AuthorDate: Sat May 9 12:26:59 2020 +0200

    Organize JSON types.
---
 nexus/src/main/kotlin/tech/libeufin/nexus/JSON.kt  | 141 ++++++++++++---------
 nexus/src/main/kotlin/tech/libeufin/nexus/Main.kt  |   6 +-
 nexus/src/main/kotlin/tech/libeufin/nexus/taler.kt |  10 +-
 3 files changed, 90 insertions(+), 67 deletions(-)

diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/JSON.kt 
b/nexus/src/main/kotlin/tech/libeufin/nexus/JSON.kt
index 4f1de25..eca9988 100644
--- a/nexus/src/main/kotlin/tech/libeufin/nexus/JSON.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/JSON.kt
@@ -72,46 +72,6 @@ data class EbicsErrorJson(
     val error: EbicsErrorDetailJson
 )
 
-data class BankAccount(
-    var holder: String,
-    var iban: String,
-    var bic: String,
-    var account: String
-)
-
-data class BankAccounts(
-    var accounts: MutableList<BankAccount> = mutableListOf()
-)
-
-/** THE NEXUS USER */
-
-/** SHOWS details about one user */
-data class NexusUser(
-    val userID: String,
-    val transports: MutableList<Any> = mutableListOf()
-)
-
-/** is "UserResponse" in the API spec */
-data class UserResponse(
-    val username: String,
-    val superuser: Boolean
-)
-
-/** Instructs the nexus to CREATE a new user */
-data class User(
-    val username: String,
-    val password: String
-)
-
-/** Collection of all the nexus users existing in the system */
-data class Users(
-    val users: MutableList<NexusUser> = mutableListOf()
-)
-
-/************************************/
-
-/** TRANSPORT TYPES */
-
 /** Instructs the nexus to CREATE a new Ebics subscriber.
  * Note that the nexus user to which the subscriber must be
  * associated is extracted from other HTTP details.
@@ -127,16 +87,39 @@ data class EbicsSubscriber(
     val systemID: String? = null
 )
 
-/** Type representing the "test" transport.  Test transport
- * does not cooperate with the bank/sandbox in order to obtain
- * data about one user.  All the data is just mocked internally
- * at the NEXUS.
- */
-class TestSubscriber()
+data class RawPayments(
+    var payments: MutableList<RawPayment> = mutableListOf()
+)
+
+/*************************************************
+ *  API types (used as requests/responses types) *
+ *************************************************/
+
+/** Response type of "GET /collected-transactions" */
+data class Transaction(
+    val account: String,
+    val counterpartIban: String,
+    val counterpartBic: String,
+    val counterpartName: String,
+    val amount: String,
+    val subject: String,
+    val date: String
+)
 
+/** Request type of "POST /prepared-payments/submit" */
+data class SubmitPayment(
+    val uuid: String,
+    val transport: String?
+)
 
-/** PAYMENT INSTRUCTIONS TYPES */
+/** Request type of "POST /collected-transactions" */
+data class CollectedTransaction(
+    val transport: String?,
+    val start: String?,
+    val end: String?
+)
 
+/** Request type of "POST /prepared-payments" */
 data class PreparedPaymentRequest(
     val iban: String,
     val bic: String,
@@ -145,34 +128,68 @@ data class PreparedPaymentRequest(
     val subject: String
 )
 
+/** Response type of "POST /prepared-payments" */
 data class PreparedPaymentResponse(
     val uuid: String
 )
 
-/** This structure is used to INSTRUCT the nexus to prepare such payment.  */
+/** Response type of "GET /user" */
+data class UserResponse(
+    val username: String,
+    val superuser: Boolean
+)
+
+/** Request type of "POST /users" */
+data class User(
+    val username: String,
+    val password: String
+)
+
+/** Response (list's element) type of "GET /bank-accounts" */
+data class BankAccount(
+    var holder: String,
+    var iban: String,
+    var bic: String,
+    var account: String
+)
+
+/** Response type of "GET /bank-accounts" */
+data class BankAccounts(
+    var accounts: MutableList<BankAccount> = mutableListOf()
+)
+
+
+/**********************************************************************
+ * Convenience types (ONLY used to gather data together in one place) *
+ **********************************************************************/
+
 data class Pain001Data(
     val creditorIban: String,
     val creditorBic: String,
     val creditorName: String,
     val debitorIban: String,
     val debitorBic: String,
-    val debitorName: String?,
+    val debitorName: String,
     val sum: Amount,
-    val currency: String = "EUR",
+    val currency: String,
     val subject: String
 )
 
-data class RawPayments(
-    var payments: MutableList<RawPayment> = mutableListOf()
-)
 
-data class SubmitPayment(
-    val uuid: String,
-    val transport: String?
-)
 
-data class CollectedTransaction(
-    val transport: String?,
-    val start: String?,
-    val end: String?
-)
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/Main.kt 
b/nexus/src/main/kotlin/tech/libeufin/nexus/Main.kt
index d330465..cdb19f7 100644
--- a/nexus/src/main/kotlin/tech/libeufin/nexus/Main.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/Main.kt
@@ -339,9 +339,13 @@ fun main() {
                 return@post
             }
             /**
-             * Queries list of transactions ALREADY downloaded from the bank.
+             * Asks list of transactions ALREADY downloaded from the bank.
              */
             get("/bank-accounts/{accountid}/collected-transactions") {
+                val userId = 
authenticateRequest(call.request.headers["Authorization"])
+                val start = call.request.queryParameters["start"]
+                val end = call.request.queryParameters["end"]
+
                 return@get
             }
             /**
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/taler.kt 
b/nexus/src/main/kotlin/tech/libeufin/nexus/taler.kt
index 1926844..766e4b4 100644
--- a/nexus/src/main/kotlin/tech/libeufin/nexus/taler.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/taler.kt
@@ -249,7 +249,8 @@ class Taler(app: Route) {
                         creditorBic = creditorData.bic,
                         creditorName = creditorData.name,
                         subject = transferRequest.wtid,
-                        sum = parseAmount(transferRequest.amount).amount,
+                        sum = amountObj.amount,
+                        currency = amountObj.currency,
                         debitorName = exchangeBankAccount.accountHolder,
                         debitorBic = exchangeBankAccount.bankCode,
                         debitorIban = exchangeBankAccount.iban
@@ -262,7 +263,7 @@ class Taler(app: Route) {
                         unstructuredRemittanceInformation = 
transferRequest.wtid
                         transactionType = "DBIT"
                         currency = amountObj.currency
-                        amount = amountObj.amount.toPlainString()
+                        this.amount = amountObj.amount.toPlainString()
                         debitorName = "Exchange Company"
                         debitorIban = exchangeBankAccount.iban
                         creditorName = creditorObj.name
@@ -319,7 +320,7 @@ class Taler(app: Route) {
                     currency = amount.currency
                     this.amount = amount.amount.toPlainString()
                     creditorIban = exchangeBankAccount.iban
-                    creditorName = exchangeBankAccount.accountHolder ?: 
"Exchange default name for tests"
+                    creditorName = exchangeBankAccount.accountHolder
                     debitorIban = debtor.iban
                     debitorName = debtor.name
                     counterpartBic = debtor.bic
@@ -376,7 +377,8 @@ class Taler(app: Route) {
                             subject = "Taler refund",
                             debitorIban = requesterBankAccount.iban,
                             debitorBic = requesterBankAccount.bankCode,
-                            debitorName = requesterBankAccount.accountHolder
+                            debitorName = requesterBankAccount.accountHolder,
+                            currency = it.payment.currency
                         ),
                         nexusUser
                     )

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



reply via email to

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