backend/checker/api/views.py

32 lines
1.0 KiB
Python
Raw Normal View History

2022-08-26 20:04:45 +03:00
from rest_framework import generics
2022-08-27 07:38:54 +03:00
from rest_framework.response import Response
from rest_framework.views import APIView
from rest_framework.generics import get_object_or_404
2022-08-26 20:04:45 +03:00
from rest_framework.parsers import MultiPartParser, FormParser
2022-08-27 07:38:54 +03:00
from checker.api.serializers import DocxSerializer, DocxStateSerializer
from checker.models import Docx, ParagraphType
2022-08-26 20:04:45 +03:00
class ListCreateDocxApiView(generics.ListCreateAPIView):
parser_classes = [FormParser, MultiPartParser]
serializer_class = DocxSerializer
queryset = Docx.objects.all()
2022-08-27 07:38:54 +03:00
class GetDocxState(generics.RetrieveAPIView):
lookup_field = "uuid"
queryset = Docx.objects.all()
serializer_class = DocxStateSerializer
class RetireDocxSerializer(APIView):
def get(self, request, uuid):
doc = get_object_or_404(Docx, uuid=uuid)
res = {}
2022-08-27 11:13:36 +03:00
paragraphs = ParagraphType.objects.all()
2022-08-27 07:38:54 +03:00
for p in paragraphs:
2022-08-27 11:13:36 +03:00
res[p.name] = [(x.text, x.score) for x in p.paragraphs.filter(docx=doc)]
2022-08-27 07:38:54 +03:00
return Response(res)