diff options
author | Marcello Stanisci <stanisci.m@gmail.com> | 2019-11-29 16:16:33 +0100 |
---|---|---|
committer | Marcello Stanisci <stanisci.m@gmail.com> | 2019-11-29 16:16:33 +0100 |
commit | e61f7dc4576af119582b1035db43243dd52ca8b4 (patch) | |
tree | 8f8b16f64b99a331fdb4ce7b84cc5816629573f0 /talerbank/app | |
parent | 1ef4f6e4f2ffe1278ab5d8be777ebf607d54f95a (diff) | |
download | bank-e61f7dc4576af119582b1035db43243dd52ca8b4.tar.gz bank-e61f7dc4576af119582b1035db43243dd52ca8b4.tar.bz2 bank-e61f7dc4576af119582b1035db43243dd52ca8b4.zip |
body decoder helper function
Diffstat (limited to 'talerbank/app')
-rw-r--r-- | talerbank/app/middleware.py | 1 | ||||
-rw-r--r-- | talerbank/app/schemas.py | 1 | ||||
-rw-r--r-- | talerbank/app/views.py | 24 |
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) |