Enhance API documentation and schema management by implementing explicit tag configurations for Swagger and ReDoc. Introduce postprocessing hooks to filter auto-generated tags, ensuring only defined tags are used. Update viewsets across various modules to utilize the new tagging system, improving clarity and organization in API documentation.
This commit is contained in:
@@ -10,6 +10,7 @@ from django.contrib.auth import authenticate
|
||||
from django.utils import timezone
|
||||
from django.db import transaction
|
||||
from django_filters.rest_framework import DjangoFilterBackend
|
||||
from drf_spectacular.utils import extend_schema, extend_schema_view
|
||||
from igny8_core.api.base import AccountModelViewSet
|
||||
from igny8_core.api.authentication import JWTAuthentication, CSRFExemptSessionAuthentication
|
||||
from igny8_core.api.response import success_response, error_response
|
||||
@@ -33,6 +34,10 @@ import jwt
|
||||
# 1. GROUPS - Define user roles and permissions across the system
|
||||
# ============================================================================
|
||||
|
||||
@extend_schema_view(
|
||||
list=extend_schema(tags=['Authentication']),
|
||||
retrieve=extend_schema(tags=['Authentication']),
|
||||
)
|
||||
class GroupsViewSet(viewsets.ViewSet):
|
||||
"""
|
||||
ViewSet for managing user roles and permissions (Groups).
|
||||
@@ -119,6 +124,14 @@ class GroupsViewSet(viewsets.ViewSet):
|
||||
# 2. USERS - Manage global user records and credentials
|
||||
# ============================================================================
|
||||
|
||||
@extend_schema_view(
|
||||
list=extend_schema(tags=['Authentication']),
|
||||
create=extend_schema(tags=['Authentication']),
|
||||
retrieve=extend_schema(tags=['Authentication']),
|
||||
update=extend_schema(tags=['Authentication']),
|
||||
partial_update=extend_schema(tags=['Authentication']),
|
||||
destroy=extend_schema(tags=['Authentication']),
|
||||
)
|
||||
class UsersViewSet(AccountModelViewSet):
|
||||
"""
|
||||
ViewSet for managing global user records and credentials.
|
||||
@@ -246,6 +259,14 @@ class UsersViewSet(AccountModelViewSet):
|
||||
# 3. ACCOUNTS - Register each unique organization/user space
|
||||
# ============================================================================
|
||||
|
||||
@extend_schema_view(
|
||||
list=extend_schema(tags=['Authentication']),
|
||||
create=extend_schema(tags=['Authentication']),
|
||||
retrieve=extend_schema(tags=['Authentication']),
|
||||
update=extend_schema(tags=['Authentication']),
|
||||
partial_update=extend_schema(tags=['Authentication']),
|
||||
destroy=extend_schema(tags=['Authentication']),
|
||||
)
|
||||
class AccountsViewSet(AccountModelViewSet):
|
||||
"""
|
||||
ViewSet for managing accounts (unique organization/user spaces).
|
||||
@@ -303,6 +324,14 @@ class AccountsViewSet(AccountModelViewSet):
|
||||
# 4. SUBSCRIPTIONS - Control plan level, limits, and billing per account
|
||||
# ============================================================================
|
||||
|
||||
@extend_schema_view(
|
||||
list=extend_schema(tags=['Authentication']),
|
||||
create=extend_schema(tags=['Authentication']),
|
||||
retrieve=extend_schema(tags=['Authentication']),
|
||||
update=extend_schema(tags=['Authentication']),
|
||||
partial_update=extend_schema(tags=['Authentication']),
|
||||
destroy=extend_schema(tags=['Authentication']),
|
||||
)
|
||||
class SubscriptionsViewSet(AccountModelViewSet):
|
||||
"""
|
||||
ViewSet for managing subscriptions (plan level, limits, billing per account).
|
||||
@@ -356,6 +385,14 @@ class SubscriptionsViewSet(AccountModelViewSet):
|
||||
# 5. SITE USER ACCESS - Assign users access to specific sites within account
|
||||
# ============================================================================
|
||||
|
||||
@extend_schema_view(
|
||||
list=extend_schema(tags=['Authentication']),
|
||||
create=extend_schema(tags=['Authentication']),
|
||||
retrieve=extend_schema(tags=['Authentication']),
|
||||
update=extend_schema(tags=['Authentication']),
|
||||
partial_update=extend_schema(tags=['Authentication']),
|
||||
destroy=extend_schema(tags=['Authentication']),
|
||||
)
|
||||
class SiteUserAccessViewSet(AccountModelViewSet):
|
||||
"""
|
||||
ViewSet for managing Site-User access permissions.
|
||||
@@ -394,6 +431,10 @@ class SiteUserAccessViewSet(AccountModelViewSet):
|
||||
# SUPPORTING VIEWSETS (Sites, Sectors, Industries, Plans, Auth)
|
||||
# ============================================================================
|
||||
|
||||
@extend_schema_view(
|
||||
list=extend_schema(tags=['Authentication']),
|
||||
retrieve=extend_schema(tags=['Authentication']),
|
||||
)
|
||||
class PlanViewSet(viewsets.ReadOnlyModelViewSet):
|
||||
"""
|
||||
ViewSet for listing active subscription plans.
|
||||
@@ -420,6 +461,14 @@ class PlanViewSet(viewsets.ReadOnlyModelViewSet):
|
||||
)
|
||||
|
||||
|
||||
@extend_schema_view(
|
||||
list=extend_schema(tags=['Authentication']),
|
||||
create=extend_schema(tags=['Authentication']),
|
||||
retrieve=extend_schema(tags=['Authentication']),
|
||||
update=extend_schema(tags=['Authentication']),
|
||||
partial_update=extend_schema(tags=['Authentication']),
|
||||
destroy=extend_schema(tags=['Authentication']),
|
||||
)
|
||||
class SiteViewSet(AccountModelViewSet):
|
||||
"""ViewSet for managing Sites."""
|
||||
serializer_class = SiteSerializer
|
||||
@@ -655,6 +704,14 @@ class SiteViewSet(AccountModelViewSet):
|
||||
)
|
||||
|
||||
|
||||
@extend_schema_view(
|
||||
list=extend_schema(tags=['Authentication']),
|
||||
create=extend_schema(tags=['Authentication']),
|
||||
retrieve=extend_schema(tags=['Authentication']),
|
||||
update=extend_schema(tags=['Authentication']),
|
||||
partial_update=extend_schema(tags=['Authentication']),
|
||||
destroy=extend_schema(tags=['Authentication']),
|
||||
)
|
||||
class SectorViewSet(AccountModelViewSet):
|
||||
"""ViewSet for managing Sectors."""
|
||||
serializer_class = SectorSerializer
|
||||
@@ -692,6 +749,10 @@ class SectorViewSet(AccountModelViewSet):
|
||||
)
|
||||
|
||||
|
||||
@extend_schema_view(
|
||||
list=extend_schema(tags=['Authentication']),
|
||||
retrieve=extend_schema(tags=['Authentication']),
|
||||
)
|
||||
class IndustryViewSet(viewsets.ReadOnlyModelViewSet):
|
||||
"""
|
||||
ViewSet for industry templates.
|
||||
@@ -727,6 +788,10 @@ class IndustryViewSet(viewsets.ReadOnlyModelViewSet):
|
||||
)
|
||||
|
||||
|
||||
@extend_schema_view(
|
||||
list=extend_schema(tags=['Authentication']),
|
||||
retrieve=extend_schema(tags=['Authentication']),
|
||||
)
|
||||
class SeedKeywordViewSet(viewsets.ReadOnlyModelViewSet):
|
||||
"""
|
||||
ViewSet for SeedKeyword - Global reference data (read-only for non-admins).
|
||||
@@ -776,6 +841,12 @@ class SeedKeywordViewSet(viewsets.ReadOnlyModelViewSet):
|
||||
# AUTHENTICATION ENDPOINTS (Register, Login, Change Password, Me)
|
||||
# ============================================================================
|
||||
|
||||
@extend_schema_view(
|
||||
register=extend_schema(tags=['Authentication']),
|
||||
login=extend_schema(tags=['Authentication']),
|
||||
change_password=extend_schema(tags=['Authentication']),
|
||||
refresh_token=extend_schema(tags=['Authentication']),
|
||||
)
|
||||
class AuthViewSet(viewsets.GenericViewSet):
|
||||
"""Authentication endpoints.
|
||||
Unified API Standard v1.0 compliant
|
||||
|
||||
Reference in New Issue
Block a user