48 lines
1.4 KiB
Python
48 lines
1.4 KiB
Python
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()
|