o
    h                     @   s   d dl mZ d dlmZ d dlmZ d dlmZmZ d dl	mZ
 d dlmZ d dlmZ dd Zd	d
 Zdd Zdd Zdd Zdd Zdd ZG dd deZG dd deZdS )    email_address_data)get_adapter)APIResponse)ClientFlow)signup)OAuth2Providerc                 C   s    |j t| | |  dS )N)uidproviderdisplay)r
   _provider_dataget_providerget_provider_accountto_str)requestaccount r   ^/var/www/html/pos/venv/lib/python3.10/site-packages/allauth/headless/socialaccount/response.py_socialaccount_data
   s   
r   c                 C   sj   |j |jg d}|jr|d tj |jr|d tj t|t	r3|j
j|d< |jdkr3|j|d< |S )N)idnameflowsr   	client_idopenid_connectopenid_configuration_url)sub_idr   supports_redirectappendr   PROVIDER_REDIRECTsupports_token_authenticationPROVIDER_TOKEN
isinstancer	   appr   r   
server_url)r   r   retr   r   r   r      s   


r   c                 C   s   g }t | }|rCdd |D }dd |D }|r)| jjjtjkr)|tj|d |r4|tj	|d t
| }|rC|t| | |S )Nc                 S      g | ]}|j r|jqS r   )r   r   .0pr   r   r   
<listcomp>$   s    z"provider_flows.<locals>.<listcomp>c                 S   r&   r   )r    r   r'   r   r   r   r*   %   s
    )r   	providers)_list_supported_providersallauthheadlessclientr   BROWSERr   r   r   r!   r   get_pending_signup_signup_flow)r   r   r+   redirect_providerstoken_providerssocialloginr   r   r   provider_flows    s.   
r6   c                 C   s   |j }tjt| |dd}|S )NT)r   r   
is_pending)r   r   PROVIDER_SIGNUPr   )r   r5   r   flowr   r   r   r2   <   s   r2   c                 C   s$   |t jkr| jS |t jkr| jS dS )NF)r   APPr    r0   r   )r   r/   r   r   r   _is_provider_supportedF   s
   

r;   c                    s&   t  }| } fdd|D }|S )Nc                    s    g | ]}t | jjjr|qS r   )r;   r-   r.   r/   r'   r   r   r   r*   Q   s    z-_list_supported_providers.<locals>.<listcomp>)get_socialaccount_adapterlist_providers)r   adapterr+   r   r<   r   r,   N   s   

r,   c                 C   sF   g }dd|ii}t | }t|dd d}|D ]
}|t| | q|S )Nsocialaccountr+   c                 S   s   | j S )N)r   )r)   r   r   r   <lambda>]   s    z!get_config_data.<locals>.<lambda>)key)r,   sortedr   r   )r   entriesdatar+   r   r   r   r   get_config_dataY   s   rF   c                          e Zd Z fddZ  ZS )SocialAccountsResponsec                    s&    fdd|D }t  j |d d S )Nc                    s   g | ]}t  |qS r   )r   )r(   r   r<   r   r   r*   e   s    z3SocialAccountsResponse.__init__.<locals>.<listcomp>rE   )super__init__)selfr   accountsrE   	__class__r<   r   rK   d   s   zSocialAccountsResponse.__init____name__
__module____qualname__rK   __classcell__r   r   rN   r   rH   c       rH   c                       rG   )SocialLoginResponsec                    sB   t  }||jt||jdd |jD d}t j||d d S )Nc                 S   s   g | ]}t |qS r   r   )r(   ear   r   r   r*   o   s    z0SocialLoginResponse.__init__.<locals>.<listcomp>)userr   emailrI   )r   serialize_userrX   r   r   email_addressesrJ   rK   )rL   r   r5   r?   rE   rN   r   r   rK   j   s   

zSocialLoginResponse.__init__rP   r   r   rN   r   rV   i   rU   rV   N)!allauth.headless.account.responser   allauth.headless.adapterr   allauth.headless.base.responser   allauth.headless.constantsr   r   allauth.socialaccount.adapterr=   $allauth.socialaccount.internal.flowsr   /allauth.socialaccount.providers.oauth2.providerr	   r   r   r6   r2   r;   r,   rF   rH   rV   r   r   r   r   <module>   s     

