U
    &%e{                     @   s   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 )    )Optional)APIKeyAPIKeyIn)SecurityBase)HTTPException)Request)HTTP_403_FORBIDDENc                   @   s   e Zd ZdS )
APIKeyBaseN)__name__
__module____qualname__ r   r   W/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/fastapi/security/api_key.pyr	   
   s   r	   c                   @   sF   e Zd Zddddeee ee edddZeee ddd	ZdS )
APIKeyQueryNTscheme_namedescription
auto_errornamer   r   r   c                C   s4   t f dtji||d| _|p&| jj| _|| _d S Nin)r   r   )r   r   querymodel	__class__r
   r   r   selfr   r   r   r   r   r   r   __init__   s    zAPIKeyQuery.__init__requestreturnc                    s0   |j | jj}|s,| jr(ttddnd S |S NzNot authenticated)status_codedetail)Zquery_paramsgetr   r   r   r   r   r   r   Zapi_keyr   r   r   __call__   s     zAPIKeyQuery.__call__	r
   r   r   strr   boolr   r   r&   r   r   r   r   r      s   r   c                   @   sF   e Zd Zddddeee ee edddZeee ddd	ZdS )
APIKeyHeaderNTr   r   c                C   s4   t f dtji||d| _|p&| jj| _|| _d S r   )r   r   headerr   r   r
   r   r   r   r   r   r   r   ,   s    zAPIKeyHeader.__init__r   c                    s0   |j | jj}|s,| jr(ttddnd S |S r!   )headersr$   r   r   r   r   r   r%   r   r   r   r&   <   s     zAPIKeyHeader.__call__r'   r   r   r   r   r*   +   s   r*   c                   @   sF   e Zd Zddddeee ee edddZeee ddd	ZdS )
APIKeyCookieNTr   r   c                C   s4   t f dtji||d| _|p&| jj| _|| _d S r   )r   r   cookier   r   r
   r   r   r   r   r   r   r   I   s    zAPIKeyCookie.__init__r   c                    s0   |j | jj}|s,| jr(ttddnd S |S r!   )cookiesr$   r   r   r   r   r   r%   r   r   r   r&   Y   s     zAPIKeyCookie.__call__r'   r   r   r   r   r-   H   s   r-   N)typingr   Zfastapi.openapi.modelsr   r   Zfastapi.security.baser   Zstarlette.exceptionsr   Zstarlette.requestsr   Zstarlette.statusr   r	   r   r*   r-   r   r   r   r   <module>   s   