o
    gëfH  ã                   @   s´   d Z ddlmZ zddlZW n ey-   zddlZW n ey*   ddlmZ Y nw Y nw ddlmZm	Z	 ddl
mZ dZdZd	Zd
ZG dd„ de	ƒZG dd„ deƒZdeiZdS )a9  
settings.py should include the following:

    ANGEL_CLIENT_ID = '...'
    ANGEL_CLIENT_SECRET = '...'

Optional scope to include 'email' and/or 'messages' separated by space:

    ANGEL_AUTH_EXTRA_ARGUMENTS = {'scope': 'email messages'}

More information on scope can be found at https://angel.co/api/oauth/faq
é    )Ú	urlencodeN)Ú
simplejson)Ú
BaseOAuth2ÚOAuthBackend)Údsa_urlopenzangel.coz%https://angel.co/api/oauth/authorize/z!https://angel.co/api/oauth/token/zhttps://api.angel.co/1/me/c                   @   s    e Zd ZdZdd„ Zdd„ ZdS )ÚAngelBackendÚangelc                 C   s   |d S )NÚid© )ÚselfÚdetailsÚresponser
   r
   úc/var/www/html/humari/django-venv/lib/python3.10/site-packages/social_auth/backends/contrib/angel.pyÚget_user_id$   s   zAngelBackend.get_user_idc                 C   sL   |d   d¡d }|d   d¡d }|d   d¡d }|d }||||dœS )	z&Return user details from Angel accountÚangellist_urlú/éÿÿÿÿÚnameú r   Úemail)ÚusernameÚ
first_nameÚ	last_namer   )Úsplit)r   r   r   r   r   r   r
   r
   r   Úget_user_details'   s   üzAngelBackend.get_user_detailsN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r
   r
   r
   r   r   !   s    r   c                   @   s4   e Zd ZdZeZeZeZ	dZ
dZdZdZdd„ ZdS )Ú	AngelAuthzAngel OAuth mechanismÚANGEL_CLIENT_IDÚANGEL_CLIENT_SECRETFc                 O   s>   d|i}t d t|ƒ }zt t|ƒ¡W S  ty   Y dS w )zLoads user data from serviceÚaccess_tokenú?N)ÚANGEL_CHECK_AUTHr   r   Úloadr   Ú
ValueError)r   r!   ÚargsÚkwargsÚparamsÚurlr
   r
   r   Ú	user_data?   s   ÿzAngelAuth.user_dataN)r   r   r   Ú__doc__ÚANGEL_AUTHORIZATION_URLÚAUTHORIZATION_URLÚANGEL_ACCESS_TOKEN_URLÚACCESS_TOKEN_URLr   ÚAUTH_BACKENDÚSETTINGS_KEY_NAMEÚSETTINGS_SECRET_NAMEÚREDIRECT_STATEÚSTATE_PARAMETERr*   r
   r
   r
   r   r   5   s    r   r   )r+   Úurllibr   Újsonr   ÚImportErrorÚdjango.utilsÚsocial_auth.backendsr   r   Úsocial_auth.utilsr   ÚANGEL_SERVERr,   r.   r#   r   r   ÚBACKENDSr
   r
   r
   r   Ú<module>   s,    ÿ€ýÿ