mirror of
https://github.com/daniviga/django-ram.git
synced 2025-08-04 21:27:49 +02:00
Update urls and views
This commit is contained in:
@@ -24,8 +24,8 @@ from driver import urls as driver_urls
|
|||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('ht/', include('health_check.urls')),
|
path('ht/', include('health_check.urls')),
|
||||||
path('admin/', admin.site.urls),
|
path('admin/', admin.site.urls),
|
||||||
path('roster/', include(roster_urls)),
|
path('api/v1/roster/', include(roster_urls)),
|
||||||
path('dcc/', include(driver_urls)),
|
path('api/v1/dcc/', include(driver_urls)),
|
||||||
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
||||||
|
|
||||||
# if settings.DEBUG:
|
# if settings.DEBUG:
|
||||||
|
@@ -1,7 +1,8 @@
|
|||||||
from django.urls import path
|
from django.urls import path
|
||||||
from driver.views import SendCommand, Function, Cab, Emergency, Infra
|
from driver.views import SendCommand, Function, Cab, Emergency, Infra, Test
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
|
path('test', Test.as_view()),
|
||||||
path('emergency', Emergency.as_view()),
|
path('emergency', Emergency.as_view()),
|
||||||
path('infra', Infra.as_view()),
|
path('infra', Infra.as_view()),
|
||||||
path('command', SendCommand.as_view()),
|
path('command', SendCommand.as_view()),
|
||||||
|
@@ -12,6 +12,9 @@ from roster.models import Cab as CabModel
|
|||||||
|
|
||||||
|
|
||||||
def addresschecker(f):
|
def addresschecker(f):
|
||||||
|
"""
|
||||||
|
Check if DCC address does exist in the database
|
||||||
|
"""
|
||||||
def addresslookup(request, address, *args):
|
def addresslookup(request, address, *args):
|
||||||
try:
|
try:
|
||||||
CabModel.objects.get(address=address)
|
CabModel.objects.get(address=address)
|
||||||
@@ -21,7 +24,22 @@ def addresschecker(f):
|
|||||||
return addresslookup
|
return addresslookup
|
||||||
|
|
||||||
|
|
||||||
|
class Test(APIView):
|
||||||
|
"""
|
||||||
|
Send a test <s> command
|
||||||
|
"""
|
||||||
|
parser_classes = [PlainTextParser]
|
||||||
|
|
||||||
|
def get(self, request):
|
||||||
|
response = Connector().passthrough("<s>")
|
||||||
|
return Response({"response": response.decode()},
|
||||||
|
status=status.HTTP_202_ACCEPTED)
|
||||||
|
|
||||||
|
|
||||||
class SendCommand(APIView):
|
class SendCommand(APIView):
|
||||||
|
"""
|
||||||
|
Command passthrough
|
||||||
|
"""
|
||||||
parser_classes = [PlainTextParser]
|
parser_classes = [PlainTextParser]
|
||||||
|
|
||||||
def put(self, request):
|
def put(self, request):
|
||||||
@@ -40,6 +58,9 @@ class SendCommand(APIView):
|
|||||||
|
|
||||||
@method_decorator(addresschecker, name="put")
|
@method_decorator(addresschecker, name="put")
|
||||||
class Function(APIView):
|
class Function(APIView):
|
||||||
|
"""
|
||||||
|
Send "Function" commands to a valid DCC address
|
||||||
|
"""
|
||||||
def put(self, request, address):
|
def put(self, request, address):
|
||||||
serializer = FunctionSerializer(data=request.data)
|
serializer = FunctionSerializer(data=request.data)
|
||||||
if serializer.is_valid():
|
if serializer.is_valid():
|
||||||
@@ -53,6 +74,9 @@ class Function(APIView):
|
|||||||
|
|
||||||
@method_decorator(addresschecker, name="put")
|
@method_decorator(addresschecker, name="put")
|
||||||
class Cab(APIView):
|
class Cab(APIView):
|
||||||
|
"""
|
||||||
|
Send "Cab" commands to a valid DCC address
|
||||||
|
"""
|
||||||
def put(self, request, address):
|
def put(self, request, address):
|
||||||
serializer = CabSerializer(data=request.data)
|
serializer = CabSerializer(data=request.data)
|
||||||
if serializer.is_valid():
|
if serializer.is_valid():
|
||||||
@@ -65,6 +89,9 @@ class Cab(APIView):
|
|||||||
|
|
||||||
|
|
||||||
class Infra(APIView):
|
class Infra(APIView):
|
||||||
|
"""
|
||||||
|
Send "Infra" commands to a valid DCC address
|
||||||
|
"""
|
||||||
def put(self, request):
|
def put(self, request):
|
||||||
serializer = InfraSerializer(data=request.data)
|
serializer = InfraSerializer(data=request.data)
|
||||||
if serializer.is_valid():
|
if serializer.is_valid():
|
||||||
@@ -77,6 +104,9 @@ class Infra(APIView):
|
|||||||
|
|
||||||
|
|
||||||
class Emergency(APIView):
|
class Emergency(APIView):
|
||||||
|
"""
|
||||||
|
Send an "Emergency" stop, no matter the HTTP method used
|
||||||
|
"""
|
||||||
def put(self, request):
|
def put(self, request):
|
||||||
Connector().emergency()
|
Connector().emergency()
|
||||||
return Response({"response": "emergency stop"},
|
return Response({"response": "emergency stop"},
|
||||||
|
Reference in New Issue
Block a user