libeufin

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

commit 011c5f16fa75fba2df729e4717b308ceaecfebd7
parent 00b2a27a58719ac7e02ce3d3019f866bb9195a48
Author: MS <ms@taler.net>
Date:   Thu, 25 Jun 2020 07:21:26 +0200

fix missing db table

Diffstat:
Mcli/libeufin-cli-new | 52+++++++++++++++++++---------------------------------
Mcli/setup-template.sh | 9++++-----
Mnexus/src/main/kotlin/tech/libeufin/nexus/DB.kt | 3++-
3 files changed, 25 insertions(+), 39 deletions(-)

diff --git a/cli/libeufin-cli-new b/cli/libeufin-cli-new @@ -142,16 +142,21 @@ def bootstrap_bank_connection(obj, connection_name, nexus_user_id, nexus_passwor @click.option("--connection-name", help="Connection ID", required=True) @click.option("--nexus-user-id", help="Nexus user ID", required=True) @click.option("--nexus-password", help="Nexus password", required=True) -@click.option("--account-id", help="Name of the account to import", required=True) -@click.option("--local-name", help="Name to give to the imported account", required=True) +@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("nexus-base-url") @click.pass_obj -def import_bank_account(obj, connection_name, nexus_user_id, nexus_password, nexus_base_url, account_id, local_name): - # FIXME/NOTE: the 'ebics' part will soon go away. - url = urljoin(nexus_base_url, "/bank-connections/{}/ebics/accounts/import".format(connection_name)) - print("going {}".format(url)) +def import_bank_account(obj, connection_name, nexus_user_id, nexus_password, nexus_base_url, offered_account_id, nexus_bank_account_id): + url = urljoin(nexus_base_url, "/bank-connections/{}/import-account".format(connection_name)) try: - resp = post(url, json=dict(accountId=account_id, localName=local_name), auth = auth.HTTPBasicAuth(nexus_user_id, nexus_password)) + resp = post( + url, + json=dict( + offeredAccountId=offered_account_id, + nexusBankAccountId=nexus_bank_account_id + ), + auth = auth.HTTPBasicAuth(nexus_user_id, nexus_password) + ) except Exception as ee: print(ee) print("Could not reach nexus") @@ -166,7 +171,7 @@ def import_bank_account(obj, connection_name, nexus_user_id, nexus_password, nex @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. - url = urljoin(nexus_base_url, "/bank-connections/{}/ebics/accounts/fetch".format(connection_name)) + 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)) except Exception: @@ -175,15 +180,15 @@ def download_bank_accounts(obj, connection_name, nexus_user_id, nexus_password, print(resp.content.decode("utf-8")) -@bank_connection.command(help="list imported bank accounts") +@bank_connection.command(help="list offered (= downloaded) bank accounts") @click.option("--connection-name", help="Connection ID", required=True) @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") @click.pass_obj -def list_imported_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, nexus_base_url): # FIXME/NOTE: the 'ebics' part will soon go away. - url = urljoin(nexus_base_url, "/bank-connections/{}/ebics/accounts/imported".format(connection_name)) + 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)) except Exception: @@ -191,15 +196,13 @@ def list_imported_bank_accounts(obj, connection_name, nexus_user_id, nexus_passw return print(resp.content.decode("utf-8")) -@bank_connection.command(help="list raw bank account information locally stored") -@click.option("--connection-name", help="Connection ID", required=True) +@bank_accounts.command(help="list imported bank accounts") @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") @click.pass_obj -def list_bank_accounts(obj, connection_name, nexus_user_id, nexus_password, nexus_base_url): - # FIXME/NOTE: the 'ebics' part will soon go away. - url = urljoin(nexus_base_url, "/bank-connections/{}/ebics/accounts".format(connection_name)) +def list_bank_accounts(obj, nexus_user_id, nexus_password, nexus_base_url): + url = urljoin(nexus_base_url, "/bank-accounts") try: resp = get(url, json=dict(), auth = auth.HTTPBasicAuth(nexus_user_id, nexus_password)) except Exception: @@ -207,23 +210,6 @@ def list_bank_accounts(obj, connection_name, nexus_user_id, nexus_password, nexu return print(resp.content.decode("utf-8")) -@bank_connection.command(help="import related bank accounts of 'connection-name'") -@click.option("--connection-name", help="Connection ID", required=True) -@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") -@click.pass_obj -def import_bank_accounts(obj, connection_name, nexus_user_id, nexus_password, nexus_base_url): - # FIXME/NOTE: the 'ebics' part will soon go away. - url = urljoin(nexus_base_url, "/bank-connections/{}/ebics/import-accounts".format(connection_name)) - try: - resp = post(url, json=dict(), auth = auth.HTTPBasicAuth(nexus_user_id, nexus_password)) - except Exception: - print("Could not reach nexus") - return - print(resp.content.decode("utf-8")) - - @bank_accounts.command(help="prepare payment debiting 'account-name'") @click.option("--account-name", help="bank account name", required=True) @click.option("--credit-iban", help="IBAN that will receive the payment", required=True) diff --git a/cli/setup-template.sh b/cli/setup-template.sh @@ -1,9 +1,9 @@ #!/bin/bash # Such template sets an env up using the Python CLI. +# The setup goes until exchanging keys with the sandbox. -# set -eu -set -u +set -eu EBICS_HOST_ID=ebicshost EBICS_PARTNER_ID=ebicspartner @@ -19,8 +19,7 @@ NEXUS_USER=u NEXUS_PASSWORD=p NEXUS_BANK_CONNECTION_NAME=b -NEXUS_DB=/tmp/n.sqlite3 -SANDBOX_DB=/tmp/s.sqlite3 +echo Nexus DB: $1 ########## setup sandbox ############# @@ -63,7 +62,7 @@ sleep 2 # create a user echo "Creating a nexus user (giving time to settle)" -nexus superuser --db-name=$NEXUS_DB --password $NEXUS_PASSWORD $NEXUS_USER +nexus superuser --db-name $1 --password $NEXUS_PASSWORD $NEXUS_USER sleep 2 # create a bank connection diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/DB.kt b/nexus/src/main/kotlin/tech/libeufin/nexus/DB.kt @@ -415,7 +415,8 @@ fun dbCreateTables(dbName: String) { FacadesTable, TalerFacadeStateTable, NexusScheduledTasksTable, - OfferedBankAccountsTable + OfferedBankAccountsTable, + AvailableConnectionsForAccountsTable ) } }