gnunet-svn
[Top][All Lists]
Advanced

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

[taler-bank] branch master updated: use credit/debit indicator for balan


From: gnunet
Subject: [taler-bank] branch master updated: use credit/debit indicator for balance
Date: Thu, 20 Aug 2020 10:09:04 +0200

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 0e92409  use credit/debit indicator for balance
0e92409 is described below

commit 0e924099cc9867464f083bd61699ee02ae238357
Author: Florian Dold <florian.dold@gmail.com>
AuthorDate: Thu Aug 20 13:38:59 2020 +0530

    use credit/debit indicator for balance
---
 talerbank/app/views.py | 35 +++++++++++++++++++++++++++++------
 1 file changed, 29 insertions(+), 6 deletions(-)

diff --git a/talerbank/app/views.py b/talerbank/app/views.py
index 3e25137..8449123 100644
--- a/talerbank/app/views.py
+++ b/talerbank/app/views.py
@@ -69,18 +69,20 @@ LOGGER = logging.getLogger(__name__)
 # can handle (because of the wallet).
 UINT64_MAX = (2 ** 64) - 1
 
+
 class PaytoParse:
     def __init__(self, payto_uri):
         parsed_payto = urlparse(payto_uri)
         if parsed_payto.scheme != "payto":
             raise Exception("Bad Payto URI: '%s'" % payto_uri)
         path_as_list = parsed_payto.path.split("/")
-        if (len(path_as_list) == 0):
+        if len(path_as_list) == 0:
             raise Exception("No account/user name found: '%s'" % payto_uri)
         self.account = path_as_list[-1]
         params = dict(parse_qsl(parsed_payto.query))
         self.subject = params.get("subject")
 
+
 ##
 # Exception raised upon failing login.
 #
@@ -395,6 +397,7 @@ def get_acct_from_payto(uri_str: str) -> str:
         raise Exception("Bad Payto URI: '%s'" % uri_str)
     return wire_uri.path.split("/")[-1]
 
+
 def get_subject_from_payto(uri_str: str) -> str:
     wire_uri = urlparse(uri_str)
     if wire_uri.scheme != "payto":
@@ -405,6 +408,7 @@ def get_subject_from_payto(uri_str: str) -> str:
         raise Exception("Subject not found in Payto URI: '%s'" % uri_str)
     return subject
 
+
 ##
 # Class representing the registration form.
 class UserReg(forms.Form):
@@ -480,7 +484,7 @@ def register(request):
             msg = "Wrong field(s): %s." % ", ".join(input_data.errors.keys())
             raise InvalidInputData(msg)
         username = input_data.cleaned_data["username"]
-        password = input_data.cleaned_data["password"]        
+        password = input_data.cleaned_data["password"]
         user = internal_register(username, password)
     except UsernameUnavailable as e:
         return render(request, "register.html", {"not_available": True})
@@ -518,8 +522,12 @@ def logout_view(request):
     django.contrib.auth.logout(request)
     return redirect("index")
 
+
 def config_view(request):
-    return JsonResponse(dict(version="0:0:0", 
currency=settings.TALER_CURRENCY), status=200)
+    return JsonResponse(
+        dict(version="0:0:0", currency=settings.TALER_CURRENCY), status=200
+    )
+
 
 def extract_history(account, delta, start=None):
     history = []
@@ -879,6 +887,7 @@ def get_payto_from_account(request, acct):
     h = get_plain_host(request)
     return f"payto://x-taler-bank/{h}/{acct.user.username}"
 
+
 def get_reserve_pub(subject):
     # obey to regex: \\b[a-z0-9A-Z]{52}\\b
     regex = re.compile(r"\b[a-z0-9A-Z]{52}\b")
@@ -887,6 +896,7 @@ def get_reserve_pub(subject):
         return ret.group(0)
     return None
 
+
 @require_GET
 @login_via_headers
 def twg_history_incoming(request, user_account, acct_id):
@@ -965,6 +975,7 @@ def basic_auth(request):
     username, password = base64.b64decode(tokens[1]).decode("utf-8").split(":")
     return django.contrib.auth.authenticate(username=username, 
password=password)
 
+
 def make_taler_withdraw_uri(request, withdraw_id):
     if request.is_secure():
         proto_extra = ""
@@ -979,6 +990,7 @@ def make_taler_withdraw_uri(request, withdraw_id):
     p = "/".join([host] + pfx_components + [str(withdraw_id)])
     return f"taler{proto_extra}://withdraw/{p}"
 
+
 @login_via_headers
 @csrf_exempt
 @require_POST
@@ -998,7 +1010,9 @@ def withdraw_headless(request, user):
     try:
         exchange_user = User.objects.get(username=exchange_account_name)
     except User.DoesNotExist:
-        return JsonResponse(dict(hint="exchange bank account does not exist"), 
status=404)
+        return JsonResponse(
+            dict(hint="exchange bank account does not exist"), status=404
+        )
     exchange_bankaccount = exchange_user.bankaccount
     wire_transfer(
         Amount.parse(data.get("amount")),
@@ -1044,7 +1058,9 @@ def api_withdraw_operation(request, withdraw_id):
                 or op.selected_reserve_pub != selected_reserve_pub
             ):
                 return JsonResponse(
-                    dict(code=5600, hint="selection of withdraw parameters 
already done"),
+                    dict(
+                        code=5600, hint="selection of withdraw parameters 
already done"
+                    ),
                     status=409,
                 )
         else:
@@ -1275,7 +1291,14 @@ def bank_accounts_api_balance(request, user_account, 
acct_id):
             f"credentials do not match URL ('{acct_id}' vs 
'{user_account.username}')"
         )
 
-    return JsonResponse(dict(balance=acct.balance.stringify()))
+    return JsonResponse(
+        dict(
+            # The balance field is kept as long as the cashier still uses it
+            balance=acct.balance.stringify(),
+            balance_amount=acct.balance.amount,
+            credit_debit_indicator=("credit" if acct.balance.is_positive else 
"debit"),
+        )
+    )
 
 
 @csrf_exempt

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

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