
    i                         d dl Z d dlmZ d dlmZmZmZ d dlmZ d dl	m
Z
 d dlmZ  e j        e          Z G d de          Zd	ed
edefdZ G d de
          ZdS )    N)Request)AnyOptionalDict)JSONResponse)BaseHTTPMiddleware)ResponseWrapperc            
       T    e Zd Z	 	 ddededeeeef                  ddfdZdefdZ	dS )	HTTPExceptionNstatus_codedetailheadersreturnc                 0    || _         || _        || _        d S )N)r   r   r   )selfr   r   r   s       4/var/www/html/ls-ibe-bot-apis/app/exceptions/http.py__init__zHTTPException.__init__   s     '    c                     g }| j                                         D ]4\  }}|                    d          s|                    | d|           5| j        j         dd                    |           dS )zvClass custom __repr__ method implementation.

        Returns:
            str: HTTPException string object.

        _=(z, ))__dict__items
startswithappend	__class____name__join)r   kwargskeyvalues       r   __repr__zHTTPException.__repr__   s     ---// 	2 	2JC>>#&& 200u00111.)@@DIIf,=,=@@@@r   )NN)
r   
__module____qualname__intr   r   r   strr   r$    r   r   r   r   
   s        
 ,0		 		 	 $sCx.)		
 
	 	 	 	A# A A A A A Ar   r   request	exceptionr   c                 r   K   t          |j        t          d|j        d           j        |j                  S )NFstatusmessagedatar   contentr   )r   r   r	   r   r   r   )r*   r+   s     r   http_exception_handlerr3   '   sL      )$
 
 
 !   r   c                       e Zd ZdefdZdS )GlobalExceptionMiddlewarer*   c           	         K   	  ||           d {V S # t           $ rR}t                              d| d           t          dt	          ddd           j        dd	i
          cY d }~S d }~ww xY w)NzError: T)exc_infoi  FzInternal server errorr-   zAccess-Control-Allow-Origin*r1   )	Exceptionlogr+   r   r	   r   )r   r*   	call_nextexcs       r   dispatchz"GlobalExceptionMiddleware.dispatch4   s      	"7+++++++++ 	 	 	MM/C//DM999' 3   6<        	s    
A1AA,&A1,A1N)r   r%   r&   r   r=   r)   r   r   r5   r5   3   s/        g      r   r5   )loggingfastapir   typingr   r   r   fastapi.responsesr   starlette.middleware.baser   app.schemasr	   	getLoggerr   r:   r9   r   r3   r5   r)   r   r   <module>rE      s          & & & & & & & & & & * * * * * * 8 8 8 8 8 8 ' ' ' ' ' 'g!!A A A A AI A A A:
' 
m 
P\ 
 
 
 
     2     r   