diff --git a/backend/api/account/views/alert_views.py b/backend/api/account/views/alert_views.py index 2fe6374..102b4fc 100644 --- a/backend/api/account/views/alert_views.py +++ b/backend/api/account/views/alert_views.py @@ -1,7 +1,8 @@ from rest_framework import status from rest_framework.viewsets import ViewSet from rest_framework.permissions import IsAuthenticated -from drf_spectacular.utils import extend_schema, OpenApiResponse, OpenApiExample +from drf_spectacular.utils import extend_schema, OpenApiResponse, OpenApiExample, inline_serializer +from rest_framework import serializers from rest_framework.decorators import action from rest_framework.response import Response from django.http import HttpResponse @@ -84,20 +85,23 @@ class AlertView(ViewSet): @extend_schema(tags=['Репорты']) class ReportView(ViewSet): - # permission_classes = [IsAuthenticated] + permission_classes = [IsAuthenticated] @extend_schema( summary="Генерация отчета", description="Генерирует отчет в выбранном формате (PDF или CSV)", request={'application/json': {'type': 'object', 'properties': {'report_format': {'type': 'string', 'enum': ['pdf', 'csv']}}}}, + methods=['POST'], responses={ - 200: OpenApiResponse(response=AlertSerializer(many=True), description="Список репортов успешно получен", - examples=[OpenApiExample( - 'Успешный ответ', - value=[{ - "message" : "Отчет успешно сгенерирован" - }] - )]), + 200: OpenApiResponse( + response=inline_serializer( + name='BinaryFile', + fields={ + 'file': serializers.FileField() + } + ), + description="Файл отчета для скачивания в формате PDF или CSV" + ), 400: OpenApiResponse( response=ErrorResponseSerializer, description="Неверный формат",