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.
63 lines
1.9 KiB
63 lines
1.9 KiB
from rest_framework.renderers import JSONRenderer
|
|
from rest_framework.response import Response
|
|
from rest_framework.views import APIView
|
|
|
|
from storage.api import add_comment
|
|
from storage.models import File, Comment
|
|
from storage.serializers import FileSerializer, CommentSerializer
|
|
|
|
|
|
class FileView(APIView):
|
|
renderer_classes = (JSONRenderer,)
|
|
|
|
@staticmethod
|
|
def get(request):
|
|
tokens = request.GET.getlist('tokens', None)
|
|
if not tokens:
|
|
return Response("Attribute tokens not set", status=400)
|
|
|
|
file_list = []
|
|
|
|
for token in tokens:
|
|
try:
|
|
file_list.append(FileSerializer(File.objects.get(token=token)).data)
|
|
except File.DoesNotExist:
|
|
file_list.append({'upload': 'error'})
|
|
|
|
return Response(file_list, status=200)
|
|
|
|
|
|
class CommentView(APIView):
|
|
renderer_classes = (JSONRenderer,)
|
|
|
|
@staticmethod
|
|
def post(request):
|
|
text = request.JSON.get('text', None)
|
|
user_key = request.JSON.get('user_token', None)
|
|
files = request.JSON.get('files', [])
|
|
|
|
if user_key:
|
|
comment = add_comment(text=text, out_key=user_key, files=files)
|
|
return Response(CommentSerializer(comment).data, status=200)
|
|
|
|
return Response("user_token mast be set", status=400)
|
|
|
|
@staticmethod
|
|
def get(request):
|
|
tokens = request.GET.getlist('tokens', None)
|
|
|
|
if not tokens:
|
|
return Response("Attribute tokens not set", status=400)
|
|
|
|
if tokens == ["null"]:
|
|
return Response([], status=200)
|
|
|
|
comment_list = []
|
|
|
|
for token in tokens:
|
|
try:
|
|
comment_list.append(CommentSerializer(Comment.objects.get(token=token)).data)
|
|
except Comment.DoesNotExist:
|
|
comment_list.append({'upload': 'error'})
|
|
|
|
return Response(comment_list, status=200) |