diff options
author | Marcello Stanisci <stanisci.m@gmail.com> | 2019-05-31 15:20:25 +0200 |
---|---|---|
committer | Marcello Stanisci <stanisci.m@gmail.com> | 2019-05-31 15:20:25 +0200 |
commit | 97147072588914e1607681d96309d272acabf652 (patch) | |
tree | 78ac5f8e228dde6ae095e4831eb5697d1d0dfc1e /talerbank/app/views.py | |
parent | d8320c684cf3b18964d7d5f80698779478986c19 (diff) | |
download | bank-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.py | 44 |
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") |