
    "d
                         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e          Z G d	 d
e          Z G d de          Z G d de          ZdS )    )Optional)APIKeyAPIKeyIn)SecurityBase)HTTPException)Request)HTTP_403_FORBIDDENc                       e Zd ZdS )
APIKeyBaseN)__name__
__module____qualname__     <D:\api_v1\venv\Lib\site-packages\fastapi/security/api_key.pyr   r   
   s        Dr   r   c            	       d    e Zd Zdddddedee         dee         defdZd	ed
ee         fdZdS )APIKeyQueryNTscheme_namedescription
auto_errornamer   r   r   c                ~    t          di dt          j        i||d| _        |p| j        j        | _        || _        d S Nin)r   r   r   )r   r   querymodel	__class__r   r   r   selfr   r   r   r   s        r   __init__zAPIKeyQuery.__init__   s\     $ 
 
X^$
+/[
 
 
 

 'A$.*A$r   requestreturnc                    K   |j                             | j        j                  }|s| j        rt          t          d          d S |S NzNot authenticated)status_codedetail)query_paramsgetr   r   r   r   r	   r    r"   api_keys      r   __call__zAPIKeyQuery.__call__   s[      &**4:?;; 	 # 2;N    tr   	r   r   r   strr   boolr!   r   r,   r   r   r   r   r              
 &*%)% % % % c]	%
 c]% % % % %	g 	(3- 	 	 	 	 	 	r   r   c            	       d    e Zd Zdddddedee         dee         defdZd	ed
ee         fdZdS )APIKeyHeaderNTr   r   r   r   r   c                ~    t          di dt          j        i||d| _        |p| j        j        | _        || _        d S r   )r   r   headerr   r   r   r   r   r   s        r   r!   zAPIKeyHeader.__init__*   \     $ 
 
X_%
,0k
 
 
 

 'A$.*A$r   r"   r#   c                    K   |j                             | j        j                  }|s| j        rt          t          d          d S |S r%   )headersr)   r   r   r   r   r	   r*   s      r   r,   zAPIKeyHeader.__call__8   Z      /%%djo66 	 # 2;N    tr   r-   r   r   r   r2   r2   )   r0   r   r2   c            	       d    e Zd Zdddddedee         dee         defdZd	ed
ee         fdZdS )APIKeyCookieNTr   r   r   r   r   c                ~    t          di dt          j        i||d| _        |p| j        j        | _        || _        d S r   )r   r   cookier   r   r   r   r   r   s        r   r!   zAPIKeyCookie.__init__E   r5   r   r"   r#   c                    K   |j                             | j        j                  }|s| j        rt          t          d          d S |S r%   )cookiesr)   r   r   r   r   r	   r*   s      r   r,   zAPIKeyCookie.__call__S   r8   r   r-   r   r   r   r:   r:   D   r0   r   r:   N)typingr   fastapi.openapi.modelsr   r   fastapi.security.baser   starlette.exceptionsr   starlette.requestsr   starlette.statusr	   r   r   r2   r:   r   r   r   <module>rE      s)         3 3 3 3 3 3 3 3 . . . . . . . . . . . . & & & & & & / / / / / /	 	 	 	 	 	 	 	    *   6    :   6    :     r   