gnunet-svn
[Top][All Lists]
Advanced

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

[libeufin] 05/11: Reducing code.


From: gnunet
Subject: [libeufin] 05/11: Reducing code.
Date: Thu, 30 Apr 2020 21:46:48 +0200

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

marcello pushed a commit to branch master
in repository libeufin.

commit 9eb0e75ab5d57b61e0dd268b7f1e171134f770d5
Author: Marcello Stanisci <address@hidden>
AuthorDate: Thu Apr 30 16:32:57 2020 +0200

    Reducing code.
    
    Use only one table to map <nexus users, ebics subscribers, bank accounts>
---
 nexus/src/main/kotlin/tech/libeufin/nexus/DB.kt    | 26 +++++++---------------
 .../src/main/kotlin/tech/libeufin/nexus/Helpers.kt | 20 ++++++++---------
 nexus/src/main/kotlin/tech/libeufin/nexus/Main.kt  | 19 ++++++++--------
 nexus/src/main/kotlin/tech/libeufin/nexus/taler.kt |  3 ++-
 4 files changed, 30 insertions(+), 38 deletions(-)

diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/DB.kt 
b/nexus/src/main/kotlin/tech/libeufin/nexus/DB.kt
index 858ac50..ba22010 100644
--- a/nexus/src/main/kotlin/tech/libeufin/nexus/DB.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/DB.kt
@@ -217,26 +217,16 @@ class NexusUserEntity(id: EntityID<String>) : 
Entity<String>(id) {
     var password by NexusUsersTable.password
 }
 
