You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.7 KiB
51 lines
1.7 KiB
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) |