gnunet-svn
[Top][All Lists]
Advanced

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

[taler-bank] branch master updated: add top-up command


From: gnunet
Subject: [taler-bank] branch master updated: add top-up command
Date: Wed, 18 Dec 2019 20:05:57 +0100

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

dold pushed a commit to branch master
in repository bank.

The following commit(s) were added to refs/heads/master by this push:
     new e5bd571  add top-up command
e5bd571 is described below

commit e5bd57111f89d218af1874db990f776ceefc1a83
Author: Florian Dold <address@hidden>
AuthorDate: Wed Dec 18 20:05:54 2019 +0100

    add top-up command
---
 .../app/management/commands/add_bank_account.py    |  6 +++-
 .../commands/{add_bank_account.py => top_up.py}    | 40 +++++++++++++++-------
 2 files changed, 33 insertions(+), 13 deletions(-)

diff --git a/talerbank/app/management/commands/add_bank_account.py 
b/talerbank/app/management/commands/add_bank_account.py
index 39b2519..5e16eb8 100644
--- a/talerbank/app/management/commands/add_bank_account.py
+++ b/talerbank/app/management/commands/add_bank_account.py
@@ -30,6 +30,7 @@ from ...models import BankAccount
 from ...views import wire_transfer
 from taler.util.amount import Amount
 import getpass
+import uuid
 
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.INFO)
@@ -40,6 +41,7 @@ class Command(BaseCommand):
 
     def add_arguments(self, parser):
         parser.add_argument("accountname", nargs="1", type=str)
+        parser.add_argument('--public', action='store_true')
 
     ##
     # Django-specific definition to invoke the account creator
@@ -54,7 +56,9 @@ class Command(BaseCommand):
             print("Error: Passwords do not match")
             return
         BankAccount(
-            user=User.objects.create_user(username=accountname, password=pw),
+            user=User.objects.create_user(
+                username=accountname,
+                password=str(uuid.uuid4()))
             is_public=False,
         ).save()
         print("Created new bank account.")
diff --git a/talerbank/app/management/commands/add_bank_account.py 
b/talerbank/app/management/commands/top_up.py
similarity index 62%
copy from talerbank/app/management/commands/add_bank_account.py
copy to talerbank/app/management/commands/top_up.py
index 39b2519..36713f1 100644
--- a/talerbank/app/management/commands/add_bank_account.py
+++ b/talerbank/app/management/commands/top_up.py
@@ -30,6 +30,7 @@ from ...models import BankAccount
 from ...views import wire_transfer
 from taler.util.amount import Amount
 import getpass
+import uuid
 
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.INFO)
@@ -39,7 +40,16 @@ class Command(BaseCommand):
     help = "Add bank accounts."
 
     def add_arguments(self, parser):
-        parser.add_argument("accountname", nargs="1", type=str)
+        parser.add_argument(
+            "user",
+            type=str,
+            metavar="USERNAME",
+            help="User that is getting credited with the top-up"
+        )
+        parser.add_argument(
+            "amount", type=str, metavar="AMOUNT",
+            help="Wire transfer's amount, given in the " \
+            "CURRENCY:X.Y form.")
 
     ##
     # Django-specific definition to invoke the account creator
@@ -47,14 +57,20 @@ class Command(BaseCommand):
     # (defined in the settings) and invoke the account creator
     # for each one of them.
     def handle(self, *args, **options):
-        accountname = options["accountname"]
-        pw = getpass.getpass("Enter new password")
-        pw2 = getpass.getpass("Enter repeat new password")
-        if pw != pw2:
-            print("Error: Passwords do not match")
-            return
-        BankAccount(
-            user=User.objects.create_user(username=accountname, password=pw),
-            is_public=False,
-        ).save()
-        print("Created new bank account.")
+        user = User.objects.get(username=options["user"])
+        try:
+            debit_account = BankAccount.objects.get(
+                account_no=0,
+            )
+        except BankAccount.DoesNotExist:
+            LOGGER.error("Debit account (bank's own account) does not exist.")
+            sys.exit(1)
+
+        try:
+            transaction = wire_transfer(
+                amount, user.bankaccount, credit_account, options["subject"]
+            )
+            print("Transaction id: " + str(transaction.id))
+        except Exception as exc:
+            LOGGER.error(exc)
+            sys.exit(1)

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



reply via email to

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