[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[libeufin] branch master updated: simplify CLI
From: |
gnunet |
Subject: |
[libeufin] branch master updated: simplify CLI |
Date: |
Tue, 06 Oct 2020 16:17:48 +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 c5e6e40 simplify CLI
c5e6e40 is described below
commit c5e6e40ae181d266759146dd8e2a4328d86ef7c4
Author: MS <ms@taler.net>
AuthorDate: Tue Oct 6 16:17:33 2020 +0200
simplify CLI
---
cli/libeufin-cli | 65 +++++++++++++++++++++++++++++++++-----------------------
1 file changed, 38 insertions(+), 27 deletions(-)
diff --git a/cli/libeufin-cli b/cli/libeufin-cli
index f2eea73..2c32c1b 100755
--- a/cli/libeufin-cli
+++ b/cli/libeufin-cli
@@ -1,5 +1,7 @@
#!/usr/bin/env python3
+import os
+import sys
import click
import json
import hashlib
@@ -9,6 +11,27 @@ from requests import post, get, auth
from urllib.parse import urljoin
from getpass import getpass
+def fetch_env():
+ try:
+ nexus_base_url = os.environ["NEXUS_BASE_URL"]
+ nexus_username = os.environ["NEXUS_USERNAME"]
+ nexus_password = os.environ["NEXUS_PASSWORD"]
+ except KeyError:
+ print(
+ "Please ensure that NEXUS_BASE_URL,"
+ " NEXUS_USERNAME, NEXUS_PASSWORD exist"
+ " in the environment"
+ )
+ sys.exit(1)
+
+ return nexus_base_url, nexus_username, nexus_password
+
+class NexusAccess:
+ def __init__(self, nexus_base_url, username, password):
+ self.nexus_base_url = nexus_base_url,
+ self.username = username
+ self.password = password
+
@click.group(help="""
General utility to invoke HTTP REST services offered by Nexus.
"""
@@ -19,11 +42,13 @@ def cli():
@cli.group()
@click.pass_context
def connections(ctx):
+ ctx.obj = NexusAccess(*fetch_env())
pass
@cli.group()
@click.pass_context
def accounts(ctx):
+ ctx.obj = NexusAccess(*fetch_env())
pass
@cli.group()
@@ -37,9 +62,8 @@ def sandbox(ctx):
@click.option("--passphrase", help="Passphrase for locking the backup",
required=True)
@click.option("--output-file", help="Where to store the backup", required=True)
@click.argument("connection-name")
-@click.argument("nexus-base-url")
@click.pass_obj
-def export_backup(obj, connection_name, nexus_user_id, nexus_password,
passphrase, output_file, nexus_base_url):
+def export_backup(obj, connection_name, nexus_user_id, nexus_password,
passphrase, output_file):
url = urljoin(nexus_base_url,
"/bank-connections/{}/export-backup".format(connection_name))
try:
resp = post(
@@ -61,9 +85,8 @@ def export_backup(obj, connection_name, nexus_user_id,
nexus_password, passphras
@click.option("--nexus-user-id", help="Nexus user ID", required=True)
@click.option("--nexus-password", help="Nexus password", required=True)
@click.argument("connection-name")
-@click.argument("nexus-base-url")
@click.pass_obj
-def delete(obj, connection_name, nexus_user_id, nexus_password,
nexus_base_url):
+def delete(obj, connection_name, nexus_user_id, nexus_password):
url = urljoin(nexus_base_url,
"/bank-connections/delete-connection".format(connection_name))
try:
@@ -84,9 +107,8 @@ def delete(obj, connection_name, nexus_user_id,
nexus_password, nexus_base_url):
@click.option("--backup-file", help="Back file", required=True)
@click.option("--passphrase", help="Passphrase for locking the backup",
required=True)
@click.argument("connection-name")
-@click.argument("nexus-base-url")
@click.pass_obj
-def restore_backup(obj, backup_file, passphrase, nexus_base_url,
nexus_user_id, nexus_password, connection_name):
+def restore_backup(obj, backup_file, passphrase, nexus_user_id,
nexus_password, connection_name):
url = urljoin(nexus_base_url, "/bank-connections")
try:
backup = open(backup_file, "r")
@@ -124,10 +146,9 @@ def restore_backup(obj, backup_file, passphrase,
nexus_base_url, nexus_user_id,
@click.option("--nexus-user-id", help="Nexus user ID", required=True)
@click.option("--nexus-password", help="Nexus password", required=True)
@click.argument("connection-name")
-@click.argument("nexus-base-url")
@click.pass_obj
def new_ebics_connection(obj, connection_name, ebics_url, host_id, partner_id,
- nexus_user_id, nexus_password, nexus_base_url,
ebics_user_id):
+ nexus_user_id, nexus_password, ebics_user_id):
url = urljoin(nexus_base_url, "/bank-connections")
body = dict(
name=connection_name,
@@ -146,9 +167,8 @@ def new_ebics_connection(obj, connection_name, ebics_url,
host_id, partner_id,
@click.option("--nexus-user-id", help="Nexus user ID", required=True)
@click.option("--nexus-password", help="Nexus password", required=True)
@click.argument("connection-name")
-@click.argument("nexus-base-url")
@click.pass_obj
-def sync(obj, connection_name, nexus_user_id, nexus_password, nexus_base_url):
+def sync(obj, connection_name, nexus_user_id, nexus_password):
url = urljoin(nexus_base_url,
"/bank-connections/{}/connect".format(connection_name))
try:
resp = post(url, json=dict(), auth = auth.HTTPBasicAuth(nexus_user_id,
nexus_password))
@@ -163,9 +183,8 @@ def sync(obj, connection_name, nexus_user_id,
nexus_password, nexus_base_url):
@click.option("--offered-account-id", help="Name of the account to import",
required=True)
@click.option("--nexus-bank-account-id", help="Name to give to the imported
account", required=True)
@click.argument("connection-name")
-@click.argument("nexus-base-url")
@click.pass_obj
-def import_bank_account(obj, connection_name, nexus_user_id, nexus_password,
nexus_base_url, offered_account_id, nexus_bank_account_id):
+def import_bank_account(obj, connection_name, nexus_user_id, nexus_password,
offered_account_id, nexus_bank_account_id):
url = urljoin(nexus_base_url,
"/bank-connections/{}/import-account".format(connection_name))
try:
resp = post(
@@ -186,10 +205,8 @@ def import_bank_account(obj, connection_name,
nexus_user_id, nexus_password, nex
@click.option("--nexus-user-id", help="Nexus user ID", required=True)
@click.option("--nexus-password", help="Nexus password", required=True)
@click.argument("connection-name")
-@click.argument("nexus-base-url")
@click.pass_obj
-def download_bank_accounts(obj, connection_name, nexus_user_id,
nexus_password, nexus_base_url):
- # FIXME/NOTE: the 'ebics' part will soon go away.
+def download_bank_accounts(obj, connection_name, nexus_user_id,
nexus_password):
url = urljoin(nexus_base_url,
"/bank-connections/{}/fetch-accounts".format(connection_name))
try:
resp = post(url, json=dict(), auth = auth.HTTPBasicAuth(nexus_user_id,
nexus_password))
@@ -201,8 +218,7 @@ def download_bank_accounts(obj, connection_name,
nexus_user_id, nexus_password,
@connections.command(help="list the connections")
@click.option("--nexus-user-id", help="Nexus user ID", required=True)
@click.option("--nexus-password", help="Nexus password", required=True)
-@click.argument("nexus-base-url")
-def list_connections(nexus_user_id, nexus_password, nexus_base_url):
+def list_connections(nexus_user_id, nexus_password):
url = urljoin(nexus_base_url, "/bank-connections/")
try:
resp = get(url, json=dict(), auth = auth.HTTPBasicAuth(nexus_user_id,
nexus_password))
@@ -215,9 +231,8 @@ def list_connections(nexus_user_id, nexus_password,
nexus_base_url):
@click.option("--nexus-user-id", help="Nexus user ID", required=True)
@click.option("--nexus-password", help="Nexus password", required=True)
@click.argument("connection-name")
-@click.argument("nexus-base-url")
@click.pass_obj
-def list_offered_bank_accounts(obj, connection_name, nexus_user_id,
nexus_password, nexus_base_url):
+def list_offered_bank_accounts(obj, connection_name, nexus_user_id,
nexus_password):
url = urljoin(nexus_base_url,
"/bank-connections/{}/accounts".format(connection_name))
try:
resp = get(url, json=dict(), auth = auth.HTTPBasicAuth(nexus_user_id,
nexus_password))
@@ -235,10 +250,9 @@ def list_offered_bank_accounts(obj, connection_name,
nexus_user_id, nexus_passwo
@click.option("--nexus-user-id", help="Nexus user ID", required=True)
@click.option("--nexus-password", help="Nexus password", required=True)
@click.argument("account-name")
-@click.argument("nexus-base-url")
@click.pass_obj
def prepare_payment(obj, account_name, credit_iban, credit_bic, credit_name,
- nexus_user_id, nexus_password, nexus_base_url,
payment_amount, payment_subject):
+ nexus_user_id, nexus_password, payment_amount,
payment_subject):
url = urljoin(nexus_base_url,
"/bank-accounts/{}/prepared-payments".format(account_name))
body = dict(
iban=credit_iban,
@@ -260,9 +274,8 @@ def prepare_payment(obj, account_name, credit_iban,
credit_bic, credit_name,
@click.option("--nexus-user-id", help="nexus user id", required=True)
@click.option("--nexus-password", help="nexus user password", required=True)
@click.argument("account-name")
-@click.argument("nexus-base-url")
@click.pass_obj
-def submit_payment(obj, account_name, payment_uuid, nexus_user_id,
nexus_password, nexus_base_url):
+def submit_payment(obj, account_name, payment_uuid, nexus_user_id,
nexus_password):
url = urljoin(
nexus_base_url,
"/bank-accounts/{}/prepared-payments/{}/submit".format(account_name,
payment_uuid)
)
@@ -277,9 +290,8 @@ def submit_payment(obj, account_name, payment_uuid,
nexus_user_id, nexus_passwor
@click.option("--nexus-user-id", help="nexus user id", required=True)
@click.option("--nexus-password", help="nexus user password", required=True)
@click.argument("account-name")
-@click.argument("nexus-base-url")
@click.pass_obj
-def fetch_transactions(obj, account_name, nexus_user_id, nexus_password,
nexus_base_url):
+def fetch_transactions(obj, account_name, nexus_user_id, nexus_password):
url = urljoin(
nexus_base_url,
"/bank-accounts/{}/fetch-transactions".format(account_name)
)
@@ -294,9 +306,8 @@ def fetch_transactions(obj, account_name, nexus_user_id,
nexus_password, nexus_b
@click.option("--nexus-user-id", help="nexus user id", required=True)
@click.option("--nexus-password", help="nexus user password", required=True)
@click.argument("account-name")
-@click.argument("nexus-base-url")
@click.pass_obj
-def transactions(obj, account_name, nexus_user_id, nexus_password,
nexus_base_url):
+def transactions(obj, account_name, nexus_user_id, nexus_password):
url = urljoin(nexus_base_url,
"/bank-accounts/{}/transactions".format(account_name))
try:
resp = get(url, auth = auth.HTTPBasicAuth(nexus_user_id,
nexus_password))
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.