9608 try setting serializer_class for APIView

This commit is contained in:
Arthur 2023-01-24 14:20:46 -08:00
parent cd047881b9
commit a949de8d5f
4 changed files with 12 additions and 1 deletions

View File

@ -2,7 +2,7 @@ import socket
from django.http import Http404, HttpResponse, HttpResponseForbidden from django.http import Http404, HttpResponse, HttpResponseForbidden
from django.shortcuts import get_object_or_404 from django.shortcuts import get_object_or_404
from drf_spectacular.utils import OpenApiParameter from drf_spectacular.utils import extend_schema, extend_schema_view, OpenApiParameter
from drf_spectacular.types import OpenApiTypes from drf_spectacular.types import OpenApiTypes
from rest_framework.decorators import action from rest_framework.decorators import action
from rest_framework.response import Response from rest_framework.response import Response
@ -725,10 +725,12 @@ class ConnectedDeviceViewSet(ViewSet):
required=True, required=True,
type=OpenApiTypes.STR type=OpenApiTypes.STR
) )
serializer_class = serializers.DeviceSerializer # for drf-spectacular
def get_view_name(self): def get_view_name(self):
return "Connected Device Locator" return "Connected Device Locator"
@extend_schema(responses={200: OpenApiTypes.OBJECT})
def list(self, request): def list(self, request):
peer_device_name = request.query_params.get(self._device_param.name) peer_device_name = request.query_params.get(self._device_param.name)

View File

@ -203,6 +203,7 @@ def get_results_limit(request):
class AvailablePrefixesView(ObjectValidationMixin, APIView): class AvailablePrefixesView(ObjectValidationMixin, APIView):
queryset = Prefix.objects.all() queryset = Prefix.objects.all()
serializer_class = serializers.PrefixSerializer # for drf-spectacular
@extend_schema(methods=["get"], responses={200: serializers.AvailablePrefixSerializer(many=True)}) @extend_schema(methods=["get"], responses={200: serializers.AvailablePrefixSerializer(many=True)})
def get(self, request, pk): def get(self, request, pk):
@ -282,6 +283,7 @@ class AvailablePrefixesView(ObjectValidationMixin, APIView):
class AvailableIPAddressesView(ObjectValidationMixin, APIView): class AvailableIPAddressesView(ObjectValidationMixin, APIView):
queryset = IPAddress.objects.all() queryset = IPAddress.objects.all()
serializer_class = serializers.IPAddressSerializer # for drf-spectacular
def get_parent(self, request, pk): def get_parent(self, request, pk):
raise NotImplemented() raise NotImplemented()

View File

@ -5,6 +5,7 @@ from django.apps import apps
from django.conf import settings from django.conf import settings
from django_rq.queues import get_connection from django_rq.queues import get_connection
from drf_spectacular.utils import extend_schema from drf_spectacular.utils import extend_schema
from drf_spectacular.types import OpenApiTypes
from rest_framework.response import Response from rest_framework.response import Response
from rest_framework.reverse import reverse from rest_framework.reverse import reverse
from rest_framework.views import APIView from rest_framework.views import APIView
@ -46,6 +47,7 @@ class StatusView(APIView):
""" """
permission_classes = [IsAuthenticatedOrLoginNotRequired] permission_classes = [IsAuthenticatedOrLoginNotRequired]
@extend_schema(responses={200: OpenApiTypes.OBJECT})
def get(self, request): def get(self, request):
# Gather the version numbers from all installed Django apps # Gather the version numbers from all installed Django apps
installed_apps = {} installed_apps = {}

View File

@ -1,6 +1,8 @@
from django.contrib.auth import authenticate from django.contrib.auth import authenticate
from django.contrib.auth.models import Group, User from django.contrib.auth.models import Group, User
from django.db.models import Count from django.db.models import Count
from drf_spectacular.utils import extend_schema
from drf_spectacular.types import OpenApiTypes
from rest_framework.exceptions import AuthenticationFailed from rest_framework.exceptions import AuthenticationFailed
from rest_framework.permissions import IsAuthenticated from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response from rest_framework.response import Response
@ -68,6 +70,7 @@ class TokenProvisionView(APIView):
""" """
permission_classes = [] permission_classes = []
@extend_schema(methods=["post"], responses={201: serializers.TokenSerializer})
def post(self, request): def post(self, request):
serializer = serializers.TokenProvisionSerializer(data=request.data) serializer = serializers.TokenProvisionSerializer(data=request.data)
serializer.is_valid() serializer.is_valid()
@ -114,6 +117,7 @@ class UserConfigViewSet(ViewSet):
def get_queryset(self): def get_queryset(self):
return UserConfig.objects.filter(user=self.request.user) return UserConfig.objects.filter(user=self.request.user)
@extend_schema(responses={200: OpenApiTypes.OBJECT})
def list(self, request): def list(self, request):
""" """
Return the UserConfig for the currently authenticated User. Return the UserConfig for the currently authenticated User.
@ -122,6 +126,7 @@ class UserConfigViewSet(ViewSet):
return Response(userconfig.data) return Response(userconfig.data)
@extend_schema(methods=["patch"], responses={201: OpenApiTypes.OBJECT})
def patch(self, request): def patch(self, request):
""" """
Update the UserConfig for the currently authenticated User. Update the UserConfig for the currently authenticated User.