B
    ]\e                 @   s\   d dl Z d dlmZmZmZ ddlmZ G dd deZG dd de	Z
G d	d
 d
e	ZdS )    N)urlparseextract_params
url_decode   )InsecureTransportErrorc                   s0   e Zd Z fddZdd Zedd Z  ZS )OAuth2Tokenc                sR   d|krt |d |d< n$d|kr>t t t |d  |d< tt| | d S )N
expires_atZ
expires_in)inttimesuperr   __init__)selfparams)	__class__ w/private/var/folders/pf/vfcx6ndx4k5bb3vdnp68mdb40000gn/T/pip-install-6fjfx5ra/authlib/authlib/specs/rfc6749/wrappers.pyr   	   s    
zOAuth2Token.__init__c             C   s   |  d}|sd S |t k S )Nr   )getr
   )r   r   r   r   r   
is_expired   s    
zOAuth2Token.is_expiredc             C   s    t |trt || s| |}|S )N)
isinstancedict)clstokenr   r   r   	from_dict   s    zOAuth2Token.from_dict)__name__
__module____qualname__r   r   classmethodr   __classcell__r   r   )r   r   r      s   r   c               @   s   e Zd ZdddZdd ZdS )OAuth2RequestNc             C   s   t | || _|| _|| _|p"i | _t|j| _t| j| _	t
|pJg | _i }| j	rh|t| j	 | jr~|t| j || _d | _d | _d | _d S )N)r   checkmethoduribodyheadersr   queryr   Zquery_paramsr   Zbody_paramsupdater   datauserZ
credentialclient)r   r    r!   r"   r#   r   r   r   r   r      s"    

zOAuth2Request.__init__c          
   C   s^   dddddddh}yt | |S  tk
rX } z||krD| j|S |W d d }~X Y nX d S )NZ	client_idcodeZredirect_uriscopestateZresponse_typeZ
grant_type)object__getattribute__AttributeErrorr&   r   )r   keykeyserrorr   r   r   __getattr__6   s    
zOAuth2Request.__getattr__)NN)r   r   r   r   r2   r   r   r   r   r      s   
r   c               @   s   e Zd ZdddZdS )TokenRequestNc             C   s    || _ || _|| _|pi | _d S )N)r    r!   r"   r#   )r   r    r!   r"   r#   r   r   r   r   D   s    zTokenRequest.__init__)NN)r   r   r   r   r   r   r   r   r3   C   s   r3   )r
   Zauthlib.common.urlsr   r   r   errorsr   r   r   r,   r   r3   r   r   r   r   <module>   s
   %