summaryrefslogtreecommitdiff
path: root/talerbank/app/views.py
diff options
context:
space:
mode:
authorMarcello Stanisci <stanisci.m@gmail.com>2019-05-31 15:20:25 +0200
committerMarcello Stanisci <stanisci.m@gmail.com>2019-05-31 15:20:25 +0200
commit97147072588914e1607681d96309d272acabf652 (patch)
tree78ac5f8e228dde6ae095e4831eb5697d1d0dfc1e /talerbank/app/views.py
parentd8320c684cf3b18964d7d5f80698779478986c19 (diff)
downloadbank-97147072588914e1607681d96309d272acabf652.tar.gz
bank-97147072588914e1607681d96309d272acabf652.tar.bz2
bank-97147072588914e1607681d96309d272acabf652.zip
porting /history-range
Diffstat (limited to 'talerbank/app/views.py')
-rw-r--r--talerbank/app/views.py44
1 files changed, 22 insertions, 22 deletions
diff --git a/talerbank/app/views.py b/talerbank/app/views.py
index 3d1f7bc..34a5b70 100644
--- a/talerbank/app/views.py
+++ b/talerbank/app/views.py
@@ -44,7 +44,7 @@ from django.shortcuts import render, redirect
from datetime import datetime
from .models import BankAccount, BankTransaction
from .amount import Amount
-from .schemas import validate_data, HistoryParams, URLParamValidationError
+from .schemas import validate_data, HistoryParams, HistoryRangeParams, URLParamValidationError
LOGGER = logging.getLogger(__name__)
##
@@ -704,28 +704,28 @@ def build_history_response(qs, cancelled, user_account):
@require_GET
@login_via_headers
def serve_history_range(request, user_account):
- validate_data(request, request.GET.dict())
- # Ordering.
- ordering = request.GET.get("ordering", "descending")
+ get_params = HistoryRangeParams(request.GET.dict())
+ if not get_params.is_valid():
+ raise URLParamValidationError(get_params.errors, 400)
+
+ start_td = datetime.fromtimestamp(
+ get_params.cleaned_data.get("start"))
+ end_td = datetime.fromtimestamp(
+ get_params.cleaned_data.get("end"))
+
+ qs = query_history_range(
+ user_account.bankaccount,
+ request.GET.get("direction"),
+ start_td,
+ end_td,
+ get_params.cleaned_data.get("ordering"))
+
+ history = build_history_response(
+ qs,
+ get_params.cleaned_data.get("cancelled"),
+ user_account)
- # Note: those values got sanity-checked by "validate_data()"
- start = int(request.GET.get("start"))
- end = int(request.GET.get("end"))
-
- start_td = datetime.fromtimestamp(start)
- end_td = datetime.fromtimestamp(end)
-
- qs = query_history_range(user_account.bankaccount,
- request.GET.get("direction"),
- start_td,
- end_td,
- "descending" == ordering)
-
- history = build_history_response(qs,
- request.GET.get("cancelled",
- "show"),
- user_account)
if not history:
return HttpResponse(status=204)
return JsonResponse(dict(data=history), status=200)
@@ -741,7 +741,7 @@ def serve_history_range(request, user_account):
def serve_history(request, user_account):
get_params = HistoryParams(request.GET.dict())
if not get_params.is_valid():
- raise URLParamValidationError(get_params.errors, 400)
+ raise URLParamValidationError(get_params.errors, 400)
delta = get_params.cleaned_data.get("delta")
start = get_params.cleaned_data.get("start")