gnunet-svn
[Top][All Lists]
Advanced

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

[libeufin] branch master updated: Names.


From: gnunet
Subject: [libeufin] branch master updated: Names.
Date: Wed, 29 Jan 2020 11:08:50 +0100

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

marcello pushed a commit to branch master
in repository libeufin.

The following commit(s) were added to refs/heads/master by this push:
     new db1676f  Names.
db1676f is described below

commit db1676f87dabca440bfd5350c9319d5c56b7d95e
Author: Marcello Stanisci <address@hidden>
AuthorDate: Wed Jan 29 11:07:56 2020 +0100

    Names.
    
    Calling 'account ID' the alphanumeric identifier
    used by the Nexus to point at EBICS subscribers in
    its own database.
---
 nexus/src/main/kotlin/tech/libeufin/nexus/Main.kt  |  11 +-
 .../src/main/kotlin/tech/libeufin/sandbox/Main.kt  |   3 -
 sandbox/src/main/python/libeufin-cli               | 138 ++++++++++-----------
 3 files changed, 74 insertions(+), 78 deletions(-)

diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/Main.kt 
b/nexus/src/main/kotlin/tech/libeufin/nexus/Main.kt
index e770021..42d6a8d 100644
--- a/nexus/src/main/kotlin/tech/libeufin/nexus/Main.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/Main.kt
@@ -511,14 +511,13 @@ fun main() {
                 return@get
             }
 
