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
+34 -3
View File
@@ -7,9 +7,31 @@ 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 .serializers import FertilizationRecommendRequestSerializer
FertilizationQueueResponseSerializer = build_envelope_serializer(
"FertilizationQueueResponseSerializer",
build_task_queue_data_serializer("FertilizationQueueDataSerializer"),
)
FertilizationValidationErrorSerializer = build_envelope_serializer(
"FertilizationValidationErrorSerializer",
data_required=False,
allow_null=True,
)
FertilizationStatusResponseSerializer = build_envelope_serializer(
"FertilizationStatusResponseSerializer",
build_task_status_data_serializer("FertilizationStatusDataSerializer"),
)
class FertilizationRecommendView(APIView):
"""
توصیه کودهی با Celery.
@@ -29,8 +51,14 @@ class FertilizationRecommendView(APIView):
),
request=FertilizationRecommendRequestSerializer,
responses={
202: OpenApiResponse(description="تسک در صف قرار گرفت"),
400: OpenApiResponse(description="پارامتر ورودی نامعتبر"),
202: build_response(
FertilizationQueueResponseSerializer,
"تسک توصیه کودهی در صف قرار گرفت.",
),
400: build_response(
FertilizationValidationErrorSerializer,
"پارامتر ورودی نامعتبر است.",
),
},
examples=[
OpenApiExample(
@@ -87,7 +115,10 @@ class FertilizationRecommendStatusView(APIView):
summary="وضعیت تسک توصیه کودهی",
description="وضعیت تسک Celery توصیه کودهی را برمی‌گرداند.",
responses={
200: OpenApiResponse(description="وضعیت تسک"),
200: build_response(
FertilizationStatusResponseSerializer,
"وضعیت فعلی تسک توصیه کودهی.",
),
},
)
def get(self, request, task_id):