gnm_deliverables/parsers.py (17 lines of code) (raw):

from rest_framework.parsers import BaseParser from rest_framework.exceptions import ParseError from django.conf import settings import codecs import logging logger = logging.getLogger(__name__) class PlainTextParser(BaseParser): """ Plain text parser, from https://www.django-rest-framework.org/api-guide/parsers/ """ media_type = 'text/plain' def parse(self, stream, media_type=None, parser_context=None): """ Simply return a string representing the body of the request. """ parser_context = parser_context or {} encoding = parser_context.get('encoding', settings.DEFAULT_CHARSET) try: decoded_stream = codecs.getreader(encoding)(stream) return decoded_stream.read() except LookupError as e: logger.error("Could not find codec for text encoding {0}".format(encoding)) raise ParseError("Could not find text codec, see logs")