-            post("/ebics/subscribers") {
-
+            post("/ebics/{id}/subscribers") {
                 val body = call.receive<EbicsSubscriberInfoRequest>()
                 val pairA = CryptoUtil.generateRsaKeyPair(2048)
                 val pairB = CryptoUtil.generateRsaKeyPair(2048)
                 val pairC = CryptoUtil.generateRsaKeyPair(2048)
-                val id = transaction {
-                    EbicsSubscriberEntity.new {
+                val row = transaction {
+                    EbicsSubscriberEntity.new(id = 
expectId(call.parameters["id"])) {
                         ebicsURL = body.ebicsURL
                         hostID = body.hostID
                         partnerID = body.partnerID
@@ -527,10 +526,10 @@ fun main() {
                         signaturePrivateKey = SerialBlob(pairA.private.encoded)
                         encryptionPrivateKey = 
SerialBlob(pairB.private.encoded)
                         authenticationPrivateKey = 
SerialBlob(pairC.private.encoded)
-                    }.id.value
+                    }
                 }
                 call.respondText(
-                    "Subscriber registered, ID: ${id}",
+                    "Subscriber registered, ID: ${row.id.value}",
                     ContentType.Text.Plain,
                     HttpStatusCode.OK
                 )
diff --git a/sandbox/src/main/kotlin/tech/libeufin/sandbox/Main.kt 
b/sandbox/src/main/kotlin/tech/libeufin/sandbox/Main.kt
index 5736f63..8315435 100644
--- a/sandbox/src/main/kotlin/tech/libeufin/sandbox/Main.kt
+++ b/sandbox/src/main/kotlin/tech/libeufin/sandbox/Main.kt
@@ -320,11 +320,9 @@ fun main() {
             }
             post("/ebics/hosts") {
                 val req = call.receive<EbicsHostCreateRequest>()
-
                 val pairA = CryptoUtil.generateRsaKeyPair(2048)
                 val pairB = CryptoUtil.generateRsaKeyPair(2048)
                 val pairC = CryptoUtil.generateRsaKeyPair(2048)
-
                 transaction {
                     addLogger(StdOutSqlLogger)
                     EbicsHostEntity.new {
@@ -336,7 +334,6 @@ fun main() {
 
                     }
                 }
-
                 call.respondText(
                     "Host created.",
                     ContentType.Text.Plain,
diff --git a/sandbox/src/main/python/libeufin-cli 
b/sandbox/src/main/python/libeufin-cli
index 27ebe68..290b1ea 100755
--- a/sandbox/src/main/python/libeufin-cli
+++ b/sandbox/src/main/python/libeufin-cli
@@ -11,25 +11,18 @@ from urllib.parse import urljoin
 from getpass import getpass
 
 @click.group()
-@click.option(
-    "--nexus-base-url", default="http://localhost:5001/";,
-    help="Base URL of the nexus (defaults to http://localhost:5001/)"
-)
-@click.pass_context
-def cli(ctx, nexus_base_url):
-    ctx.obj = dict(nexus_base_url=nexus_base_url)
-
-@cli.group()
-def admin():
+def cli():
     pass
 
+@cli.group()
+@click.argument(
+    "bank-base-url"
+)
+@click.pass_context
+def admin(ctx, bank_base_url):
+    ctx.obj = dict(bank_base_url=bank_base_url)
 
 @admin.command(help="Instruct the Sandbox to create a new EBICS host ID.")
-@click.option(
-    "--sandbox-url",
-    help="URL (with path) of the Sandbox that will activate the new 
Subscriber",
-    required=True
-)
 @click.option(
     "--host-id",
     help="EBICS host ID",
@@ -40,25 +33,23 @@ def admin():
     help="EBICS version to support",
     required=True
 )
-def add_host(sandbox_url, host_id, ebics_version):
+@click.pass_obj
+def add_host(obj, host_id, ebics_version):
+    url = urljoin(obj["bank_base_url"], "/ebics/hosts")
     body = dict(
         hostId=host_id,
         ebicsVersion=ebics_version
     )
     try:
-        resp = post(sandbox_url, json=body)
+        resp = post(url, json=body)
     except Exception:
-        print("Could not reach the Sandbox")
+        print("Could not reach the Bank")
         return
 
     print(resp.content.decode("utf-8"))
 
 @admin.command(help="Instruct the Sandbox to create a new EBICS Subscriber")
-@click.option(
-    "--sandbox-url",
-    help="URL (with path) of the Sandbox that will activate the new 
Subscriber",
-    required=True
-)
+@click.pass_obj
 @click.option(
     "--user-id",
     help="EBICS user ID",
@@ -79,7 +70,7 @@ def add_host(sandbox_url, host_id, ebics_version):
     help="Name of the person associated with the user ID",
     required=True
 )
-def add_subscriber(sandbox_url, user_id, partner_id, host_id, name):
+def add_subscriber(obj, user_id, partner_id, host_id, name):
     body = dict(
             userID=user_id,
             partnerID=partner_id,
@@ -87,37 +78,41 @@ def add_subscriber(sandbox_url, user_id, partner_id, 
host_id, name):
             name=name
     )
 
+    url = urljoin(obj["bank_base_url"], "/admin/add/subscriber")
     try:
-        resp = post(sandbox_url, json=body)
-    except Exception:
-        print("Could not reach the Sandbox")
+        resp = post(url, json=body)
+    except Exception as e:
+        print(e)
         return
 
     print(resp.content.decode("utf-8"))
 
 @cli.group()
-def ebics():
-    pass
+@click.argument(
+    "nexus-base-url"
+)
+@click.pass_context
+def ebics(ctx, nexus_base_url):
+    ctx.obj = dict(nexus_base_url=nexus_base_url)
 
 @cli.group()
-@click.option(
-    "--sandbox-base-url", default="http://localhost:5000/";,
-    help="Base URL of the Sandbox (defaults to http://localhost:5000/)"
+@click.argument(
+    "bank-base-url"
 )
 @click.pass_context
-def native(ctx, sandbox_base_url):
-    ctx.obj.update(sandbox_base_url=sandbox_base_url)
+def native(ctx, bank_base_url):
+    ctx.obj.update(bank_base_url=bank_base_url)
     pass
 
 @ebics.command(help="Send the HEV message to the bank.")
 @click.pass_obj
 @click.option(
-    "--customer-id",
+    "--account-id",
     help="Customer id",
     required=True
 )
-def hev(obj, customer_id):
-    url = urljoin(obj["nexus_base_url"], 
"/ebics/{}/sendHev".format(customer_id))
+def hev(obj, account_id):
+    url = urljoin(obj["nexus_base_url"], 
"/ebics/{}/sendHev".format(account_id))
     try:
         resp = get(url)
     except Exception:
@@ -129,7 +124,7 @@ def hev(obj, customer_id):
 @ebics.command(help="Restore private keys backup.")
 @click.pass_obj
 @click.option(
-    "--customer-id",
+    "--account-id",
     help="Numerical ID of the customer at the Nexus",
     required=False,
     default=1)
@@ -138,7 +133,7 @@ def hev(obj, customer_id):
     help="File where the backup is stored",
     required=False,
     default="/tmp/backup.json")
-def restore(obj, customer_id, backup_file):
+def restore(obj, account_id, backup_file):
     try:
         backup = open(backup_file, "r")
     except Exception:
@@ -150,7 +145,7 @@ def restore(obj, customer_id, backup_file):
     passphrase = getpass("Passphrase: ")
     backup_json["passphrase"] = passphrase
 
-    url = urljoin(obj["nexus_base_url"], 
"/ebics/subscribers/{}/restoreBackup".format(customer_id))
+    url = urljoin(obj["nexus_base_url"], 
"/ebics/subscribers/{}/restoreBackup".format(account_id))
 
     try:
         response = post(url, json=backup_json)
@@ -168,7 +163,7 @@ def restore(obj, customer_id, backup_file):
 @ebics.command(help="Obtain passphrase-protected private keys")
 @click.pass_obj
 @click.option(
-    "--customer-id",
+    "--account-id",
     help="Numerical ID of the customer at the Nexus",
     required=False,
     default=1)
@@ -177,7 +172,7 @@ def restore(obj, customer_id, backup_file):
     help="File that will store the backup",
     required=False,
     default="/tmp/backup.json")
-def backup(obj, customer_id, output_file):
+def backup(obj, account_id, output_file):
     passphrase = getpass("Passphrase: ")
     passphrase_again = getpass("Passphrase (again): ")
 
@@ -185,7 +180,7 @@ def backup(obj, customer_id, output_file):
         print("Passphrase differs, exiting.")
         return
 
-    url = urljoin(obj["nexus_base_url"], 
"/ebics/subscribers/{}/backup".format(customer_id))
+    url = urljoin(obj["nexus_base_url"], 
"/ebics/subscribers/{}/backup".format(account_id))
 
     try:
         response = post(url, json=dict(passphrase=passphrase))
@@ -207,13 +202,13 @@ def backup(obj, customer_id, output_file):
 @ebics.command(help="Send TST message")
 @click.pass_obj
 @click.option(
-    "--customer-id",
+    "--account-id",
     help="Numerical ID of the customer at the Nexus",
     required=False,
     default=1)
-def tst(obj, customer_id):
+def tst(obj, account_id):
     
-    url = urljoin(obj["nexus_base_url"], 
"/ebics/subscribers/{}/sendTst".format(customer_id))
+    url = urljoin(obj["nexus_base_url"], 
"/ebics/subscribers/{}/sendTst".format(account_id))
     try:
         resp = post(url)
     except Exception:
@@ -227,13 +222,13 @@ def tst(obj, customer_id):
 @ebics.command(help="Send C52 message")
 @click.pass_obj
 @click.option(
-    "--customer-id",
+    "--account-id",
     help="Numerical ID of the customer at the Nexus",
     required=False,
     default=1)
-def c52(obj, customer_id):
+def c52(obj, account_id):
     
-    url = urljoin(obj["nexus_base_url"], 
"/ebics/subscribers/{}/sendC52".format(customer_id))
+    url = urljoin(obj["nexus_base_url"], 
"/ebics/subscribers/{}/sendC52".format(account_id))
     try:
         resp = post(url, json=dict(start="1970-01-01", end="2020-12-31"))
     except Exception:
@@ -246,13 +241,13 @@ def c52(obj, customer_id):
 @ebics.command(help="Send INI message")
 @click.pass_obj
 @click.option(
-    "--customer-id",
+    "--account-id",
     help="Numerical ID of the customer at the Nexus",
     required=False,
     default=1)
-def ini(obj, customer_id):
+def ini(obj, account_id):
     
-    url = urljoin(obj["nexus_base_url"], 
"/ebics/subscribers/{}/sendIni".format(customer_id))
+    url = urljoin(obj["nexus_base_url"], 
"/ebics/subscribers/{}/sendIni".format(account_id))
     try:
         resp = post(url)
     except Exception:
@@ -267,11 +262,11 @@ def ini(obj, customer_id):
 @ebics.command(help="Give and get keys.")
 @click.pass_context
 @click.option(
-    "--customer-id",
+    "--account-id",
     help="Numerical ID of the customer at the Nexus",
     required=False,
     default=1)
-def prepare(ctx, customer_id):
+def prepare(ctx, account_id):
     ctx.invoke(ini)
     ctx.invoke(hia)
     ctx.invoke(sync)
@@ -280,7 +275,7 @@ def prepare(ctx, customer_id):
 @ebics.command(help="Send HTD message")
 @click.pass_context
 @click.option(
-    "--customer-id",
+    "--account-id",
     help="Numerical ID of the customer at the Nexus",
     required=False,
     default=1)
@@ -289,14 +284,14 @@ def prepare(ctx, customer_id):
     help="Gets keying done before requesting HTD",
     required=False,
     default=False)
-def htd(ctx, customer_id, prepare):
+def htd(ctx, account_id, prepare):
 
     if prepare:
         ctx.invoke(ini)
         ctx.invoke(hia)
         ctx.invoke(sync)
 
-    url = urljoin(ctx.obj["nexus_base_url"], 
"/ebics/subscribers/{}/sendHtd".format(customer_id))
+    url = urljoin(ctx.obj["nexus_base_url"], 
"/ebics/subscribers/{}/sendHtd".format(account_id))
     try:
         resp = get(url)
     except Exception:
@@ -308,13 +303,13 @@ def htd(ctx, customer_id, prepare):
 @ebics.command(help="Send HIA message")
 @click.pass_obj
 @click.option(
-    "--customer-id",
+    "--account-id",
     help="Numerical ID of the customer at the Nexus",
     required=False,
     default=1)
-def hia(obj, customer_id):
+def hia(obj, account_id):
     
-    url = urljoin(obj["nexus_base_url"], 
"/ebics/subscribers/{}/sendHia".format(customer_id))
+    url = urljoin(obj["nexus_base_url"], 
"/ebics/subscribers/{}/sendHia".format(account_id))
     try:
         resp = post(url)
     except Exception:
@@ -326,13 +321,13 @@ def hia(obj, customer_id):
 @ebics.command(help="Send HPB message")
 @click.pass_obj
 @click.option(
-    "--customer-id",
+    "--account-id",
     help="Numerical ID of the customer at the Nexus",
     required=False,
     default=1)
-def sync(obj, customer_id):
+def sync(obj, account_id):
     
-    url = urljoin(obj["nexus_base_url"], 
"/ebics/subscribers/{}/sync".format(customer_id))
+    url = urljoin(obj["nexus_base_url"], 
"/ebics/subscribers/{}/sync".format(account_id))
     try:
         resp = post(url)
     except Exception:
@@ -357,6 +352,11 @@ def subscribers(obj):
 
 @ebics.command(help="Activate a new subscriber into Nexus")
 @click.pass_obj
+@click.option(
+    "--account-id",
+    help="Alphanumeric ID (at the Nexus) of the new customer",
+    required=True
+)
 @click.option(
     "--ebics-url",
     help="URL of the EBICS server",
@@ -382,8 +382,8 @@ def subscribers(obj):
     help="ID of the EBICS server" ,
     required=True
 )
-def new_subscriber(obj, user_id, partner_id, system_id, host_id, ebics_url):
-    nexus_url = urljoin(obj["nexus_base_url"], "/ebics/subscribers")
+def new_subscriber(obj, account_id, user_id, partner_id, system_id, host_id, 
ebics_url):
+    nexus_url = urljoin(obj["nexus_base_url"], 
"/ebics/{}/subscribers".format(account_id))
     body = dict(
             ebicsURL=ebics_url,
             userID=user_id,
@@ -403,7 +403,6 @@ def new_subscriber(obj, user_id, partner_id, system_id, 
host_id, ebics_url):
     print(resp.content.decode("utf-8"))
 
 @native.command(help="Ask the list of transactions related to one account")
-@click.pass_obj
 @click.option(
     "--user-id",
     help="ID of the bank customer (no EBICS correlation implied/needed)" ,
@@ -422,9 +421,10 @@ def new_subscriber(obj, user_id, partner_id, system_id, 
host_id, ebics_url):
     required=False,
     default=None
 )
+@click.pass_obj
 def history(obj, user_id, start, end):
 
-    url = urljoin(obj["sandbox_base_url"], f"/{user_id}/history")
+    url = urljoin(obj["bank_base_url"], f"/{user_id}/history")
     print(url)
     try:
         resp = post(url, json=dict(start=start, end=end))
@@ -436,16 +436,16 @@ def history(obj, user_id, start, end):
 
 
 @native.command(help="Ask the balance for a given customer of the bank")
-@click.pass_obj
 @click.option(
     "--user-id",
     help="ID of the bank customer (no EBICS correlation implied/needed)" ,
     required=False,
     default=1
 )
+@click.pass_obj
 def balance(obj, user_id):
     
-    url = urljoin(obj["sandbox_base_url"], f"/{user_id}/balance")
+    url = urljoin(obj["bank_base_url"], f"/{user_id}/balance")
     print(url)
     try:
         resp = get(url)

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



reply via email to

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