From 78a772eaf182c6c16d773922695199f11d98d438 Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Mon, 9 Nov 2020 21:20:18 +0100 Subject: [PATCH] Added description for domain viewset routes. --- modoboa/admin/api.py | 25 ++++++++++++++++--------- modoboa/urls.py | 6 +++++- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/modoboa/admin/api.py b/modoboa/admin/api.py index e9a334758..7a1b04e6c 100644 --- a/modoboa/admin/api.py +++ b/modoboa/admin/api.py @@ -4,6 +4,7 @@ from django import http from django.contrib.contenttypes.models import ContentType from django.utils.translation import ugettext as _ +from drf_spectacular.utils import extend_schema, extend_schema_view from rest_framework import filters, status, viewsets from rest_framework.decorators import action from rest_framework.exceptions import ParseError @@ -16,16 +17,22 @@ from modoboa.core import sms_backends from . import lib, models, serializers +@extend_schema_view( + retrieve=extend_schema( + description="Retrieve a particular domain", + summary="Retrieve a particular domain" + ), + list=extend_schema( + description="Retrieve a list of domains", + summary="Retrieve a list of domains" + ), + create=extend_schema( + description="Create a new domain", + summary="Create a new domain" + ) +) class DomainViewSet(viewsets.ModelViewSet): - """ - Domain viewset. - - retrieve: Return the given domain. - - list: Return a list of all existing domains. - - create: Create a new domain instance. - """ + """Domain viewset.""" permission_classes = [IsAuthenticated, DjangoModelPermissions, ] serializer_class = serializers.DomainSerializer diff --git a/modoboa/urls.py b/modoboa/urls.py index 5e9e1deda..3198d8844 100644 --- a/modoboa/urls.py +++ b/modoboa/urls.py @@ -8,7 +8,9 @@ from django.contrib.auth.decorators import login_required from django.urls import include, path from django.views.i18n import JavaScriptCatalog -from drf_spectacular.views import SpectacularAPIView, SpectacularSwaggerView +from drf_spectacular.views import ( + SpectacularAPIView, SpectacularSwaggerView, SpectacularRedocView +) from modoboa.admin.views import user as user_views from modoboa.core import signals as core_signals, views as core_views @@ -62,6 +64,8 @@ urlpatterns += [ path('docs/api/', SpectacularSwaggerView.as_view(url_name='schema'), name='docs-index'), + path('docs/api/redoc/', SpectacularRedocView.as_view(url_name='schema'), + name='redoc'), path('api/v1/', include("modoboa.urls_api")), ]