-object UserToBankAccountsTable : IntIdTable() {
-    val nexusUser = reference("nexusUser", NexusUsersTable)
-    val bankAccount = reference("bankAccount", BankAccountsTable)
-}
-
-class UserToBankAccountEntity(id: EntityID<Int>): IntEntity(id) {
-    companion object : 
IntEntityClass<UserToBankAccountEntity>(UserToBankAccountsTable)
-    var nexusUser by NexusUserEntity referencedOn 
UserToBankAccountsTable.nexusUser
-    var bankAccount by BankAccountEntity referencedOn 
EbicsToBankAccountsTable.bankAccount
-}
-
-object EbicsToBankAccountsTable : IntIdTable() {
+object BankAccountMapsTable : IntIdTable() {
     val ebicsSubscriber = reference("ebicsSubscriber", EbicsSubscribersTable)
     val bankAccount = reference("bankAccount", BankAccountsTable)
+    val nexusUser = reference("nexusUser", NexusUsersTable)
 }
-
-class EbicsToBankAccountEntity(id: EntityID<Int>): IntEntity(id) {
-    companion object : 
IntEntityClass<EbicsToBankAccountEntity>(EbicsToBankAccountsTable)
-    var ebicsSubscriber by EbicsSubscriberEntity referencedOn 
EbicsToBankAccountsTable.ebicsSubscriber
-    var bankAccount by BankAccountEntity referencedOn 
EbicsToBankAccountsTable.bankAccount
+class BankAccountMapEntity(id: EntityID<Int>): IntEntity(id) {
+    companion object : 
IntEntityClass<BankAccountMapEntity>(BankAccountMapsTable)
+    var ebicsSubscriber by EbicsSubscriberEntity referencedOn 
BankAccountMapsTable.ebicsSubscriber
+    var bankAccount by BankAccountEntity referencedOn 
BankAccountMapsTable.bankAccount
+    var nexusUser by NexusUserEntity referencedOn 
BankAccountMapsTable.nexusUser
 }
 
 fun dbCreateTables() {
@@ -252,7 +242,7 @@ fun dbCreateTables() {
             TalerIncomingPayments,
             TalerRequestedPayments,
             NexusUsersTable,
-            EbicsToBankAccountsTable
+            BankAccountMapsTable
          )
     }
 }
\ No newline at end of file
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/Helpers.kt 
b/nexus/src/main/kotlin/tech/libeufin/nexus/Helpers.kt
index 78fb2f9..50018b5 100644
--- a/nexus/src/main/kotlin/tech/libeufin/nexus/Helpers.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/Helpers.kt
@@ -70,8 +70,8 @@ fun extractFirstBic(bankCodes: 
List<EbicsTypes.AbstractBankCode>?): String? {
  */
 fun getSubscriberDetailsFromBankAccount(bankAccountId: String): 
EbicsClientSubscriberDetails {
     return transaction {
-        val map = EbicsToBankAccountEntity.find {
-            EbicsToBankAccountsTable.bankAccount eq bankAccountId
+        val map = BankAccountMapEntity.find {
+            BankAccountMapsTable.bankAccount eq bankAccountId
         }.firstOrNull() ?: throw NexusError(
             HttpStatusCode.NotFound,
             "Such bank account '$bankAccountId' has no EBICS subscriber 
associated"
@@ -90,8 +90,8 @@ fun getSubscriberDetailsFromBankAccount(bankAccountId: 
String): EbicsClientSubsc
 fun getBankAccountFromNexusUserId(id: String): BankAccountEntity {
     logger.debug("Looking up bank account of user '$id'")
     val map = transaction {
-        UserToBankAccountEntity.find {
-            UserToBankAccountsTable.nexusUser eq id
+        BankAccountMapEntity.find {
+            BankAccountMapsTable.nexusUser eq id
         }
     }.firstOrNull() ?: throw NexusError(
         HttpStatusCode.NotFound,
@@ -420,9 +420,9 @@ fun authenticateRequest(authorization: String?): String {
  */
 fun subscriberHasRights(subscriber: EbicsSubscriberEntity, bankAccount: 
BankAccountEntity): Boolean {
     val row = transaction {
-        EbicsToBankAccountEntity.find {
-            EbicsToBankAccountsTable.bankAccount eq bankAccount.id and
-                    (EbicsToBankAccountsTable.ebicsSubscriber eq subscriber.id)
+        BankAccountMapEntity.find {
+            BankAccountMapsTable.bankAccount eq bankAccount.id and
+                    (BankAccountMapsTable.ebicsSubscriber eq subscriber.id)
         }.firstOrNull()
     }
     return row != null
@@ -443,9 +443,9 @@ fun getBankAccountFromIban(iban: String): BankAccountEntity 
{
 fun userHasRights(nexusUser: NexusUserEntity, iban: String): Boolean {
     val row = transaction {
         val bankAccount = getBankAccountFromIban(iban)
-        UserToBankAccountEntity.find {
-            UserToBankAccountsTable.bankAccount eq bankAccount.id and
-                    (UserToBankAccountsTable.nexusUser eq nexusUser.id)
+        BankAccountMapEntity.find {
+            BankAccountMapsTable.bankAccount eq bankAccount.id and
+                    (BankAccountMapsTable.nexusUser eq nexusUser.id)
         }.firstOrNull()
     }
     return row != null
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/Main.kt 
b/nexus/src/main/kotlin/tech/libeufin/nexus/Main.kt
index 14bd1ea..9344ed0 100644
--- a/nexus/src/main/kotlin/tech/libeufin/nexus/Main.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/Main.kt
@@ -238,15 +238,15 @@ fun main() {
                 val id = expectId(call.parameters["id"])
                 val ret = BankAccountsInfoResponse()
                 transaction {
-                    BankAccountEntity.find {
-                        UserToBankAccountsTable.nexusUser eq id
+                    BankAccountMapEntity.find {
+                        BankAccountMapsTable.nexusUser eq id
                     }.forEach {
                         ret.accounts.add(
                             BankAccountInfoElement(
-                                accountHolderName = it.accountHolder,
-                                iban = it.iban,
-                                bankCode = it.bankCode,
-                                accountId = it.id.value
+                                accountHolderName = 
it.bankAccount.accountHolder,
+                                iban = it.bankAccount.iban,
+                                bankCode = it.bankAccount.bankCode,
+                                accountId = it.bankAccount.id.value
                             )
                         )
                     }
@@ -263,8 +263,8 @@ fun main() {
                 val ret = RawPayments()
                 transaction {
                     val nexusUser = extractNexusUser(nexusUserId)
-                    val bankAccountsMap = UserToBankAccountEntity.find {
-                        UserToBankAccountsTable.nexusUser eq nexusUser.id
+                    val bankAccountsMap = BankAccountMapEntity.find {
+                        BankAccountMapsTable.nexusUser eq nexusUser.id
                     }
                     bankAccountsMap.forEach {
                         Pain001Entity.find {
@@ -760,8 +760,9 @@ fun main() {
                                     iban = 
extractFirstIban(it.accountNumberList) ?: throw 
NexusError(HttpStatusCode.NotFound, reason = "bank gave no IBAN")
                                     bankCode = 
extractFirstBic(it.bankCodeList) ?: throw NexusError(HttpStatusCode.NotFound, 
reason = "bank gave no BIC")
                                 }
-                                EbicsToBankAccountEntity.new {
+                                BankAccountMapEntity.new {
                                     ebicsSubscriber = 
getEbicsSubscriberFromUser(nexusUser)
+                                    this.nexusUser = nexusUser
                                     this.bankAccount = bankAccount
                                 }
                             }
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/taler.kt 
b/nexus/src/main/kotlin/tech/libeufin/nexus/taler.kt
index 640fce1..a5abf92 100644
--- a/nexus/src/main/kotlin/tech/libeufin/nexus/taler.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/taler.kt
@@ -547,9 +547,10 @@ class Taler(app: Route) {
                             bankCode = "localhost"
                         }
                         val nexusUser = extractNexusUser(exchangeId)
-                        EbicsToBankAccountEntity.new {
+                        BankAccountMapEntity.new {
                             bankAccount = newBankAccount
                             ebicsSubscriber = 
getEbicsSubscriberFromUser(nexusUser)
+                            this.nexusUser = 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]