Files
backend-v1/core/apps/tasks/views/task.py
2026-05-06 17:57:07 +05:00

43 lines
1.4 KiB
Python

from django.db import transaction
from drf_spectacular.utils import extend_schema
from rest_framework import permissions, generics, status
from rest_framework.response import Response
from core.apps.tasks.models.task import Task
from core.apps.tasks.serializers.task import TaskSerializer, TaskCreateSerializer
@extend_schema(tags=['Tasks'])
class TaskCreateView(generics.GenericAPIView):
permission_classes = [permissions.IsAuthenticated]
serializer_class = TaskCreateSerializer
queryset = Task.objects.order_by('id')
@transaction.atomic
def post(self, request):
serializer = self.get_serializer(data=request.data)
if not serializer.is_valid():
return Response({"status": False, "data": serializer.errors}, status=status.HTTP_400_BAD_REQUEST)
serializer.save()
return Response({
"status": True,
"data": serializer.data
})
@extend_schema(tags=['Tasks'])
class TaskListView(generics.ListAPIView):
permission_classes = [permissions.IsAuthenticated]
serializer_class = TaskSerializer
queryset = Task.objects.order_by('id')
def serializer_context(self):
return self.serializer_class(context={"request": self.request})
@extend_schema(tags=['Tasks'])
class TaskDetailView(generics.RetrieveUpdateDestroyAPIView):
permission_classes = [permissions.IsAuthenticated]
serializer_class = TaskSerializer
queryset = Task.objects.order_by('id')