api.py 834 B

1234567891011121314151617181920212223242526272829
  1. from rest_framework import status
  2. from rest_framework.decorators import api_view
  3. from rest_framework.response import Response
  4. from . import common_flavour, finalise_markup
  5. from .serializers import MarkupSerializer
  6. @api_view(['POST'])
  7. def parse_markup(request):
  8. serializer = MarkupSerializer(
  9. data=request.data, context={"settings": request.settings}
  10. )
  11. if not serializer.is_valid():
  12. errors_list = list(serializer.errors.values())[0]
  13. return Response(
  14. {'detail': errors_list[0]},
  15. status=status.HTTP_400_BAD_REQUEST,
  16. )
  17. parsing_result = common_flavour(
  18. request,
  19. request.user,
  20. serializer.data['post'],
  21. force_shva=True,
  22. )
  23. finalised = finalise_markup(parsing_result['parsed_text'])
  24. return Response({'parsed': finalised})