api.py 783 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 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({
  15. 'detail': e.args[0]
  16. }, status=status.HTTP_400_BAD_REQUEST)
  17. parsed = common_flavour(request, request.user, post, force_shva=True)['parsed_text']
  18. finalised = finalise_markup(parsed)
  19. return Response({
  20. 'parsed': finalised
  21. })