From 04d87ed25cfa6e61ed5b788d121547df40bd80a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniele=20Vigan=C3=B2?= Date: Sat, 18 Dec 2021 00:56:03 +0100 Subject: [PATCH] Add address validator --- dcc/driver/.views.py.swp | Bin 12288 -> 0 bytes dcc/driver/views.py | 21 ++++++++++++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) delete mode 100644 dcc/driver/.views.py.swp diff --git a/dcc/driver/.views.py.swp b/dcc/driver/.views.py.swp deleted file mode 100644 index 272cf0ef2bb50b5d058f28583e032d6421aa820c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 zcmeI2O^6#+9Ke6ugPnX$tUZW`GSy20X*OF58l+X2NfwEJbTg}ycYDLS3z$wlgVdyOI^Gyz8{21`2Xks`QHCAWVS0; zHZD5n%PRm6!`9=s#oZ@A=0yJ(uJAqClab`UbY;IMLN6S;^4!^Tl>>F(Objl+xY1mW zzVCWnvFu(Gem6Mnw%g0`M|rzaE$@1APnQQb4m4&k7#^Hq*g1VZ$C;I9;tl%rQ>UDh zk6eE6`wa$z!C){L3l*!iFUq ze#yaiIe0e*@8sa^9CUL~%fay+{F;T&vv4yD)hs-lg%er0lYyTz@KXl9&%h@ca5GTL zz{w2!mWD6W@I@NlNW)qho=?MbX(*;4mxenj_$mb-rQp>RoJxU{flR$J;3W$x7CdT=YV%iAAA`YQFc^+HPJ)u*Q2EY`T>^e)~ouaAn8o%CMkiuTyfAd~GOoSX^at*CA~VhWFZR_k`9?V-mp?PwqvoCcYNY zp$Lb%I=YlEG@F~Pvz1D#wzl57)Oh)FW2-sME{SuJx0cEiJ@2MeWvNu4bm?F}5&QUB zsjRft>h;EEv#~yP6mcJCt_VeGE~B{ap5IYoHmFE%YSimEGXZK~^JXkZ%{{mgv5~^s=Enc255YhegzGA)b!n!iGewK|m+h#F?L#)B z^}pC<7n z83?Vz9Tg0_JJXdsKTV=vPIWxZ<2uH3WZ!u(y98scflykiRy?hxcB;-Rn?2$AP5FAb z8H=taOLa^7ZawJth40Q)Aqvx}I`zQ!WjhR1p$Hun^qtZB;N?gj3mmUM2vj)LOw`)# z@+b&B)>w!jv8SXCTOB3(axYNV%PKkZ#y5@6f|1n)<@lxav1T#^_fs6JjLwI+K;za= r*HUSI1e6vBba5{K=_sEBP)HQw_vgzyVK^B3ojuIwl;#qMMmYZf47$i( diff --git a/dcc/driver/views.py b/dcc/driver/views.py index f5ea3b3..0f504f1 100644 --- a/dcc/driver/views.py +++ b/dcc/driver/views.py @@ -1,17 +1,30 @@ from django.views import View -from django.http import HttpResponse -from driver.serializers import ( - FunctionSerializer, CabSerializer, InfraSerializer) +from django.http import HttpResponse, Http404 +from django.utils.decorators import method_decorator from rest_framework import status from rest_framework.views import APIView from rest_framework.response import Response from dcc.parsers import PlainTextParser from driver.connector import Connector +from driver.serializers import ( + FunctionSerializer, CabSerializer, InfraSerializer) +from roster.models import Cab as CabModel conn = Connector() +def addresschecker(f): + def addresslookup(request, address, *args): + try: + CabModel.objects.get(address=address) + except CabModel.DoesNotExist: + raise Http404 + return f(request, address, *args) + return addresslookup + + +@method_decorator(addresschecker, name="put") class SendCommand(APIView): parser_classes = [PlainTextParser] @@ -22,6 +35,7 @@ class SendCommand(APIView): status=status.HTTP_202_ACCEPTED) +@method_decorator(addresschecker, name="put") class Function(APIView): def put(self, request, address): serializer = FunctionSerializer(data=request.data) @@ -34,6 +48,7 @@ class Function(APIView): status=status.HTTP_400_BAD_REQUEST) +@method_decorator(addresschecker, name="put") class Cab(APIView): def put(self, request, address): serializer = CabSerializer(data=request.data)