
    g                     b    d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZ d dlm	Z	  G d de      Z
y)    N)datetime)AuthType)AuthStrategy)TokenManagerc                   H     e Zd Zdef fdZdefdZdefdZd Z	d Z
 xZS )TokenAuthStrategytoken_managerc                    t         |   t        j                         || _        d | _        t        j                         | _        t        j                  t        j                         t        j                  t              | _        y )N)level)super__init__r   
ORGS_TOKENr	   token	threadingLocklockloggingbasicConfigINFO	getLogger__name__logger)selfr	   	__class__s     e/var/www/html/Manimaran/venv/lib/python3.12/site-packages/twilio/auth_strategy/token_auth_strategy.pyr   zTokenAuthStrategy.__init__   sW    ,,-*
NN$	',,/''1    returnc                 @    | j                          d| j                   S )NzBearer )fetch_tokenr   r   s    r   get_auth_stringz!TokenAuthStrategy.get_auth_string   s    %%r   c                      y)NT r    s    r   requires_authenticationz)TokenAuthStrategy.requires_authentication   s    r   c                    | j                   *| j                   dk(  s| j                  | j                         r| j                  5  | j                   *| j                   dk(  s| j                  | j                         r:| j                  j	                  d       | j
                  j                         | _         d d d        y y # 1 sw Y   y xY w)N z0New token fetched for accessing organization API)r   is_token_expiredr   r   infor	   fetch_access_tokenr    s    r   r   zTokenAuthStrategy.fetch_token   s    ::r!1T5J5J4::5VJJ&zzR',,TZZ8KK$$%WX!%!3!3!F!F!HDJ  6Ws   A1B>>Cc                 "   	 t        j                  |ddi      }|j                  d      }|yt        j                  |      t        j
                         k  S # t         j                  $ r Y yt        $ r}t        d|        Y d }~yd }~ww xY w)Nverify_signatureF)optionsexpTzAn error occurred: )	jwtdecodegetr   fromtimestamputcnowDecodeError	Exceptionprint)r   r   decodedr-   es        r   r'   z"TokenAuthStrategy.is_token_expired&   s    	jj1CU0KLG++e$C{ ))#.1BBB 	 	's+,	s"   ,A )A B.B6B		B)r   
__module____qualname__r   r   strr!   boolr$   r   r'   __classcell__)r   s   @r   r   r      s2    2l 2& & 	Ir   r   )r.   r   r   r   twilio.auth_strategy.auth_typer   "twilio.auth_strategy.auth_strategyr   twilio.http.token_managerr   r   r#   r   r   <module>r@      s&    
    3 ; 2* *r   