
    7>hH
                         d dl mZmZmZ d dlmZ d dlZd dlZd dlm	Z	 d dl
mZ  ej                  ej                          ej                  e      Z ed      Z ee      fd	efd
Zy)    )DependsHTTPExceptionstatus)OAuth2PasswordBearerN)settings)get_service_url)levelzapi/v1/token)tokenUrltokenc                   K   t        d      }| d}t        j                  d|        	 t        j                  dd      4 d{   }t        j                  d       |j                  |d	d
|  i       d{   }t        j                  d|j                          |j                  dk(  rN|j                         d   }t        j                  d|j                  dd              |cddd      d{    S t        j                  d|j                   d|j                          t        t        j                  d|j                   ddi      7 7 7 d# 1 d{  7  sw Y   yxY w# t        j                  $ rM}t        j                  dt        |              t        t        j                   dt        |             d}~wt        j"                  $ rM}t        j                  dt        |              t        t        j$                  dt        |             d}~wt&        $ rO}t        j                  dt        |       d       t        t        j(                  d t        |             d}~ww xY ww)!z}
    Validate the token by making a request to the auth service.
    Returns the user information if the token is valid.
    authz/api/v1/validate-tokenz!Attempting to validate token at: g      $@F)timeoutverifyNz"Sending request to auth service...AuthorizationzBearer )headerszAuth service response status:    userz'Token validated successfully for user: emailunknownzAuth service returned error: z - z$Invalid authentication credentials: zWWW-AuthenticateBearer)status_codedetailr   z"Connection error to auth service: zAuth service unavailable: )r   r   z$Timeout connecting to auth service: zAuth service timeout: z#Unexpected error validating token: T)exc_infozAuthentication error: )r   loggerinfohttpxAsyncClientpostr   jsongeterrortextr   r   HTTP_401_UNAUTHORIZEDConnectErrorstrHTTP_503_SERVICE_UNAVAILABLETimeoutExceptionHTTP_504_GATEWAY_TIMEOUT	ExceptionHTTP_500_INTERNAL_SERVER_ERROR)r   auth_service_urlvalidate_urlclientresponse	user_dataes          I/var/www/html/DP/alpha_backend/app/advisor_service/services/auth_utils.pyvalidate_tokenr2      sQ    
 'v.&''=>L
KK3L>BC'
$$T%@@FKK<=#[[(GE7*;< )  H
 KK89M9M8NOP##s*$MMOF3	EimmT[]fFgEhij  A@@ LL89M9M8NcRZR_R_Q`ab"88=hmm_M+X6  A A@@@(  
9#a&BC;;/Ax8
 	
 !! 
;CF8DE77+CF84
 	
  
:3q6(CdS==+CF84
 	

s   )JE6 EE6 1E!<E=A1E!.E6 :E;E6 ?J AE!E6 E!E6 !E3'E*(E3/E6 2J3E6 6J
	AGJ
'AH//J
;A
JJ

J)fastapir   r   r   fastapi.securityr   r   loggingapp.common.configr   app.common.service_utilsr   basicConfigINFO	getLogger__name__r   oauth2_schemer%   r2        r1   <module>r?      sb    2 2 1   & 4   ',, '			8	$ %n=&-m&< 0
 0
r>   