commit 683b4754d05f9f762dcaf736df4fcb11ce2e60eb
parent 198360b2b9957775994b4458f9dd97c6c9edacfe
Author: MS <ms@taler.net>
Date: Thu, 28 May 2020 14:40:43 +0200
Add "facade info" object, both at DB and as JSON.
Diffstat:
3 files changed, 47 insertions(+), 3 deletions(-)
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/DB.kt b/nexus/src/main/kotlin/tech/libeufin/nexus/DB.kt
@@ -8,6 +8,8 @@ import org.jetbrains.exposed.sql.StdOutSqlLogger
import org.jetbrains.exposed.sql.addLogger
import org.jetbrains.exposed.sql.transactions.TransactionManager
import org.jetbrains.exposed.sql.transactions.transaction
+import tech.libeufin.nexus.NexusBankConnectionsTable.entityId
+import tech.libeufin.nexus.NexusBankConnectionsTable.primaryKey
import tech.libeufin.util.EbicsInitState
import tech.libeufin.util.amount
import java.sql.Connection
@@ -269,6 +271,31 @@ class NexusBankConnectionEntity(id: EntityID<String>) : Entity<String>(id) {
var owner by NexusUserEntity referencedOn NexusBankConnectionsTable.owner
}
+object FacadesTable : IdTable<String>() {
+ override val id = NexusBankConnectionsTable.text("id").entityId().primaryKey()
+ val name = text("name")
+ val type = text("type")
+ val creator = reference("creator", NexusUsersTable)
+ val bankAccountsRead = text("bankAccountsRead")
+ val bankAccountsWrite = text("bankAccountsWrite")
+ val bankConnectionsRead = text("bankConnectionsRead")
+ val bankConnectionsWrite = text("bankConnectionsWrite")
+ val config = blob("config")
+}
+
+class FacadeEntity(id: EntityID<String>) : Entity<String>(id) {
+ companion object : EntityClass<String, FacadeEntity>(FacadesTable)
+ var name by FacadesTable.name
+ var type by FacadesTable.type
+ var creator by NexusUserEntity referencedOn FacadesTable.creator
+ var bankAccountsRead by FacadesTable.bankAccountsRead
+ var bankAccountsWrite by FacadesTable.bankAccountsWrite
+ var bankConnectionsRead by FacadesTable.bankConnectionsRead
+ var bankConnectionsWrite by FacadesTable.bankConnectionsWrite
+ var config by FacadesTable.config
+}
+
+
fun dbCreateTables(dbName: String) {
Database.connect("jdbc:sqlite:${dbName}", "org.sqlite.JDBC")
TransactionManager.manager.defaultIsolationLevel = Connection.TRANSACTION_SERIALIZABLE
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/JSON.kt b/nexus/src/main/kotlin/tech/libeufin/nexus/JSON.kt
@@ -253,6 +253,17 @@ data class BankMessageInfo(
val length: Long
)
+data class FacadeInfo(
+ val name: String,
+ val type: String,
+ val creator: String,
+ val bankAccountsRead: MutableList<String> = mutableListOf(),
+ val bankAccountsWrite: MutableList<String> = mutableListOf(),
+ val bankConnectionsRead: MutableList<String> = mutableListOf(),
+ val bankConnectionsWrite: MutableList<String> = mutableListOf(),
+ val config: Any
+)
+
/**********************************************************************
* Convenience types (ONLY used to gather data together in one place) *
**********************************************************************/
@@ -267,6 +278,3 @@ data class Pain001Data(
)
-
-
-
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/Main.kt b/nexus/src/main/kotlin/tech/libeufin/nexus/Main.kt
@@ -947,6 +947,15 @@ fun serverMain(dbName: String) {
}
}
}
+ post("/facades") {
+ val body = call.receive<FacadeInfo>()
+ /**
+ * db work here.
+ */
+
+ call.respondText("Facade created")
+ return@post
+ }
/**
* Hello endpoint.