from django.db import transaction from rest_framework import generics, permissions from rest_framework.response import Response from drf_spectacular.utils import extend_schema from core.apps.tasks.serializers.column import ColumnSerializer from core.apps.tasks.models.column import Column @extend_schema(tags=['Tasks']) class ColumnCreateApiView(generics.GenericAPIView): permission_classes = [permissions.IsAuthenticated] serializer_class = ColumnSerializer @transaction.atomic def post(self, request): serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) column = serializer.save() return Response(serializer.data) @extend_schema(tags=['Tasks']) class ColumnListApiView(generics.ListAPIView): permission_classes = [permissions.IsAuthenticated] serializer_class = ColumnSerializer def get_queryset(self): return Column.objects.order_by('id') @extend_schema(tags=['Tasks']) class ColumnUpdateApiView(generics.UpdateAPIView): permission_classes = [permissions.IsAuthenticated] serializer_class = ColumnSerializer lookup_field = 'id' queryset = Column.objects.all() @extend_schema(tags=['Tasks']) class ColumnDeleteApiView(generics.DestroyAPIView): permission_classes = [permissions.IsAuthenticated] serializer_class = ColumnSerializer lookup_field = 'id' queryset = Column.objects.all()