from rest_framework.exceptions import ValidationError
from rest_framework.views import exception_handler


def custom_exception_handler(exc, context):
    # Call REST framework's default exception handler first,
    # to get the standard error response.
    response = exception_handler(exc, context)
    if isinstance(exc, ValidationError):
        for item in response.data:
            if type(response.data[item]) is list:
                response.data[item] = response.data[item][0]
        my_response = {'status': 'validation_error', 'message': 'Some fields are not valid', 'fields': response.data}
        response.data = my_response

    return response
