From 253411c0fdf82866d5c541cdb05ea125fa289963 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniele=20Vigan=C3=B2?= Date: Fri, 5 Jun 2020 00:15:31 +0200 Subject: [PATCH] Telemetry is a POST only and filter GET by device (#9) --- freedcs/telemetry/urls.py | 7 +++++-- freedcs/telemetry/views.py | 22 +++++++++------------- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/freedcs/telemetry/urls.py b/freedcs/telemetry/urls.py index 0d3fe41..baa3486 100644 --- a/freedcs/telemetry/urls.py +++ b/freedcs/telemetry/urls.py @@ -14,10 +14,13 @@ Including another URLconf 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ from django.urls import path -from telemetry.views import Telemetry +from telemetry.views import TelemetryView urlpatterns = [ path('', - Telemetry.as_view({'get': 'list', 'post': 'create'}), + TelemetryView.as_view({'post': 'create'}), name='telemetry'), + path('/', + TelemetryView.as_view({'get': 'list'}), + name='device-telemetry'), ] diff --git a/freedcs/telemetry/views.py b/freedcs/telemetry/views.py index 5bccf4a..4bb5965 100644 --- a/freedcs/telemetry/views.py +++ b/freedcs/telemetry/views.py @@ -1,22 +1,18 @@ +from django.http import Http404 from rest_framework.viewsets import ModelViewSet from telemetry.models import Telemetry from telemetry.serializers import TelemetrySerializer +from rest_framework.response import Response -class Telemetry(ModelViewSet): +class TelemetryView(ModelViewSet): queryset = Telemetry.objects.all() serializer_class = TelemetrySerializer - # def post(self, request): - # serializer = DeviceSerializer(data=request.data) - # if serializer.is_valid(): - # serializer.save() - # return Response(serializer.data, status=status.HTTP_201_CREATED) - # return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) - - # def get(self, request): - # devices = Device.objects.all() - # import pdb; pdb.set_trace() - # serializer = DeviceSerializer(devices) - # return Response(serializer.serial) + def list(self, request, device=None): + queryset = Telemetry.objects.filter(device__serial=device) + if not queryset: + raise Http404 + serializer = TelemetrySerializer(queryset, many=True) + return Response(serializer.data)