
    gi                        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e	      Z  G d de	      Z! G d de
      Z" G d de	      Z#y)    )ValidationError)SignupClosedException)AuthenticationResponseConflictResponseForbiddenResponse)APIViewAuthenticatedAPIView)ErrorResponse)RedirectToProviderForm)DeleteProviderAccountInputProviderTokenInputSignupInput)complete_token_login)SocialAccountsResponse)get_adapter)render_authentication_error)flows)SocialAccountc                   .     e Zd ZeZ fdZd Zd Z xZS )ProviderSignupViewc                    t         j                  j                  | j                        | _        | j                  st        |      S t               j                  || j                        st        |      S t        | (  |g|i |S N)r   signupget_pending_signuprequestsocialloginr   get_socialaccount_adapteris_open_for_signupr   superhandle)selfr   argskwargs	__class__s       a/var/www/django_project/virt/lib/python3.12/site-packages/allauth/headless/socialaccount/views.pyr    zProviderSignupView.handle   st     <<::4<<H#G,,(*==T%%
 %W--w~g7777    c                     t         j                  j                  | j                  | j                  | j
                        }t        j                  ||      S r   )r   r   signup_by_formr   r   inputr   from_response)r!   r   r"   r#   responses        r%   postzProviderSignupView.post(   s@    <<..LL$**DJJ
 &33GXFFr&   c                     d| j                   iS )Nr   )r   r!   s    r%   get_input_kwargsz#ProviderSignupView.get_input_kwargs.   s    t//00r&   )	__name__
__module____qualname__r   input_classr    r,   r/   __classcell__)r$   s   @r%   r   r      s    K8G1r&   r   c                       e Zd ZdZd Zy)RedirectToProviderViewFc                 D   t        |j                        }|j                         s:t        ||j                  j	                  d      t        |j                              S |j                  d   }|j                  d   }|j                  d   }|j                  |||d      S )Nprovider)r8   	exceptioncallback_urlprocessT)next_urlheadless)	r   POSTis_validr   getr   errorscleaned_dataredirect)r!   r   r"   r#   formr8   r<   r;   s           r%   r,   zRedirectToProviderView.post5   s    %gll3}}. ))*5)$++6 
 $$Z0$$^4##I.  	 ! 
 	
r&   N)r0   r1   r2   handle_json_inputr,    r&   r%   r6   r6   2   s    
r&   r6   c                   6    e Zd ZdeiZd Zed        Zd Zd Z	y)ManageProvidersViewDELETEc                 $    | j                  |      S r   )respond_provider_accountsr!   r   r"   r#   s       r%   r@   zManageProvidersView.getM   s    --g66r&   c                 n    t         j                  j                  |j                        }t	        ||      S )N)user)r   objectsfilterrN   r   )r!   r   accountss      r%   rK   z-ManageProvidersView.respond_provider_accountsP   s,     ((//W\\/B%gx88r&   c                     t         j                  j                  || j                  j                  d          | j                  |      S )Naccount)r   connect
disconnectr)   rB   rK   rL   s       r%   deletezManageProvidersView.deleteU   s6      $***A*A)*LM--g66r&   c                 2    d| j                   j                  iS )NrN   )r   rN   r.   s    r%   r/   z$ManageProvidersView.get_input_kwargsY   s    ))**r&   N)
r0   r1   r2   r   r3   r@   classmethodrK   rV   r/   rF   r&   r%   rH   rH   H   s2    ,K7 9 97+r&   rH   c                       e Zd ZeZd Zy)ProviderTokenViewc                 *   | j                   j                  d   }d }	 t        ||      }t        j                  | j
                  |      S # t        $ r!}t	        | j
                  |      cY d }~S d }~wt        $ r t        | j
                        cY S w xY w)Nr   )r9   )
r)   rB   r   r   r
   r   r   r   r   r*   )r!   r   r"   r#   r   r+   es          r%   r,   zProviderTokenView.post`   s    jj--m<	3+G[AH
 &33DLL(KK	  	< ;;$ 	3$T\\22	3s#   A	 		BA.(B.!BBN)r0   r1   r2   r   r3   r,   rF   r&   r%   rZ   rZ   ]   s    $K	Lr&   rZ   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   r6   rH   rZ   rF   r&   r%   <module>rj      sx    2 9 
 F D G 
 I J F 0 61 1.
W 
,+. +*L Lr&   