Source code for intranet.apps.api.utils
import logging
from django.conf import settings
from django.core.exceptions import ObjectDoesNotExist
from rest_framework import status
from rest_framework.response import Response
from rest_framework.views import exception_handler
from ..eighth import exceptions as eighth_exceptions
logger = logging.getLogger(__name__)
[docs]def custom_exception_handler(exc, context):
response = exception_handler(exc, context)
if isinstance(exc, eighth_exceptions.SignupException):
response = Response({"details": exc.messages()}, status=status.HTTP_400_BAD_REQUEST)
elif isinstance(exc, ObjectDoesNotExist):
response = Response({"details": ["Object does not exist (in database)."]}, status=status.HTTP_404_NOT_FOUND)
if not response and not settings.DEBUG:
logger.exception(exc)
response = Response({"details": ["Unknown error occurred."]}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
return response