o
    6k~i[                     @   sV   d dl Z d dlmZ d dlmZ d dlmZ d dlm	Z	 e 
eZG dd deZdS )    N)MiddlewareMixin)JsonResponse)ValidationError)APIExceptionc                   @   s   e Zd ZdZdd ZdS )ErrorHandlingMiddlewarez Custom error handling middlewarec                 C   s   t |trdS t |tr#tdddt|dr|jnt|iddddS tjd	| dd
 ddl	m
} |jrCtdt|i ddddS tddi ddddS )zHandle exceptionsNTzValidation errorerrorsmessage_dicti  )errormessagedatastatus_code)statuszUnhandled exception: )exc_infor   )settingsi  z!An internal server error occurred)
isinstancer   DjangoValidationErrorr   hasattrr   strloggerr	   django.confr   DEBUG)selfrequest	exceptionr    r   6/var/www/newdalilibackend/backend/common/middleware.pyprocess_exception   s<   

z)ErrorHandlingMiddleware.process_exceptionN)__name__
__module____qualname____doc__r   r   r   r   r   r   
   s    r   )loggingdjango.utils.deprecationr   django.httpr   django.core.exceptionsr   r   rest_framework.exceptionsr   	getLoggerr   r   r   r   r   r   r   <module>   s    
