api.py 753 B

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