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.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 rest_framework.decorators import action
from rest_framework.response import Response
@ -725,10 +725,12 @@ class ConnectedDeviceViewSet(ViewSet):
required=True,
type=OpenApiTypes.STR
)
serializer_class = serializers.DeviceSerializer # for drf-spectacular
def get_view_name(self):
return "Connected Device Locator"
@extend_schema(responses={200: OpenApiTypes.OBJECT})
def list(self, request):
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):
queryset = Prefix.objects.all()
serializer_class = serializers.PrefixSerializer # for drf-spectacular
@extend_schema(methods=["get"], responses={200: serializers.AvailablePrefixSerializer(many=True)})
def get(self, request, pk):
@ -282,6 +283,7 @@ class AvailablePrefixesView(ObjectValidationMixin, APIView):
class AvailableIPAddressesView(ObjectValidationMixin, APIView):
queryset = IPAddress.objects.all()
serializer_class = serializers.IPAddressSerializer # for drf-spectacular
def get_parent(self, request, pk):
raise NotImplemented()

View File

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

View File

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