o
    b                     @   s`   d dl mZmZ d dlmZ ddlmZmZ ddlm	Z	m
Z
 e ZedZG dd deZd	S )
    )current_appsession)	Namespace   )FrameworkIntegration
OAuthError)OAuth1SessionOAuth2Sessiontoken_updatec                   @   sB   e Zd ZeZeZdd Zdd ZdddZ	dd	 Z
ed
d ZdS )FlaskIntegrationc                 C   s   d | j|}|t|< d S Nz_{}_authlib_{}_)formatnamer   )selfrequestkeyvaluesess_key r   l/var/www/secure340b-portal/env/lib/python3.10/site-packages/authlib/integrations/flask_client/integration.pyset_session_data      z!FlaskIntegration.set_session_datac                 C   s   d | j|}t|d S r   )r   r   r   pop)r   r   r   r   r   r   r   get_session_data   r   z!FlaskIntegration.get_session_dataNc                 C   s   t jt| j|||d d S )N)r   tokenrefresh_tokenaccess_token)r
   sendr   r   )r   r   r   r   r   r   r   update_token   s   
zFlaskIntegration.update_tokenc                 C   s|   |r	|j jddS |jdkr0|j d}|r"|j d}t||d|j d |j dd	}|S |jd |jdd	}|S )
NT)ZflatGETerrorZerror_description)r    descriptioncodestate)r"   r#   )argsto_dictmethodgetr   form)r   Zrequest_token_urlr   r    r!   paramsr   r   r   generate_access_token_params    s   

	
z-FlaskIntegration.generate_access_token_paramsc                 C   sB   i }|D ]}d || }| jj|d }|d ur|||< q|S )Nz{}_{})r   upperZappconfigr'   )Zoauthr   r)   rvkZconf_keyvr   r   r   load_config5   s   zFlaskIntegration.load_config)NN)__name__
__module____qualname__r   Zoauth1_client_clsr	   Zoauth2_client_clsr   r   r   r*   staticmethodr0   r   r   r   r   r      s    
	r   N)Zflaskr   r   Zflask.signalsr   Zbase_clientr   r   Zrequests_clientr   r	   _signalsignalr
   r   r   r   r   r   <module>   s    
