api.py 747 B

12345678910111213141516171819202122232425
  1. from rest_framework import status
  2. from rest_framework.decorators import api_view
  3. from rest_framework.response import Response
  4. from django.core.exceptions import ValidationError
  5. from django.utils import six
  6. from misago.threads.validators import validate_post
  7. from . import common_flavour, finalise_markup
  8. @api_view(['POST'])
  9. def parse_markup(request):
  10. post = six.text_type(request.data.get('post', '')).strip()
  11. try:
  12. validate_post(post)
  13. except ValidationError as e:
  14. return Response({'detail': e.args[0]}, status=status.HTTP_400_BAD_REQUEST)
  15. parsed = common_flavour(request, request.user, post, force_shva=True)['parsed_text']
  16. finalised = finalise_markup(parsed)
  17. return Response({'parsed': finalised})