o
    &zhj                     @   s^   d Z ddlm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 )z1Customise Provider classes for Eventbrite API v3.    )EmailAddress)ProviderAccount)EventbriteOAuth2Adapter)OAuth2Providerc                       s(   e Zd ZdZdd Z fddZ  ZS )EventbriteAccountz(ProviderAccount subclass for Eventbrite.c                 C   s   | j jd S )zReturn avatar url.image_id)account
extra_dataself r   n/var/www/html/kangema/venv/lib/python3.10/site-packages/allauth/socialaccount/providers/eventbrite/provider.pyget_avatar_url      z EventbriteAccount.get_avatar_urlc                    s(   | j jd}|r|d d S t  S )Nemailsr   email)r   r	   getsuperto_str)r   r   	__class__r   r   r      s   
zEventbriteAccount.to_str)__name__
__module____qualname____doc__r   r   __classcell__r   r   r   r   r   	   s    r   c                   @   s@   e Zd ZdZdZdZeZeZ	dd Z
dd Zdd	 Zd
d ZdS )EventbriteProviderz'OAuth2Provider subclass for Eventbrite.
eventbrite
Eventbritec                 C   s   t |d S )z)Extract uid ('id') and ensure it's a str.id)str)r   datar   r   r   extract_uid   r   zEventbriteProvider.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$EventbriteProvider.get_default_scopec              	   C   sx   d}| dg D ]}|p| d}| ddr"| ddr"| d}qt|| d| d| d	| d
| ddS )z'Extract fields from a basic user query.Nr   r   verifiedFprimaryr   name
first_name	last_name	image_url)r   r   r'   r(   r)   r*   )r   dict)r   r!   r   
curr_emailr   r   r   extract_common_fields'   s   
z(EventbriteProvider.extract_common_fieldsc                 C   s8   g }| dg D ]}|t| d| dd q|S )Nr   r   r%   )r   r%   )r   appendr   )r   r!   	addressesr   r   r   r   extract_email_addresses8   s   z*EventbriteProvider.extract_email_addressesN)r   r   r   r   r   r'   r   account_classr   oauth2_adapter_classr"   r$   r-   r0   r   r   r   r   r      s    r   N)r   allauth.account.modelsr   $allauth.socialaccount.providers.baser   0allauth.socialaccount.providers.eventbrite.viewsr   /allauth.socialaccount.providers.oauth2.providerr   r   r   provider_classesr   r   r   r   <module>   s    
.