libeufin

Integration and sandbox testing for FinTech APIs and data formats
Log | Files | Refs | Submodules | README | LICENSE

commit 5975094156d254fdc44db3e3cab7f80b2b9a9e5f
parent d77a6509fc46db99387541a27ffb30ca1679c8b6
Author: MS <ms@taler.net>
Date:   Tue, 10 Nov 2020 17:08:10 +0100

address #6257

Diffstat:
Mcli/libeufin-cli | 39++++++++++++++++++++-------------------
Mcli/setup-template.sh | 19++++++++-----------
2 files changed, 28 insertions(+), 30 deletions(-)

diff --git a/cli/libeufin-cli b/cli/libeufin-cli @@ -17,18 +17,19 @@ def fetch_env(): try: nexus_base_url = os.environ["NEXUS_BASE_URL"] nexus_username = os.environ["NEXUS_USERNAME"] - obj.nexus_password = os.environ["NEXUS_PASSWORD"] + 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=None, username=None, password=None): - self.nexus_base_url = nexus_base_url, + self.nexus_base_url = nexus_base_url self.username = username self.password = password @@ -72,7 +73,7 @@ def export_backup(obj, connection_name, passphrase, output_file): auth=auth.HTTPBasicAuth(obj.nexus_user_id, obj.nexus_password) ) except Exception: - print("Could not reach nexus") + print("Could not reach nexus at " + url) exit(1) output = open(output_file, "w+") @@ -95,7 +96,7 @@ def delete(obj, connection_name): auth=auth.HTTPBasicAuth(obj.nexus_user_id, obj.nexus_password) ) except Exception: - print("Could not reach nexus") + print("Could not reach nexus at " + url) exit(1) print(resp.content.decode("utf-8")) @@ -129,7 +130,7 @@ def restore_backup(obj, backup_file, passphrase, connection_name): ) except Exception: - print("Could not reach nexus") + print("Could not reach nexus at " + url) exit(1) print(resp.content.decode("utf-8")) @@ -144,7 +145,7 @@ def restore_backup(obj, backup_file, passphrase, connection_name): @click.pass_obj def new_ebics_connection(obj, connection_name, ebics_url, host_id, partner_id, ebics_user_id): - url = urljoin(nexus_base_url, "/bank-connections") + url = urljoin(obj.nexus_base_url, "/bank-connections") body = dict( name=connection_name, source="new", @@ -152,9 +153,9 @@ def new_ebics_connection(obj, connection_name, ebics_url, host_id, partner_id, data=dict(ebicsURL=ebics_url, hostID=host_id, partnerID=partner_id, userID=ebics_user_id) ) try: - resp = post(url, json=body, auth=auth.HTTPBasicAuth(obj.nexus_user_id, obj.nexus_password)) + resp = post(url, json=body, auth=auth.HTTPBasicAuth(obj.username, obj.password)) except Exception: - print("Could not reach nexus") + print(f"Could not reach nexus at {url}: {resp.json()}") exit(1) print(resp.content.decode("utf-8")) @@ -162,11 +163,11 @@ def new_ebics_connection(obj, connection_name, ebics_url, host_id, partner_id, @click.argument("connection-name") @click.pass_obj def sync(obj, connection_name): - url = urljoin(nexus_base_url, "/bank-connections/{}/connect".format(connection_name)) + url = urljoin(obj.nexus_base_url, f"/bank-connections/{connection_name}/connect") try: - resp = post(url, json=dict(), auth = auth.HTTPBasicAuth(obj.nexus_user_id, obj.nexus_password)) + resp = post(url, json=dict(), auth = auth.HTTPBasicAuth(obj.username, obj.password)) except Exception: - print("Could not reach nexus") + print(f"Could not reach nexus at {url}") return print(resp.content.decode("utf-8")) @@ -188,7 +189,7 @@ def import_bank_account(obj, connection_name, offered_account_id, nexus_bank_acc ) except Exception as ee: print(ee) - print("Could not reach nexus") + print("Could not reach nexus at " + url) return print(resp.content.decode("utf-8")) @@ -200,7 +201,7 @@ def download_bank_accounts(obj, connection_name): try: resp = post(url, json=dict(), auth = auth.HTTPBasicAuth(obj.nexus_user_id, obj.nexus_password)) except Exception: - print("Could not reach nexus") + print("Could not reach nexus at " + url) return print(resp.content.decode("utf-8")) @@ -210,7 +211,7 @@ def list_connections(): try: resp = get(url, json=dict(), auth = auth.HTTPBasicAuth(obj.nexus_user_id, obj.nexus_password)) except Exception: - print("Could not reach nexus") + print("Could not reach nexus at " + url) return print(resp.content.decode("utf-8")) @@ -222,7 +223,7 @@ def list_offered_bank_accounts(obj, connection_name): try: resp = get(url, json=dict(), auth = auth.HTTPBasicAuth(obj.nexus_user_id, obj.nexus_password)) except Exception: - print("Could not reach nexus") + print("Could not reach nexus at " + url) return print(resp.content.decode("utf-8")) @@ -248,7 +249,7 @@ def prepare_payment(obj, account_name, credit_iban, credit_bic, credit_name, try: resp = post(url, json=body, auth = auth.HTTPBasicAuth(obj.nexus_user_id, obj.nexus_password)) except Exception: - print("Could not reach nexus") + print("Could not reach nexus at " + url) return print(resp.content.decode("utf-8")) @@ -263,7 +264,7 @@ def submit_payment(obj, account_name, payment_uuid): try: resp = post(url, json=dict(), auth = auth.HTTPBasicAuth(obj.nexus_user_id, obj.nexus_password)) except Exception: - print("Could not reach nexus") + print("Could not reach nexus at" + url) return print(resp.content.decode("utf-8")) @@ -277,7 +278,7 @@ def fetch_transactions(obj, account_name): try: resp = post(url, auth = auth.HTTPBasicAuth(obj.nexus_user_id, obj.nexus_password)) except Exception: - print("Could not reach nexus") + print("Could not reach nexus " + url) return print(resp.content.decode("utf-8")) @@ -289,7 +290,7 @@ def transactions(obj, account_name): try: resp = get(url, auth = auth.HTTPBasicAuth(obj.nexus_user_id, obj.nexus_password)) except Exception: - print("Could not reach nexus") + print("Could not reach nexus " + url) return print(resp.content.decode("utf-8")) diff --git a/cli/setup-template.sh b/cli/setup-template.sh @@ -3,8 +3,9 @@ # Such template sets an env up using the Python CLI. # The setup goes until exchanging keys with the sandbox. -set -e +set -eu +SANDBOX_URL="http://localhost:5000" EBICS_HOST_ID=ebicshost EBICS_PARTNER_ID=ebicspartner EBICS_USER_ID=ebicsuser @@ -24,6 +25,10 @@ if test -z $1; then exit 1 fi +export NEXUS_BASE_URL="http://localhost:5001/" +export NEXUS_USERNAME=$NEXUS_USER +export NEXUS_PASSWORD=$NEXUS_PASSWORD + ########## setup sandbox ############# # make ebics host at sandbox @@ -73,22 +78,14 @@ echo Creating a bank connection for such user ./libeufin-cli \ connections \ new-ebics-connection \ - --connection-name $NEXUS_BANK_CONNECTION_NAME \ --ebics-url $EBICS_BASE_URL \ --host-id $EBICS_HOST_ID \ --partner-id $EBICS_PARTNER_ID \ --ebics-user-id $EBICS_USER_ID \ - --nexus-user-id $NEXUS_USER \ - --nexus-password $NEXUS_PASSWORD \ - $NEXUS_URL > /dev/null + $NEXUS_BANK_CONNECTION_NAME > /dev/null sleep 2 # Bootstrapping such connection echo Bootstrapping the bank connection ./libeufin-cli \ - connections \ - bootstrap-connection \ - --connection-name $NEXUS_BANK_CONNECTION_NAME \ - --nexus-user-id $NEXUS_USER \ - --nexus-password $NEXUS_PASSWORD \ - $NEXUS_URL > /dev/null + connections sync $NEXUS_BANK_CONNECTION_NAME > /dev/null