o
    Df                     @   sH   d dl Z d dlZd dlmZmZmZmZ ddlmZ G dd deZ	dS )    N)AnyDictHashableOptional   )FrameworkIntegrationc                   @   s   e Zd ZdefddZdeeeef  dedeeef fddZ	deeeef  ded	efd
dZ
deeeef  defddZdddZedd ZdS )StarletteIntegrationkeyc              	      sB   | j |I d H }|sd S zt|W S  ttfy    Y d S w N)cachegetjsonloads	TypeError
ValueError)selfr	   value r   j/home/ubuntu/webapp/venv/lib/python3.10/site-packages/authlib/integrations/starlette_client/integration.py_get_cache_data   s   z$StarletteIntegration._get_cache_datasessionstatereturnc                    sV   d| j  d| }| jr| |I d H }n|d ur ||}nd }|r)|dS d S )N_state__data)namer   r   r   )r   r   r   r	   r   r   r   r   get_state_data   s   
z#StarletteIntegration.get_state_datar   c                    sl   d| j  d| }| jr | j|td|i| jI d H  d S |d ur4t }||| j d||< d S d S )Nr   r   r   )r   exp)r   r   setr   dumps
expires_intime)r   r   r   r   r	   nowr   r   r   set_state_data$   s   &z#StarletteIntegration.set_state_datac                    sV   d| j  d| }| jr| j|I d H  d S |d ur)||d  | | d S d S )Nr   r   )r   r   deletepop_clear_session_state)r   r   r   r	   r   r   r   clear_state_data,   s   z%StarletteIntegration.clear_state_dataNc                 C   s   d S r
   r   )r   tokenrefresh_tokenaccess_tokenr   r   r   update_token4   s   z!StarletteIntegration.update_tokenc                 C   sN   | j si S i }|D ]}| d|  }| j j|d d}|d ur$|||< q	|S )Nr   )default)configupperr   )oauthr   paramsrvkconf_keyvr   r   r   load_config7   s   z StarletteIntegration.load_config)NN)__name__
__module____qualname__r   r   r   r   strr   r   r$   r(   r,   staticmethodr6   r   r   r   r   r      s    *	"
r   )
r   r"   typingr   r   r   r   base_clientr   r   r   r   r   r   <module>   s
    