UPDATE
This commit is contained in:
+38
-14
@@ -7,9 +7,34 @@ from rest_framework import status
|
||||
from rest_framework.response import Response
|
||||
from rest_framework.views import APIView
|
||||
|
||||
from config.openapi import (
|
||||
build_envelope_serializer,
|
||||
build_response,
|
||||
build_task_queue_data_serializer,
|
||||
build_task_status_data_serializer,
|
||||
)
|
||||
|
||||
from .tasks import generate_dashboard_data_task
|
||||
|
||||
|
||||
DashboardDataGenerateDataSerializer = build_task_queue_data_serializer(
|
||||
"DashboardDataGenerateDataSerializer"
|
||||
)
|
||||
DashboardDataGenerateResponseSerializer = build_envelope_serializer(
|
||||
"DashboardDataGenerateResponseSerializer",
|
||||
DashboardDataGenerateDataSerializer,
|
||||
)
|
||||
DashboardDataErrorResponseSerializer = build_envelope_serializer(
|
||||
"DashboardDataErrorResponseSerializer",
|
||||
data_required=False,
|
||||
allow_null=True,
|
||||
)
|
||||
DashboardDataStatusResponseSerializer = build_envelope_serializer(
|
||||
"DashboardDataStatusResponseSerializer",
|
||||
build_task_status_data_serializer("DashboardDataStatusDataSerializer"),
|
||||
)
|
||||
|
||||
|
||||
class DashboardDataGenerateView(APIView):
|
||||
@extend_schema(
|
||||
tags=["Dashboard Data"],
|
||||
@@ -22,21 +47,14 @@ class DashboardDataGenerateView(APIView):
|
||||
},
|
||||
),
|
||||
responses={
|
||||
202: inline_serializer(
|
||||
name="DashboardDataGenerateResponse",
|
||||
fields={
|
||||
"code": drf_serializers.IntegerField(),
|
||||
"msg": drf_serializers.CharField(),
|
||||
"data": inline_serializer(
|
||||
name="DashboardDataGenerateResponseData",
|
||||
fields={
|
||||
"task_id": drf_serializers.CharField(),
|
||||
"status_url": drf_serializers.CharField(),
|
||||
},
|
||||
),
|
||||
},
|
||||
202: build_response(
|
||||
DashboardDataGenerateResponseSerializer,
|
||||
"تسک ساخت داده داشبورد در صف قرار گرفت.",
|
||||
),
|
||||
400: build_response(
|
||||
DashboardDataErrorResponseSerializer,
|
||||
"پارامتر ورودی نامعتبر است.",
|
||||
),
|
||||
400: OpenApiResponse(description="Invalid input"),
|
||||
},
|
||||
)
|
||||
def post(self, request):
|
||||
@@ -72,6 +90,12 @@ class DashboardDataStatusView(APIView):
|
||||
@extend_schema(
|
||||
tags=["Dashboard Data"],
|
||||
summary="Dashboard task status",
|
||||
responses={
|
||||
200: build_response(
|
||||
DashboardDataStatusResponseSerializer,
|
||||
"وضعیت فعلی تسک داده داشبورد.",
|
||||
),
|
||||
},
|
||||
)
|
||||
def get(self, request, task_id):
|
||||
result = AsyncResult(task_id)
|
||||
|
||||
Reference in New Issue
Block a user