o
    &zh                     @   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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SocialLoginResponse)get_adapter)render_authentication_error)flows)SocialAccountc                       s8   e Zd ZeZ fddZ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__ _/var/www/html/kangema/venv/lib/python3.10/site-packages/allauth/headless/socialaccount/views.pyr      s   zProviderSignupView.handlec                 O   s   t || jS r   )r   r   r   r%   r%   r&   get)      zProviderSignupView.getc                 O   s"   t j| j| j| j}t||S r   )r   r   signup_by_formr   r   inputr   from_response)r    r   r!   r"   responser%   r%   r&   post,   s   zProviderSignupView.postc                 C   s
   d| j iS )Nr   )r   r    r%   r%   r&   get_input_kwargs2      
z#ProviderSignupView.get_input_kwargs)
__name__
__module____qualname__r   input_classr   r'   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)r7   	exceptioncallback_urlprocessT)next_urlheadless)	r
   POSTis_validr   r'   r   errorscleaned_dataredirect)r    r   r!   r"   formr7   r;   r:   r%   r%   r&   r-   9   s    




zRedirectToProviderView.postN)r1   r2   r3   handle_json_inputr-   r%   r%   r%   r&   r6   6       r6   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'   Q   r0   zManageProvidersView.getc                 C   s   t jj|jd}t||S )N)user)r   objectsfilterrH   r   )r    r   accountsr%   r%   r&   rG   T   s   
z-ManageProvidersView.respond_provider_accountsc                 O   s    t j|| jjd  | |S )Naccount)r   connect
disconnectr*   r@   rG   r   r%   r%   r&   deleteY   s   
zManageProvidersView.deletec                 C   s   d| j jiS )NrH   )r   rH   r.   r%   r%   r&   r/   ]   r(   z$ManageProvidersView.get_input_kwargsN)
r1   r2   r3   r   r4   r'   classmethodrG   rO   r/   r%   r%   r%   r&   rE   L   s    
rE   c                   @   s   e Zd ZeZdd ZdS )ProviderTokenViewc              
   O   sz   | j jd }d }zt||}W n& ty( } zt| j|dW  Y d }~S d }~w ty5   t| j Y S w t	| j|S )Nr   )r8   )
r*   r@   r   r   r	   r   r   r   r   r+   )r    r   r!   r"   r   r,   er%   r%   r&   r-   d   s   zProviderTokenView.postN)r1   r2   r3   r   r4   r-   r%   r%   r%   r&   rQ   a   rD   rQ   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   r   allauth.socialaccount.adapterr   r   allauth.socialaccount.helpersr   allauth.socialaccount.internalr   allauth.socialaccount.modelsr   r   r6   rE   rQ   r%   r%   r%   r&   <module>   s"    