o
    Lf	                     @   s`   d dl mZ d dlmZ d dlmZ d dlmZmZm	Z	 G dd deZ
e	e
Zee
ZdS )    )app_settings)get_adapter)GitHubProvider)OAuth2AdapterOAuth2CallbackViewOAuth2LoginViewc                   @   s   e Zd ZejZejei Z	de	v r e	d
dZdeZndZdZdeZdeZdeZd	eZd
d Zdd ZdS )GitHubOAuth2Adapter
GITHUB_URL/z
{0}/api/v3zhttps://github.comzhttps://api.github.comz{0}/login/oauth/access_tokenz{0}/login/oauth/authorizez{0}/userz{0}/user/emailsc                 K   sd   dd |ji}t  j| j|d}|  | }tj	r*|ds*| 
||d< |  ||S )NAuthorizationztoken {}headersemail)formattokenr   get_requests_sessiongetprofile_urlraise_for_statusjsonr   QUERY_EMAIL	get_emailget_providersociallogin_from_response)selfrequestappr   kwargsr   resp
extra_data r    m/var/www/html/humari/django-venv/lib/python3.10/site-packages/allauth/socialaccount/providers/github/views.pycomplete_login   s   z"GitHubOAuth2Adapter.complete_loginc                 C   s   d }t   j| j|d}|jdkrd S |  | }|jdkr?|r?|d }dd |D }|r4|d }t|tr?|dd}|S )	Nr   i     r   c                 S   s$   g | ]}t |tr|d r|qS )primary)
isinstancedictr   ).0er    r    r!   
<listcomp>2   s    
z1GitHubOAuth2Adapter.get_email.<locals>.<listcomp>r    )	r   r   r   
emails_urlstatus_coder   r   r%   r&   )r   r   r   r   emailsprimary_emailsr    r    r!   r   &   s"   

zGitHubOAuth2Adapter.get_emailN)__name__
__module____qualname__r   idprovider_idr   	PROVIDERSr   settingsrstripweb_urlr   api_urlaccess_token_urlauthorize_urlr   r+   r"   r   r    r    r    r!   r      s    



r   N)allauth.socialaccountr   allauth.socialaccount.adapterr   /allauth.socialaccount.providers.github.providerr   ,allauth.socialaccount.providers.oauth2.viewsr   r   r   r   adapter_viewoauth2_loginoauth2_callbackr    r    r    r!   <module>   s    
1