o
    ^[2h                     @   sT   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 deZ	dS )	    N)Hashable)Any)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   /home/skpark/git/infrasmart_work/infrasmart/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                    s   d| j  d}| | }| jr$| j|td|i| jI d H  d S |d urKt| D ]}||r:|	| q.t

 }||| j d||< d S d S )Nr   r   r   )r   exp)r   r
   setr   dumps
expires_inlistkeys
startswithpoptime)r   r   r   r   
key_prefixr   old_key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
   deleter$   _clear_session_state)r   r   r   r   r   r   r   clear_state_data2   s   z%StarletteIntegration.clear_state_dataNc                 C   s   d S r	   r   )r   tokenrefresh_tokenaccess_tokenr   r   r   update_token:   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_config=   s   z StarletteIntegration.load_config)NN)__name__
__module____qualname__r   r   r   dictstrr   r   r)   r,   r0   staticmethodr:   r   r   r   r   r   
   s(    	



r   )
r   r%   collections.abcr   typingr   r   base_clientr   r   r   r   r   r   <module>   s    