from django.db import transaction from rest_framework import permissions, generics from rest_framework.response import Response from drf_spectacular.utils import extend_schema 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) serializer.is_valid(raise_exception=True) serializer.save() return Response(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')