diff --git a/finance/urls.py b/finance/urls.py index 7a83d74..7cb09a1 100644 --- a/finance/urls.py +++ b/finance/urls.py @@ -3,6 +3,8 @@ from finance import views urlpatterns = [ url(r'payment/([0-9]{1,99})/$', views.YandexPay.as_view()), + url(r'bill/([0-9]{1,99})/freeze/$', views.FreezeView.as_view()), + url(r'bill/([0-9]{1,99})/unfreeze/$', views.UnFreezeView.as_view()), url(r'bills/$', views.BillListView.as_view()), url(r'bills/([0-9]{1,99})/$', views.BillDetailView.as_view()), url(r'bills_find/$', views.FindBillView.as_view()), diff --git a/finance/views.py b/finance/views.py index 6523f36..5cf5c8e 100644 --- a/finance/views.py +++ b/finance/views.py @@ -39,6 +39,38 @@ def test_pay(request): }) +class UnFreezeView(APIView): + renderer_classes = (JSONRenderer,) + + @staticmethod + def post(request, id): + if request.user.is_authenticated: + try: + bill = Bill.objects.get(id=id) + bill.freeze = False + bill.save() + except Bill.DoesNotExist: + return Response("Счёт не найден", status=404) + return Response(status=204) + return Response("Permission denied", status=403) + + +class FreezeView(APIView): + renderer_classes = (JSONRenderer,) + + @staticmethod + def post(request, id): + if request.user.is_authenticated: + try: + bill = Bill.objects.get(id=id) + bill.freeze = True + bill.save() + except Bill.DoesNotExist: + return Response("Счёт не найден", status=404) + return Response(status=204) + return Response("Permission denied", status=403) + + class BillListView(APIView): renderer_classes = (JSONRenderer,)