This commit is contained in:
2026-03-25 01:56:41 +03:30
parent eb34360345
commit 98406cfd59
99 changed files with 3156 additions and 232 deletions
+27 -29
View File
@@ -11,9 +11,30 @@ from rest_framework import serializers as drf_serializers
from rest_framework.response import Response
from rest_framework.views import APIView
from config.openapi import (
build_envelope_serializer,
build_response,
build_task_status_data_serializer,
)
from .celery_tasks import sample_task
TaskTriggerResponseSerializer = build_envelope_serializer(
"TaskTriggerResponseSerializer",
inline_serializer(
name="TaskTriggerPayloadSerializer",
fields={
"task_id": drf_serializers.CharField(),
},
),
)
TaskStatusResponseSerializer = build_envelope_serializer(
"TaskStatusEnvelopeSerializer",
build_task_status_data_serializer("TaskStatusPayloadSerializer"),
)
class TaskTriggerView(APIView):
"""
ثبت و اجرای تسک.
@@ -33,18 +54,9 @@ class TaskTriggerView(APIView):
},
),
responses={
200: inline_serializer(
name="TaskTriggerResponse",
fields={
"code": drf_serializers.IntegerField(),
"msg": drf_serializers.CharField(),
"data": inline_serializer(
name="TaskTriggerData",
fields={
"task_id": drf_serializers.CharField(),
},
),
},
200: build_response(
TaskTriggerResponseSerializer,
"تسک نمونه با موفقیت در صف قرار گرفت.",
),
},
examples=[
@@ -85,23 +97,9 @@ class TaskStatusView(APIView):
summary="وضعیت تسک",
description="وضعیت یک تسک Celery را بر اساس task_id برمی‌گرداند.",
responses={
200: inline_serializer(
name="TaskStatusResponse",
fields={
"code": drf_serializers.IntegerField(),
"msg": drf_serializers.CharField(),
"data": inline_serializer(
name="TaskStatusData",
fields={
"task_id": drf_serializers.CharField(),
"status": drf_serializers.CharField(),
"message": drf_serializers.CharField(required=False),
"progress": drf_serializers.DictField(required=False),
"result": drf_serializers.JSONField(required=False),
"error": drf_serializers.CharField(required=False),
},
),
},
200: build_response(
TaskStatusResponseSerializer,
"وضعیت فعلی تسک Celery.",
),
},
examples=[