
    atj                         d dl mZmZ d dlmZ d dlmZ d dlmZ d dl	Z	d dl	m
Z
mZ d dlmZ dd	gZd
edefdZ G d de          ZdS )    )RequestHTTPException)JSONResponse)Match)BaseHTTPMiddlewareN)ExpiredSignatureErrorInvalidTokenError)settingsz/healthz/hotel/chattokenreturnc                   K   	 t          j        | t          j        t          j        g          }|S # t
          $ r! t          d           t          dd          t          $ r! t          d           t          dd          w xY w)N)
algorithmszToken has expired  status_codedetailzInvalid token)	jwtdecoder
   JWT_SECRET_KEYJWT_ALGORITHMr   printr   r	   )r   payloads     >/var/www/html/ls-pms-bot-apis/app/middleware/authentication.pyverify_jwt_tokenr      s      
E*UH$;I_H`aaa  I I I!"""4GHHHH E E EoODDDDEs
   -2 ABc                       e Zd ZdefdZdS )AuthenticationMiddlewarerequestc                   K   	 d}|j         j        j        D ]3}|                    |j                  \  }}|t
          j        k    rd} n4|r|j        dk    r ||           d {V S |j        j	        
                    t          j        d          }|t          v r ||           d {V S |j                            d          st!          dd          t#          |j                            d                     d {V }||j        _         ||           d {V S # t           $ r/}	t)          |	j        d|	j        d d	|	j        
          cY d }	~	S d }	~	ww xY w)NFTOPTIONS Authorizationr   Unauthorizedr   )statusmessagedata)r   contentheaders)approuterroutesmatchesscoper   NONEmethodurlpathreplacer
   
API_PREFIXPUBLIC_ROUTESr'   getr   r   stateuserr   r   r   )
selfr   	call_nextroute_existsroutematch_r0   r6   	exceptions
             r   dispatchz!AuthenticationMiddleware.dispatch    s     '	 L +2   ==77qEJ&&#'LE '
   07>Y#>#>&Yw///////// ;#++H,?DDD }$$&Yw///////// ?&&77 L#NKKKK)'/*=*=o*N*NOOOOOOOOD!%GM"7+++++++++ 		 		 		%1#(/  
 ")        		s,   A$D" )AD" -A4D" "
E,$EEEN)__name__
__module____qualname__r   r>        r   r   r      s/        )g ) ) ) ) ) )rC   r   )fastapir   r   fastapi.responsesr   starlette.routingr   starlette.middleware.baser   r   r   r	   app.core.configr
   r3   strdictr   r   rB   rC   r   <module>rK      s    * * * * * * * * * * * * * * # # # # # # 8 8 8 8 8 8 



 8 8 8 8 8 8 8 8 $ $ $ $ $ $ 
E# E$ E E E E+ + + + +1 + + + + +rC   