o
    ˷ea                     @   s\   d dl Z d dlmZ d dlmZmZmZ ddlmZ G dd deZ	e
e	Ze
e	ZdS )    N)app_settings)OAuth2AdapterOAuth2CallbackViewOAuth2LoginView   )LinkedInOAuth2Providerc                   @   s6   e Zd ZejZdZdZdZdZ	dZ
dd Zdd	 Zd
S )LinkedInOAuth2Adapterz-https://www.linkedin.com/oauth/v2/accessTokenz/https://www.linkedin.com/oauth/v2/authorizationzhttps://api.linkedin.com/v2/mezRhttps://api.linkedin.com/v2/emailAddress?q=members&projection=(elements*(handle~))GETc                 K   s   |  |}|  ||S )N)get_user_infoget_providersociallogin_from_response)selfrequestapptokenkwargs
extra_data r   l/var/www/ideatree/venv/lib/python3.10/site-packages/allauth/socialaccount/providers/linkedin_oauth2/views.pycomplete_login   s   
z$LinkedInOAuth2Adapter.complete_loginc                 C   s   |    }i }||    di  dd|jg|d< i }tjr3t	j| j
|d}|jr3| }| jdd|  }t	j||d}|  ||  |S )NHEADERS BearerAuthorization)headersz?projection=(%s),)r   get_profile_fieldsupdateget_settingsgetjoinr   r   QUERY_EMAILrequests	email_urlokjsonprofile_urlraise_for_status)r   r   fieldsr   inforespurlr   r   r   r
      s   z#LinkedInOAuth2Adapter.get_user_infoN)__name__
__module____qualname__r   idprovider_idaccess_token_urlauthorize_urlr&   r#   access_token_methodr   r
   r   r   r   r   r      s    r   )r"   allauth.socialaccountr   ,allauth.socialaccount.providers.oauth2.viewsr   r   r   providerr   r   adapter_viewoauth2_loginoauth2_callbackr   r   r   r   <module>   s    
$