api.py 832 B

12345678910111213141516171819202122232425262728293031
  1. from rest_framework.decorators import api_view
  2. from rest_framework.response import Response
  3. from rest_framework import serializers
  4. from misago.threads.validators import validate_post_length
  5. from . import common_flavour, finalise_markup
  6. @api_view(['POST'])
  7. def parse_markup(request):
  8. serializer = MarkupSerializer(data=request.data)
  9. serializer.is_valid(raise_exception=True)
  10. parsing_result = common_flavour(
  11. request,
  12. request.user,
  13. serializer.data['markup'],
  14. force_shva=True,
  15. )
  16. finalised = finalise_markup(parsing_result['parsed_text'])
  17. return Response({'parsed': finalised})
  18. class MarkupSerializer(serializers.Serializer):
  19. markup = serializers.CharField(allow_blank=True)
  20. def validate_markup(self, data):
  21. validate_post_length(data)
  22. return data