from rest_framework.views import APIView from rest_framework.renderers import JSONRenderer from rest_framework.response import Response from journals.models import Thread from journals.serilizers import ThreadUserSerializer, ThreadAdminSerializer class ThreadListView(APIView): renderer_classes = (JSONRenderer,) status_code = 200 def get(self, request): return Response( [ThreadAdminSerializer(thread).data for thread in Thread.objects.filter(is_staff=True)], self.status_code, ) class ThreadDetailView(APIView): renderer_classes = (JSONRenderer,) status_code = 200 def post(self, request, key): try: thread = Thread.objects.get(key=key) thread.text = request.JSON.get('text', thread.text) thread.key = request.JSON.get('key', thread.key) thread.x = request.JSON.get('x', thread.x) thread.y = request.JSON.get('y', thread.y) thread.save() return Response(ThreadAdminSerializer(thread).data, self.status_code,) except Thread.DoesNotExist: return Response("Thread doesn't exist.", self.status_code,) def get(self, request, key): try: return Response(ThreadUserSerializer(Thread.objects.get(key=key)).data, self.status_code) except Thread.DoesNotExist: return Response("Thread not found", status=404) # class FindThreadView(APIView): # renderer_classes = (JSONRenderer,) # status_code = 200 # # def get(self, request): # is_full = request.GET.get('full', True) # if is_full: # key = request.GET['key'] # return Response(ThreadSerializer(Thread.objects.get(key=key)).data, self.status_code)