From 6d29e2730d3298dab15295eb1e9cbd6c14a66192 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Sat, 30 Nov 2024 16:48:38 -0800 Subject: [PATCH] Resolve a bunch more view warnings --- src/documents/views.py | 50 ++++++++++++++++++++++++++++++++++++++++++ src/paperless/views.py | 34 ++++++++++++++++++++++++++++ 2 files changed, 84 insertions(+) diff --git a/src/documents/views.py b/src/documents/views.py index 9d99a99f3..e73c1f31f 100644 --- a/src/documents/views.py +++ b/src/documents/views.py @@ -49,6 +49,8 @@ from django.views.decorators.http import condition from django.views.decorators.http import last_modified from django.views.generic import TemplateView from django_filters.rest_framework import DjangoFilterBackend +from drf_spectacular.types import OpenApiTypes +from drf_spectacular.utils import OpenApiParameter from drf_spectacular.utils import extend_schema from drf_spectacular.utils import extend_schema_view from langdetect import detect @@ -1266,6 +1268,30 @@ class SelectionDataView(GenericAPIView): return r +@extend_schema_view( + get=extend_schema( + description="Get a list of all available tags", + parameters=[ + OpenApiParameter( + name="term", + required=False, + type=str, + description="Term to search for", + ), + OpenApiParameter( + name="limit", + required=False, + type=int, + description="Number of completions to return", + ), + ], + responses={ + (200, "application/json"): serializers.ListSerializer( + child=serializers.CharField(), + ), + }, + ), +) class SearchAutoCompleteView(GenericAPIView): permission_classes = (IsAuthenticated,) @@ -1493,6 +1519,14 @@ class GlobalSearchView(PassUserMixin): ) +@extend_schema_view( + get=extend_schema( + description="Get statistics for the current user", + responses={ + (200, "application/json"): OpenApiTypes.OBJECT, + }, + ), +) class StatisticsView(GenericAPIView): permission_classes = (IsAuthenticated,) @@ -1786,6 +1820,14 @@ class UiSettingsView(GenericAPIView): ) +@extend_schema_view( + get=extend_schema( + description="Get the current version of the Paperless-NGX server", + responses={ + (200, "application/json"): OpenApiTypes.OBJECT, + }, + ), +) class RemoteVersionView(GenericAPIView): def get(self, request, format=None): remote_version = "0.0.0" @@ -2089,6 +2131,14 @@ class CustomFieldViewSet(ModelViewSet): ) +@extend_schema_view( + get=extend_schema( + description="Get the current system status of the Paperless-NGX server", + responses={ + (200, "application/json"): OpenApiTypes.OBJECT, + }, + ), +) class SystemStatusView(PassUserMixin): permission_classes = (IsAuthenticated,) diff --git a/src/paperless/views.py b/src/paperless/views.py index a54343f08..bfc276dcc 100644 --- a/src/paperless/views.py +++ b/src/paperless/views.py @@ -297,6 +297,16 @@ class TOTPView(GenericAPIView): return HttpResponseNotFound("TOTP not found") +@extend_schema_view( + post=extend_schema( + request={ + "application/json": None, + }, + responses={ + (200, "application/json"): OpenApiTypes.STR, + }, + ), +) class GenerateAuthTokenView(GenericAPIView): """ Generates (or re-generates) an auth token, requires a logged in user @@ -326,6 +336,23 @@ class ApplicationConfigurationViewSet(ModelViewSet): permission_classes = (IsAuthenticated, DjangoModelPermissions) +@extend_schema_view( + post=extend_schema( + request={ + "application/json": { + "type": "object", + "properties": { + "id": {"type": "integer"}, + }, + "required": ["id"], + }, + }, + responses={ + (200, "application/json"): OpenApiTypes.INT, + 400: OpenApiTypes.STR, + }, + ), +) class DisconnectSocialAccountView(GenericAPIView): """ Disconnects a social account provider from the user account @@ -345,6 +372,13 @@ class DisconnectSocialAccountView(GenericAPIView): return HttpResponseBadRequest("Social account not found") +@extend_schema_view( + get=extend_schema( + responses={ + (200, "application/json"): OpenApiTypes.OBJECT, + }, + ), +) class SocialAccountProvidersView(GenericAPIView): """ List of social account providers