o
    &zh                     @   sR   d Z 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 )
z0Customise Provider classes for MailChimp API v3.    )ProviderAccount)MailChimpOAuth2Adapter)OAuth2Providerc                       s0   e Zd ZdZdd Zdd Z fddZ  ZS )MailChimpAccountz'ProviderAccount subclass for MailChimp.c                 C   s   | j jd S )zReturn base profile url.api_endpointaccount
extra_dataself r   m/var/www/html/kangema/venv/lib/python3.10/site-packages/allauth/socialaccount/providers/mailchimp/provider.pyget_profile_url      z MailChimpAccount.get_profile_urlc                 C   s   | j jd d S )zReturn avatar url.loginavatarr   r
   r   r   r   get_avatar_url   s   zMailChimpAccount.get_avatar_urlc                    s2   t   }| jjdi }|dp|dp|S )Nr   login_emailemail)superto_strr   r	   get)r   dflt
login_data	__class__r   r   r      s   
zMailChimpAccount.to_str)__name__
__module____qualname____doc__r   r   r   __classcell__r   r   r   r   r      s
    r   c                   @   s8   e Zd ZdZdZdZeZeZ	dd Z
dd Zdd	 Zd
S )MailChimpProviderz)OAuth2Provider subclass for MailChimp v3.	mailchimp	MailChimpc                 C   s   t |d S )z.Extract uid ('user_id') and ensure it's a str.user_id)strr   datar   r   r   extract_uid!   r   zMailChimpProvider.extract_uidc                 C   s   dgS )z&Ensure scope is null to fit their API. r   r
   r   r   r   get_default_scope%   s   z#MailChimpProvider.get_default_scopec              
   C   s@   t |d|d|d|d|d|d|ddS )	z%Extract fields from a metadata query.dcroleaccountnamer$   r   	login_urlr   )r+   r,   account_namer$   r   r.   r   )dictr   r&   r   r   r   extract_common_fields)   s   z'MailChimpProvider.extract_common_fieldsN)r   r   r   r   idnamer   account_classr   oauth2_adapter_classr(   r*   r1   r   r   r   r   r!      s    r!   N)
r   $allauth.socialaccount.providers.baser   /allauth.socialaccount.providers.mailchimp.viewsr   /allauth.socialaccount.providers.oauth2.providerr   r   r!   provider_classesr   r   r   r   <module>   s    
