U
    >i                     @   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)QUERY_EMAIL)OAuth2AdapterOAuth2CallbackViewOAuth2LoginViewc                   @   sZ   e Zd ZdZejei ZeddZe dZ	e dZ
e dZe dZdd	 Zd
S )LichessOAuth2AdapterZlichessZAPI_URLzhttps://lichess.orgz
/api/tokenz/oauthz/api/accountz/api/account/emailc           
      C   s   t   j| jd|jidd|j id}|  | }d|krJ|d n|}trt   j| jdd|j id}|  | }|dd }	|	r|	|d< | 	 
||S )NZaccess_tokenAuthorizationzBearer )paramsheadersresult)r   email)r   Zget_requests_sessiongetprofile_urltokenraise_for_statusjsonr   email_address_urlget_providerZsociallogin_from_response)
selfrequestZappr   responseZprofile_res
extra_dataZuser_profileZ
email_datar    r   Q/tmp/pip-unpacked-wheel-upujnpc2/allauth/socialaccount/providers/lichess/views.pycomplete_login   s*    


	z#LichessOAuth2Adapter.complete_loginN)__name__
__module____qualname__Zprovider_idr   Z	PROVIDERSr   settingsZprovider_base_urlZaccess_token_urlZauthorize_urlr   r   r   r   r   r   r   r      s   



r   N)Zallauth.socialaccountr   Zallauth.socialaccount.adapterr   Z"allauth.socialaccount.app_settingsr   Z,allauth.socialaccount.providers.oauth2.viewsr   r   r   r   Zadapter_viewZoauth2_loginZoauth2_callbackr   r   r   r   <module>   s   4
