
    [\i                     D    d Z ddlZddlZddlZddlmZmZ ddlmZ d Z	dS )z2
Authentication utilities for API key validation.
    N)requestjsonify)load_dotenvc                 F     t          j                    fd            }|S )zw
    Decorator to require API key in Authorization header.
    Expected format: Authorization: Bearer YOUR_API_KEY
    c                  
  K   t                       t          j                            d          }|st	          ddi          dfS |                                }t          |          dk    s|d                                         dk    rt	          ddi          dfS |d	         }t          j	        d
          }|st	          ddi          dfS t          j        ||          st	          ddi          dfS  | i | d {V S )NAuthorizationerrorzMissing Authorization headeri     r   bearerz6Invalid Authorization format. Use: Bearer YOUR_API_KEY   PENELOPE_KEYzServer not properly configuredi  zInvalid API key)r   r   headersgetr   splitlenlowerosgetenvsecretscompare_digest)argskwargsauth_headerpartsapi_keyexpected_keyfs         -/home/byschii/byschiidev/penelope/lib/auth.pydecorated_functionz+require_api_key.<locals>.decorated_function   s2      	o))/:: 	KG%CDEEsJJ !!##u::??eAhnn..(::G%]^__addd( y00 	MG%EFGGLL %g|<< 	>G%6788#== Q''''''''''    )	functoolswraps)r   r   s   ` r   require_api_keyr#      s;    
 _Q( ( ( ( (8 r    )
__doc__r   r   r!   quartr   r   dotenvr   r#    r    r   <module>r(      sr     
			      " " " " " " " "      " " " " "r    