o
    õÁhQ  ã                   @   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 )é    )ÚOptional)Úapp_settings)Úget_adapter)ÚOAuth2AdapterÚOAuth2CallbackViewÚOAuth2LoginViewc                   @   sŒ   e Zd Zd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ee fdd„ZdS )ÚGitHubOAuth2AdapterÚgithubÚ
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   sb   dd  |j¡i}tƒ  ¡ j| j|d}| ¡  | ¡ }tj	r)|  
|¡ }r)||d< |  ¡  ||¡S )NÚAuthorizationztoken {}©ÚheadersÚemails)ÚformatÚtokenr   Úget_requests_sessionÚgetÚprofile_urlÚraise_for_statusÚjsonr   ÚQUERY_EMAILÚ
get_emailsÚget_providerÚsociallogin_from_response)	ÚselfÚrequestÚappr   Úkwargsr   ÚrespÚ
extra_datar   © r!   úc/var/www/html/pos/venv/lib/python3.10/site-packages/allauth/socialaccount/providers/github/views.pyÚcomplete_login   s   ÿz"GitHubOAuth2Adapter.complete_loginÚreturnc                 C   s4   t ƒ  ¡ j| j|d}|jdkrd S | ¡  | ¡ S )Nr   i”  )r   r   r   Ú
emails_urlÚstatus_coder   r   )r   r   r   r!   r!   r"   r   (   s   ÿ
zGitHubOAuth2Adapter.get_emailsN)Ú__name__Ú
__module__Ú__qualname__Úprovider_idr   Ú	PROVIDERSr   ÚsettingsÚrstripÚweb_urlr   Úapi_urlÚaccess_token_urlÚauthorize_urlr   r%   r#   r   Úlistr   r!   r!   r!   r"   r      s    



r   N)Útypingr   Úallauth.socialaccountr   Úallauth.socialaccount.adapterr   Ú,allauth.socialaccount.providers.oauth2.viewsr   r   r   r   Úadapter_viewÚoauth2_loginÚoauth2_callbackr!   r!   r!   r"   Ú<module>   s    
'