o
    "4g                     @   s   d dl mZ d dlmZ d dlmZmZmZ d dlm	Z	m
Z
 d dlmZ d dlmZ d dlmZmZmZ d dlmZ d d	lm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!G dd de
Z"G dd de	Z#dS )    )ValidationError)SignupClosedException)AuthenticationResponseConflictResponseForbiddenResponse)APIViewAuthenticatedAPIView)ErrorResponse)RedirectToProviderForm)DeleteProviderAccountInputProviderTokenInputSignupInput)complete_token_login)SocialAccountsResponse)get_adapter)render_authentication_error)flows)SocialAccountc                       s0   e Zd ZeZ fddZdd Zdd Z  ZS )ProviderSignupViewc                    sP   t j| j| _| jst|S t || jst|S t	 j
|g|R i |S N)r   signupget_pending_signuprequestsocialloginr   get_socialaccount_adapteris_open_for_signupr   superhandleselfr   argskwargs	__class__ m/var/www/html/authentication-server/venv/lib/python3.10/site-packages/allauth/headless/socialaccount/views.pyr      s   zProviderSignupView.handlec                 O   s   t j| j| j| j t|S r   )r   r   signup_by_formr   r   inputr   r   r$   r$   r%   post(   s   zProviderSignupView.postc                 C   s
   d| j iS )Nr   )r   r   r$   r$   r%   get_input_kwargs,      
z#ProviderSignupView.get_input_kwargs)	__name__
__module____qualname__r   input_classr   r(   r*   __classcell__r$   r$   r"   r%   r      s
    
r   c                   @   s   e Zd ZdZdd ZdS )RedirectToProviderViewFc                 O   s^   t |j}| st||jdt|jdS |jd }|jd }|jd }|j|||ddS )Nprovider)r2   	exceptioncallback_urlprocessT)next_urlheadless)	r
   POSTis_validr   getr   errorscleaned_dataredirect)r   r   r    r!   formr2   r6   r5   r$   r$   r%   r(   3   s    




zRedirectToProviderView.postN)r,   r-   r.   handle_json_inputr(   r$   r$   r$   r%   r1   0       r1   c                   @   s8   e Zd ZdeiZdd Zedd Zdd Zdd	 Z	d
S )ManageProvidersViewDELETEc                 O   s
   |  |S r   )respond_provider_accountsr   r$   r$   r%   r:   K   r+   zManageProvidersView.getc                 C   s   t jj|jd}t||S )N)user)r   objectsfilterrD   r   )r   r   accountsr$   r$   r%   rC   N   s   
z-ManageProvidersView.respond_provider_accountsc                 O   s    t j|| jjd  | |S )Naccount)r   connect
disconnectr'   r<   rC   r   r$   r$   r%   deleteS   s   
zManageProvidersView.deletec                 C   s   d| j jiS )NrD   )r   rD   r)   r$   r$   r%   r*   W   s   z$ManageProvidersView.get_input_kwargsN)
r,   r-   r.   r   r/   r:   classmethodrC   rK   r*   r$   r$   r$   r%   rA   F   s    
rA   c                   @   s   e Zd ZeZdd ZdS )ProviderTokenViewc              
   O   sr   | j jd }zt|| W n& ty& } zt| j|dW  Y d }~S d }~w ty3   t| j Y S w t| jS )Nr   )r3   )	r'   r<   r   r   r	   r   r   r   r   )r   r   r    r!   r   er$   r$   r%   r(   ^   s   
zProviderTokenView.postN)r,   r-   r.   r   r/   r(   r$   r$   r$   r%   rM   [   r@   rM   N)$django.core.exceptionsr   allauth.core.exceptionsr   allauth.headless.base.responser   r   r   allauth.headless.base.viewsr   r   *allauth.headless.internal.restkit.responser	   $allauth.headless.socialaccount.formsr
   %allauth.headless.socialaccount.inputsr   r   r   'allauth.headless.socialaccount.internalr   'allauth.headless.socialaccount.responser   allauth.socialaccount.adapterr   r   allauth.socialaccount.helpersr   allauth.socialaccount.internalr   allauth.socialaccount.modelsr   r   r1   rA   rM   r$   r$   r$   r%   <module>   s"    