o
    ˷e                     @   sN   d dl mZ d dlmZ d dlmZ G dd deZG dd deZegZdS )	    )app_settings)ProviderAccount)OAuthProviderc                       s,   e Zd Zdd Zdd Z fddZ  ZS )LinkedInAccountc                 C   s   | j jdS )Npublic-profile-url)account
extra_datagetself r   h/var/www/ideatree/venv/lib/python3.10/site-packages/allauth/socialaccount/providers/linkedin/provider.pyget_profile_url   s   zLinkedInAccount.get_profile_urlc                 C   sT   z| j jdi dr| j jdi dW S W n	 ty"   Y nw | j jdS )Nzpicture-urlspicture-url)r   r   r	   	Exceptionr
   r   r   r   get_avatar_url
   s   zLinkedInAccount.get_avatar_urlc                    sV   t t|  }| jjd|}| jjdd }| jjdd }|r)|r)|d | }|S )Nname
first-name	last-name )superr   to_strr   r   r	   )r   dfltr   
first_name	last_name	__class__r   r   r      s   zLinkedInAccount.to_str)__name__
__module____qualname__r   r   r   __classcell__r   r   r   r   r      s    r   c                   @   s8   e Zd ZdZdZeZdd Zdd Zdd Z	d	d
 Z
dS )LinkedInProviderlinkedinLinkedInc                 C   s   g }t jr
|d |S )Nr_emailaddress)r   QUERY_EMAILappend)r   scoper   r   r   get_default_scope&   s   
z"LinkedInProvider.get_default_scopec                 C   s   g d}|   d|}|S )N)idr   r   email-addressr   zpicture-urls::(original)r   PROFILE_FIELDS)get_settingsr	   )r   default_fieldsfieldsr   r   r   get_profile_fields,   s   
z#LinkedInProvider.get_profile_fieldsc                 C   s   |d S )Nr)   r   r   datar   r   r   extract_uid:   s   zLinkedInProvider.extract_uidc                 C   s    t |d|d|ddS )Nr*   r   r   )emailr   r   )dictr	   r0   r   r   r   extract_common_fields=   s
   z&LinkedInProvider.extract_common_fieldsN)r   r   r   r)   r   r   account_classr(   r/   r2   r5   r   r   r   r   r!   !   s    r!   N)	allauth.socialaccountr   $allauth.socialaccount.providers.baser   .allauth.socialaccount.providers.oauth.providerr   r   r!   provider_classesr   r   r   r   <module>   s    
$