gnunet-svn
[Top][All Lists]
Advanced

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

[libeufin] branch master updated: set/show config values. CLI: account


From: gnunet
Subject: [libeufin] branch master updated: set/show config values. CLI: account deletion
Date: Thu, 19 May 2022 07:12:58 +0200

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

ms pushed a commit to branch master
in repository libeufin.

The following commit(s) were added to refs/heads/master by this push:
     new 135d258e set/show config values.  CLI: account deletion
135d258e is described below

commit 135d258eb3c2eac6925cfeb85d36a1f1c43d75fc
Author: ms <ms@taler.net>
AuthorDate: Thu May 19 07:10:34 2022 +0200

    set/show config values.  CLI: account deletion
---
 cli/bin/libeufin-cli                               | 20 ++++++
 .../src/main/kotlin/tech/libeufin/sandbox/Main.kt  | 79 ++++++++++++++--------
 util/src/main/kotlin/HTTP.kt                       |  3 +
 3 files changed, 72 insertions(+), 30 deletions(-)

diff --git a/cli/bin/libeufin-cli b/cli/bin/libeufin-cli
index 89037c36..43131b08 100755
--- a/cli/bin/libeufin-cli
+++ b/cli/bin/libeufin-cli
@@ -1262,6 +1262,26 @@ def sandbox_demobank_info(obj, bank_account):
         exit(1)
     tell_user(resp, withsuccess=True)
 
