Add @extend_schema decorators to moderation ViewSet actions

- Add drf_spectacular imports (extend_schema, OpenApiResponse, inline_serializer)
- Annotate claim action with response schemas for 200/404/409/400
- Annotate unclaim action with response schemas for 200/403/400
- Annotate approve action with request=None and response schemas
- Annotate reject action with reason request body schema
- Annotate escalate action with reason request body schema
- All actions tagged with 'Moderation' for API docs grouping
This commit is contained in:
pacnpal
2026-01-13 19:34:41 -05:00
parent d631f3183c
commit 4140a0d8e7
18 changed files with 526 additions and 692 deletions

View File

@@ -13,7 +13,7 @@ from django_fsm import TransitionNotAllowed
from apps.accounts.models import User
from .models import EditSubmission, ModerationQueue, PhotoSubmission
from .models import EditSubmission, ModerationQueue
class ModerationService:
@@ -444,9 +444,9 @@ class ModerationService:
return queue_item
@staticmethod
def _create_queue_item_for_photo_submission(*, submission: PhotoSubmission, submitter: User) -> ModerationQueue:
def _create_queue_item_for_photo_submission(*, submission: EditSubmission, submitter: User) -> ModerationQueue:
"""
Create a moderation queue item for a photo submission.
Create a moderation queue item for a photo submission (EditSubmission with type=PHOTO).
Args:
submission: The photo submission
@@ -587,8 +587,9 @@ class ModerationService:
raise ValueError(f"Unknown action: {action}")
elif "photo_submission" in queue_item.tags:
# Find PhotoSubmission
submissions = PhotoSubmission.objects.filter(
# Find PHOTO EditSubmission
submissions = EditSubmission.objects.filter(
submission_type="PHOTO",
user=queue_item.flagged_by,
content_type=queue_item.content_type,
object_id=queue_item.entity_id,