diff --git a/progress/views.py b/progress/views.py index e0ae37d..6b3ee94 100644 --- a/progress/views.py +++ b/progress/views.py @@ -201,10 +201,10 @@ class StudentUpdateProgress(APIView): else: raise ValueError("Этого никогда не должно происходить, но я уверен, что произойдёт") - pv.save() + elif not comment is None: + pv.comment_tokens.append(comment) - else: - pass + pv.save() return Response(SecureProgressSerializer(pv.progress).data, status=200) diff --git a/storage/views.py b/storage/views.py index 55770d6..1b7c14c 100644 --- a/storage/views.py +++ b/storage/views.py @@ -1,3 +1,6 @@ +import base64 +import json + from rest_framework.renderers import JSONRenderer from rest_framework.response import Response from rest_framework.views import APIView @@ -44,12 +47,19 @@ class CommentView(APIView): @staticmethod def get(request): - token = request.GET.get('token', None) + base64_tokens = request.GET.get('base64_tokens', None) - if not token: + if not base64_tokens: return Response("Attribute token not set", status=400) - try: - return Response(CommentSerializer(Comment.objects.get(token=token)).data, status=200) - except Comment.DoesNotExist: - return Response("Comment not found", status=404) + tokens = json.loads(base64.b64decode(base64_tokens).decode('utf-8')) + comments = [] + + for token in tokens: + try: + comment = Comment.objects.get(token=token) + comments.append(comment) + except Comment.DoesNotExist: + pass + + return Response([CommentSerializer(comment).data for comment in comments], status=200)