o
    õÁhN  ã                   @   s¬   d dl 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 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 )é    )ÚOptionalÚType)Úclassonlymethod)Ú
LoginStageÚLoginStageController)ÚReauthenticationRequired)Úresponse)ÚClient)Ú
decorators)ÚRESTViewc                       s,   e Zd ZdZedd„ ƒZ‡ fdd„Z‡  ZS )ÚAPIViewNc                 K   s:   | j di |¤Ž}|d tjkrt |¡}|S t |¡}|S )NÚclient© )Úas_viewr	   ÚAPPr
   Úapp_viewÚbrowser_view)ÚclsÚ
initkwargsÚ	view_funcr   r   úR/var/www/html/pos/venv/lib/python3.10/site-packages/allauth/headless/base/views.pyÚas_api_view   s   

ÿzAPIView.as_api_viewc                    s<   zt ƒ j|g|¢R i |¤ŽW S  ty   t | j¡ Y S w ©N)ÚsuperÚdispatchr   r   ÚReauthenticationResponseÚrequest©Úselfr   ÚargsÚkwargs©Ú	__class__r   r   r      s
   ÿzAPIView.dispatch)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   Ú__classcell__r   r   r!   r   r      s
    
r   c                       sB   e Zd ZU dZeee  ed< ‡ fdd„Zdd„ Z	dd„ Z
‡  ZS )	ÚAuthenticationStageAPIViewNÚstage_classc                    s<   t  || jj¡| _| jst |¡S tƒ j|g|¢R i |¤ŽS r   )	r   Úenterr(   ÚkeyÚstager   ÚUnauthorizedResponser   Úhandler   r!   r   r   r-   #   s   
z!AuthenticationStageAPIView.handlec                 C   s   t  | j¡S r   )r   r,   r   ©r   r   r   r   Úrespond_stage_error)   s   z.AuthenticationStageAPIView.respond_stage_errorc                 C   s   | j  ¡  t | j¡S r   )r+   Úexitr   ÚAuthenticationResponser   r.   r   r   r   Úrespond_next_stage,   s   
z-AuthenticationStageAPIView.respond_next_stage)r#   r$   r%   r(   r   r   r   Ú__annotations__r-   r/   r2   r&   r   r   r!   r   r'       s
   
 r'   c                       s   e Zd Z‡ fdd„Z‡  ZS )ÚAuthenticatedAPIViewc                    s,   |j js	t |¡S tƒ j|g|¢R i |¤ŽS r   )ÚuserÚis_authenticatedr   r1   r   r   r   r!   r   r   r   2   s   
zAuthenticatedAPIView.dispatch)r#   r$   r%   r   r&   r   r   r!   r   r4   1   s    r4   c                   @   s   e Zd Zdd„ ZdS )Ú
ConfigViewc                 O   s
   t  |¡S )z—
        The frontend queries (GET) this endpoint, expecting to receive
        either a 401 if no user is authenticated, or user information.
        )r   ÚConfigResponser   r   r   r   Úget9   s   
zConfigView.getN)r#   r$   r%   r9   r   r   r   r   r7   8   s    r7   N)Útypingr   r   Údjango.utils.decoratorsr   Úallauth.account.stagesr   r   Úallauth.core.exceptionsr   Úallauth.headless.baser   Úallauth.headless.constantsr	   Úallauth.headless.internalr
   Ú'allauth.headless.internal.restkit.viewsr   r   r'   r4   r7   r   r   r   r   Ú<module>   s    