summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--talerbank/app/middleware.py1
-rw-r--r--talerbank/app/schemas.py1
-rw-r--r--talerbank/app/views.py24
3 files changed, 14 insertions, 12 deletions
diff --git a/talerbank/app/middleware.py b/talerbank/app/middleware.py
index 980b87b..08c85aa 100644
--- a/talerbank/app/middleware.py
+++ b/talerbank/app/middleware.py
@@ -54,7 +54,6 @@ class DecompressionMiddleware:
return self.get_response(request)
-
##
# Class holding data needed by the handling logic.
class ExceptionMiddleware:
diff --git a/talerbank/app/schemas.py b/talerbank/app/schemas.py
index b4c64ce..c3524fa 100644
--- a/talerbank/app/schemas.py
+++ b/talerbank/app/schemas.py
@@ -101,7 +101,6 @@ class AuthForm(forms.Form):
]
)
- # Just any value is good here.
data = forms.Field(required=False)
diff --git a/talerbank/app/views.py b/talerbank/app/views.py
index 763a0e9..9186837 100644
--- a/talerbank/app/views.py
+++ b/talerbank/app/views.py
@@ -144,6 +144,14 @@ def ignore(request):
##
+# Decode body, when it is expected to be UTF-8.
+#
+# @param request the HTTP request being served.
+# @return the body as string.
+def decode_body(request):
+ return request.body.decode("utf-8")
+
+##
# Get a flag from the session and clear it.
#
# @param request the HTTP request being served.
@@ -814,9 +822,8 @@ def auth_and_login(request):
@require_http_methods(["PUT", "POST"])
@login_via_headers
def reject(request, user_account):
- data = json.loads(request.body.decode("utf-8"))
- data = RejectData(data)
+ data = RejectData(json.loads(decode_body(request)))
if not data.is_valid():
raise JSONFieldException(data.errors, 400)
@@ -869,9 +876,8 @@ def reject(request, user_account):
@require_POST
@login_via_headers
def add_incoming(request, user_account):
- data = json.loads(request.body.decode("utf-8"))
- data = AddIncomingData(data)
+ data = AddIncomingData(json.loads(decode_body(request)))
if not data.is_valid():
raise JSONFieldException(data.errors, 400)
@@ -899,8 +905,7 @@ def add_incoming(request, user_account):
@csrf_exempt
@require_POST
def withdraw_headless_uri(request, user):
- data_json = json.loads(request.body.decode("utf-8"))
- data = WithdrawHeadlessUri(data_json)
+ data = WithdrawHeadlessUri(json.loads(decode_body(request)))
if not data.is_valid():
raise JSONFieldException(data.errors, 400)
amount = Amount.parse(data.cleaned_data["amount"])
@@ -922,9 +927,8 @@ def withdraw_headless_uri(request, user):
@csrf_exempt
@require_POST
def withdraw_headless(request, user):
- data = json.loads(request.body.decode("utf-8"))
- data = WithdrawHeadless(data)
-
+
+ data = WithdrawHeadless(json.loads(decode_body(request)))
sender_payto = "payto://x-taler-bank/%s/%d" % \
(request.get_host(), user.bankaccount.account_no)
ret_obj = ({"sender_wire_details": sender_payto})
@@ -967,7 +971,7 @@ def api_withdraw_operation(request, withdraw_id):
host = request.get_host()
if request.method == "POST":
- data = json.loads(request.body.decode("utf-8"))
+ data = json.loads(decode_body(request))
exchange_payto_uri = data.get("selected_exchange")
try:
account_no = get_acct_from_payto(exchange_payto_uri)