o
    gëf«
  ã                   @   sP   d Z ddlmZmZ ddlmZmZ G dd„ deƒZG dd„ deƒZdeiZ	d	S )
zÑ
Stripe OAuth2 support.

This backend adds support for Stripe OAuth2 service. The settings
STRIPE_APP_ID and STRIPE_API_SECRET must be defined with the values
given by Stripe application registration process.
é    )Ú
BaseOAuth2ÚOAuthBackend)Ú
AuthFailedÚAuthCanceledc                   @   s(   e Zd ZdZdZdZg d¢Zdd„ ZdS )ÚStripeBackendz$Stripe OAuth2 authentication backendÚstripeÚstripe_user_id))Ústripe_publishable_keyr	   )Úaccess_tokenr
   )Úlivemoder   )Ú
token_typer   )Úrefresh_tokenr   )r   r   c                 C   s   |  d¡ddœS )z'Return user details from Stripe accountr   Ú )ÚusernameÚemail)Úget)ÚselfÚresponse© r   ú\/var/www/html/humari/django-venv/lib/python3.10/site-packages/social_auth/backends/stripe.pyÚget_user_details   s   ÿzStripeBackend.get_user_detailsN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚID_KEYÚ
EXTRA_DATAr   r   r   r   r   r      s    	r   c                   @   s`   e Zd ZdZeZdZdZdZdZ	dZ
dZdd	„ Zddd„Zddd„Zedd„ ƒZedd„ ƒZd
S )Ú
StripeAuthzFacebook OAuth2 supportz*https://connect.stripe.com/oauth/authorizez&https://connect.stripe.com/oauth/tokenÚSTRIPE_SCOPEÚSTRIPE_APP_IDÚSTRIPE_APP_SECRETFc                 C   sH   | j  d¡r"| j  d¡p| j d }| j d dkrt| |ƒ‚t| |ƒ‚d S )NÚerrorÚerror_descriptionÚaccess_denied)Údatar   r   r   )r   r%   r"   r   r   r   Úprocess_error)   s   

ûzStripeAuth.process_errorNc                 C   s(   |   ¡ \}}| j|dœ}|r||d< |S )N)Úresponse_typeÚ	client_idÚstate)Úget_key_and_secretÚRESPONSE_TYPE)r   r)   r(   Úclient_secretÚparamsr   r   r   Úauth_params1   s   þzStripeAuth.auth_paramsc                 C   s,   |   ¡ \}}d|| j |  ¡ ¡| jd dœS )NÚauthorization_codeÚcode)Ú
grant_typer(   Úscoper0   )r*   ÚSCOPE_SEPARATORÚjoinÚ	get_scoper%   )r   r)   r(   r,   r   r   r   Úauth_complete_params;   s   üzStripeAuth.auth_complete_paramsc                 C   s   |   ¡ \}}dd| dœS )Nzapplication/jsonz	Bearer %s)ÚAcceptÚAuthorization)r*   )Úclsr(   r,   r   r   r   Úauth_headersD   s   þzStripeAuth.auth_headersc                 C   s
   |ddœS )Nr   )r   r1   r   )r9   r   r   r   r   Úrefresh_token_paramsL   s   þzStripeAuth.refresh_token_params)N)r   r   r   r   r   ÚAUTH_BACKENDÚAUTHORIZATION_URLÚACCESS_TOKEN_URLÚSCOPE_VAR_NAMEÚSETTINGS_KEY_NAMEÚSETTINGS_SECRET_NAMEÚREDIRECT_STATEr&   r.   r6   Úclassmethodr:   r;   r   r   r   r   r      s     


	
r   r   N)
r   Úsocial_auth.backendsr   r   Úsocial_auth.exceptionsr   r   r   r   ÚBACKENDSr   r   r   r   Ú<module>   s    7ÿ