U
    ÔÉ>iÓ  ã                   @   sZ   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 )
é    ©ÚEmailAddress)ÚProviderAccount)ÚNotionOAuth2Adapter)ÚOAuth2Providerc                   @   s<   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ ZdS )ÚNotionAccountc                 C   s   | j jd d S )NÚownerÚuser©ÚaccountÚ
extra_data©Úself© r   úS/tmp/pip-unpacked-wheel-upujnpc2/allauth/socialaccount/providers/notion/provider.pyÚget_user   s    zNotionAccount.get_userc                 C   s   |   ¡ d S )NÚname©r   r   r   r   r   Úget_name   s    zNotionAccount.get_namec                 C   s   |   ¡ d S )NZ
avatar_urlr   r   r   r   r   Úget_avatar_url   s    zNotionAccount.get_avatar_urlc                 C   s   | j jd S )NZworkspace_namer
   r   r   r   r   Úget_workspace_name   s    z NotionAccount.get_workspace_namec                 C   s   | j jd S )NZworkspace_iconr
   r   r   r   r   Úget_workspace_icon   s    z NotionAccount.get_workspace_iconc                 C   s    |   ¡ }|  ¡ }|› d|› dS )Nz (ú))r   r   )r   r   Z	workspacer   r   r   Úto_str   s    zNotionAccount.to_strN)	Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r   r   r   r      s   r   c                   @   s4   e Zd ZdZdZeZeZdd„ Z	dd„ Z
dd„ Zd	S )
ÚNotionProviderZnotionZNotionc                 C   s$   |d d d }|d }d||f S )zš
        The unique identifier for Notion is a combination of the User ID
        and the Workspace ID they have authorized the application with.
        r   r	   ÚidÚworkspace_idzuser-%s_workspace-%sr   )r   ÚdataZuser_idr   r   r   r   Úextract_uid#   s    zNotionProvider.extract_uidc                 C   s    |d d }|d d |d< |S )Nr   r	   ÚpersonÚemailr   )r   r    r	   r   r   r   Úextract_common_fields,   s    z$NotionProvider.extract_common_fieldsc                 C   s(   |d d }|d d }t |dddgS )Nr   r	   r"   r#   FT)r#   ZverifiedZprimaryr   )r   r    r	   r#   r   r   r   Úextract_email_addresses1   s    z&NotionProvider.extract_email_addressesN)r   r   r   r   r   r   Zaccount_classr   Zoauth2_adapter_classr!   r$   r%   r   r   r   r   r      s   	r   N)Zallauth.account.modelsr   Z$allauth.socialaccount.providers.baser   Z,allauth.socialaccount.providers.notion.viewsr   Z/allauth.socialaccount.providers.oauth2.providerr   r   r   Zprovider_classesr   r   r   r   Ú<module>   s   