You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ctk/src/backend/server/api/initViews.py

62 lines
2.0 KiB
Python

from django.http import Http404
from rest_framework.response import Response
from rest_framework.views import APIView
from rest_framework import status, generics
from .models import Init
from .serializers import InitSerializer
from rest_framework.permissions import IsAuthenticated, IsAdminUser
class CreateList(generics.GenericAPIView):
permission_classes = ()
objects = Init.objects.all()
serializer_class = InitSerializer
def get(self, request):
objects = Init.objects.all()
serializer = InitSerializer(objects, many=True)
return Response(serializer.data)
def post(self, request):
data = request.data.copy()
serializer = InitSerializer(data=data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
class Detail(generics.GenericAPIView):
def get_object(self, user, obj_id):
try:
return Init.objects.get(id=obj_id)
except Init.DoesNotExist:
raise Http404
def get(self, request, obj_id, format=None):
_object = self.get_object(user=request.user, obj_id=obj_id)
serializer = InitSerializer(_object)
return Response(serializer.data, status=status.HTTP_200_OK)
def put(self, request, obj_id, format=None):
update_data = request.data
_object = self.get_object(user=request.user, obj_id=obj_id)
serializer = InitSerializer(_object, data=update_data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_200_OK)
else:
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def delete(self, request, obj_id, format=None):
_object = self.get_object(user=request.user, obj_id=obj_id)
_object.delete()
return Response(status=status.HTTP_204_NO_CONTENT)