UPDATE
This commit is contained in:
+27
-29
@@ -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=[
|
||||
|
||||
Reference in New Issue
Block a user