+@sandbox_demobank.command("delete",
+    help="""delete the bank account pointed by LIBEUFIN_SANDBOX_{USERNAME, 
PASSWORD}."""
+)
+@click.pass_obj
+def sandbox_demobank_register(obj, public, name):
+    url = obj.access_api_url ("/testing/unregister")
+    req = dict(username=obj.username, password=obj.password, isPublic=public)
+    if name != "":
+        req.update(name=name)
+    try:
+        resp = post(
+            url,
+            json=req,
+        )
+    except Exception as e:
+        print(e)
+        print("Could not reach sandbox at " + url)
+        exit(1)
+    check_response_status(resp)
+
 @sandbox_demobank.command("register",
     help="""register a new bank account.  Credentials will be taken
     from the LIBEUFIN_SANDBOX_{USERNAME, PASSWORD} env variables.  Note
diff --git a/sandbox/src/main/kotlin/tech/libeufin/sandbox/Main.kt 
b/sandbox/src/main/kotlin/tech/libeufin/sandbox/Main.kt
index 61ab39f8..a995665a 100644
--- a/sandbox/src/main/kotlin/tech/libeufin/sandbox/Main.kt
+++ b/sandbox/src/main/kotlin/tech/libeufin/sandbox/Main.kt
@@ -64,6 +64,7 @@ import io.ktor.util.*
 import io.ktor.util.date.*
 import kotlinx.coroutines.newSingleThreadContext
 import org.jetbrains.exposed.sql.*
+import org.jetbrains.exposed.sql.SqlExpressionBuilder.eq
 import org.jetbrains.exposed.sql.statements.api.ExposedBlob
 import 
org.jetbrains.exposed.sql.transactions.experimental.newSuspendedTransaction
 import org.jetbrains.exposed.sql.transactions.transaction
@@ -134,13 +135,12 @@ class Config : CliktCommand(
     }
 
     private val nameArgument by argument(
-        "NAME", help = "Name of this configuration"
+        "NAME", help = "Name of this configuration.  Currently, only 'default' 
is admitted."
     )
-    private val overrideOption by option(
-        "--override",
-        help = "Override an existing --with/--without -registrations policy." +
-                "  It has NO effect on other options"
-    ).flag("--no-override", default = false)
+    private val showOption by option(
+        "--show",
+        help = "Only show values, other options will be ignored."
+    ).flag("--no-show", default = false)
     private val currencyOption by option("--currency").default("EUR")
     private val bankDebtLimitOption by 
option("--bank-debt-limit").int().default(1000000)
     private val usersDebtLimitOption by 
option("--users-debt-limit").int().default(1000)
@@ -155,37 +155,56 @@ class Config : CliktCommand(
 
     override fun run() {
         val dbConnString = getDbConnFromEnv(SANDBOX_DB_ENV_VAR_NAME)
+        if (nameArgument != "default") {
+            println("This version admits only the 'default' name")
+            exitProcess(1)
+        }
         execThrowableOrTerminate {
             dbCreateTables(dbConnString)
             transaction {
-                val maybeDemobank = DemobankConfigEntity.find {
-                    DemobankConfigsTable.name eq nameArgument
-                }.firstOrNull()
-                if (maybeDemobank != null) {
-                    if (overrideOption) {
-                        println("Overriding the registration policy to: "
-                        + allowRegistrationsOption)
-                        maybeDemobank.allowRegistrations = 
allowRegistrationsOption
+                val maybeDemobank = 
BankAccountEntity.find(BankAccountsTable.label eq "bank").firstOrNull()
+                if (showOption) {
+                    if (maybeDemobank != null) {
+                        println(
+                            object {
+                                val currency = maybeDemobank.demoBank.currency
+                                val bankDebtLimit = 
maybeDemobank.demoBank.bankDebtLimit
+                                val usersDebtLimit = 
maybeDemobank.demoBank.usersDebtLimit
+                                val allowRegistrations = 
maybeDemobank.demoBank.allowRegistrations
+                                val name = maybeDemobank.demoBank.name // 
always 'default'
+                                val withSignupBonus = 
maybeDemobank.demoBank.withSignupBonus
+                            }
+                        )
                         return@transaction
                     }
-                    println("Error, demobank ${nameArgument} exists already, 
not overriding it.")
-                    exitProcess(1)
+                    println("Nothing to show")
+                    return@transaction
                 }
-                val demoBank = DemobankConfigEntity.new {
-                    currency = currencyOption
-                    bankDebtLimit = bankDebtLimitOption
-                    usersDebtLimit = usersDebtLimitOption
-                    allowRegistrations = allowRegistrationsOption
-                    name = nameArgument
-                    this.withSignupBonus = withSignupBonusOption
-                }
-                BankAccountEntity.new {
-                    iban = getIban()
-                    label = "bank" // used by the wire helper
-                    owner = "bank" // used by the person name finder
-                    // For now, the model assumes always one demobank
-                    this.demoBank = demoBank
+                if (maybeDemobank == null) {
+                    val demoBank = DemobankConfigEntity.new {
+                        currency = currencyOption
+                        bankDebtLimit = bankDebtLimitOption
+                        usersDebtLimit = usersDebtLimitOption
+                        allowRegistrations = allowRegistrationsOption
+                        name = nameArgument
+                        this.withSignupBonus = withSignupBonusOption
+                    }
+                    BankAccountEntity.new {
+                        iban = getIban()
+                        label = "bank" // used by the wire helper
+                        owner = "bank" // used by the person name finder
+                        // For now, the model assumes always one demobank
+                        this.demoBank = demoBank
+                    }
+                    return@transaction
                 }
+                println("Overriding existing values")
+                maybeDemobank.demoBank.currency = currencyOption
+                maybeDemobank.demoBank.bankDebtLimit = bankDebtLimitOption
+                maybeDemobank.demoBank.usersDebtLimit = usersDebtLimitOption
+                maybeDemobank.demoBank.allowRegistrations = 
allowRegistrationsOption
+                maybeDemobank.demoBank.withSignupBonus = withSignupBonusOption
+                maybeDemobank.demoBank.name = nameArgument
             }
         }
     }
diff --git a/util/src/main/kotlin/HTTP.kt b/util/src/main/kotlin/HTTP.kt
index f704f250..94ec837d 100644
--- a/util/src/main/kotlin/HTTP.kt
+++ b/util/src/main/kotlin/HTTP.kt
@@ -83,6 +83,9 @@ fun conflict(msg: String): UtilError {
 fun ApplicationRequest.getBaseUrl(): String {
     return if (this.headers.contains("X-Forwarded-Host")) {
         logger.info("Building X-Forwarded- base URL")
+        /**
+         * FIXME: should tolerate a missing X-Forwarded-Prefix.
+         */
         var prefix: String = this.headers.get("X-Forwarded-Prefix")
             ?: throw internalServerError("Reverse proxy did not define 
X-Forwarded-Prefix")
         if (!prefix.endsWith("/"))

-- 
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]