U
    >i                     @   s   d dl mZ d dlmZ d dlmZ dd Zddd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G dd de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G dd deZdS )    )
HTTPStatus)APIResponse)app_settingsc                 C   s   dt jt jdi}|S )NZmfa)Zsupported_typesZpasskey_login_enabled)mfa_settingsSUPPORTED_TYPESZPASSKEY_LOGIN_ENABLED)requestdata r	   A/tmp/pip-unpacked-wheel-upujnpc2/allauth/headless/mfa/response.pyget_config_data   s    r   Fc                 C   s   | j | j | jr| j nd d}| j | jjkr4n| j | jjkr||  }| }|	t
| t
|d |r||d< n@| j | jjkr|  }| j|d< |j|d< |j}|d k	r||d< |S )N)type
created_atlast_used_at)Ztotal_code_countZunused_code_countunused_codesidnameis_passwordless)r   r   	timestampr   TypeZTOTPZRECOVERY_CODESwrapZget_unused_codesupdatelenZgenerate_codesZWEBAUTHNpkr   r   )authenticator	sensitiver   wrappedr   Zpasswordlessr	   r	   r
   _authenticator_data   s4    	



r   c                   @   s   e Zd ZdS )AuthenticatorDeletedResponseN__name__
__module____qualname__r	   r	   r	   r
   r   2   s   r   c                   @   s   e Zd ZdS )AuthenticatorsDeletedResponseNr   r	   r	   r	   r
   r"   6   s   r"   c                       s   e Zd Z fddZ  ZS )TOTPNotFoundResponsec                    s   t  j|||dtjd d S )N)secrettotp_url)metastatussuper__init__r   	NOT_FOUND)selfr   r$   r%   	__class__r	   r
   r*   ;   s    zTOTPNotFoundResponse.__init__r   r    r!   r*   __classcell__r	   r	   r-   r
   r#   :   s   r#   c                       s   e Zd Z fddZ  ZS )TOTPResponsec                    s   t |}t j||d d S )Nr   r   r)   r*   r,   r   r   r   r-   r	   r
   r*   G   s    zTOTPResponse.__init__r/   r	   r	   r-   r
   r1   F   s   r1   c                       s   e Zd Z fddZ  ZS )AuthenticatorsResponsec                    s"   dd |D }t  j||d d S )Nc                 S   s   g | ]}t |qS r	   )r   ).0r   r	   r	   r
   
<listcomp>N   s     z3AuthenticatorsResponse.__init__.<locals>.<listcomp>r2   r)   r*   )r,   r   authenticatorsr   r-   r	   r
   r*   M   s    zAuthenticatorsResponse.__init__r/   r	   r	   r-   r
   r5   L   s   r5   c                       s   e Zd Zd fdd	Z  ZS )AuthenticatorResponseNc                    s   t |}t j|||d d S )N)r   r&   r3   )r,   r   r   r&   r   r-   r	   r
   r*   S   s    zAuthenticatorResponse.__init__)Nr/   r	   r	   r-   r
   r:   R   s   r:   c                       s   e Zd Z fddZ  ZS )RecoveryCodesNotFoundResponsec                    s   t  j|tjd d S )N)r'   r(   )r,   r   r-   r	   r
   r*   Y   s    z&RecoveryCodesNotFoundResponse.__init__r/   r	   r	   r-   r
   r;   X   s   r;   c                       s   e Zd Z fddZ  ZS )RecoveryCodesResponsec                    s    t |dd}t j||d d S )NT)r   r2   r3   r4   r-   r	   r
   r*   ^   s    zRecoveryCodesResponse.__init__r/   r	   r	   r-   r
   r<   ]   s   r<   c                       s   e Zd Z fddZ  ZS )AddWebAuthnResponsec                    s   t  j|d|id d S )NZcreation_optionsr2   r8   )r,   r   Zregistration_datar-   r	   r
   r*   d   s    zAddWebAuthnResponse.__init__r/   r	   r	   r-   r
   r=   c   s   r=   c                       s   e Zd Z fddZ  ZS )WebAuthnRequestOptionsResponsec                    s   t  j|d|id d S )Nrequest_optionsr2   r8   )r,   r   r?   r-   r	   r
   r*   i   s    z'WebAuthnRequestOptionsResponse.__init__r/   r	   r	   r-   r
   r>   h   s   r>   N)F)httpr   Zallauth.headless.base.responser   Zallauth.mfar   r   r   r   r   r"   r#   r1   r5   r:   r;   r<   r=   r>   r	   r	   r	   r
   <module>   s   

!