§
    	Êj%  ã                  ó~   — d dl mZ d dlZd dlmZ ddlmZ ddlmZ dd„Z	dd„Z
dd„Zdd„Zdd„Zdd„Zdd„Zdd„ZdS ) é    )ÚannotationsN)ÚRequesté   )ÚUnauthorized)ÚServicesÚrequestr   Úreturnr   c                ó$   — | j         j        j        S ©N)ÚappÚstateÚservices©r   s    ú-C:\Projects\Muse2API\src\muse2api\api\deps.pyÚget_servicesr      s   € ØŒ;ÔÔ%Ð%ó    Ústrc                ó  — | j                              dd¦  «        }|                     ¦   «                              d¦  «        r|dd …                              ¦   «         S | j                              dd¦  «                             ¦   «         S )NÚauthorizationÚ zbearer é   z	x-api-key)ÚheadersÚgetÚlowerÚ
startswithÚstrip)r   Úauths     r   Ú_bearerr      ss   € ØŒ?×Ò˜°Ñ3Ô3€DØ‡z‚z�|„|×Ò˜yÑ)Ô)ð  Ø�A�B�BŒx�~Š~ÑÔÐØŒ?×Ò˜{¨BÑ/Ô/×5Ò5Ñ7Ô7Ð7r   ÚprovidedÚexpectedÚNonec                óš   — |r9t          j        |                      ¦   «         |                     ¦   «         ¦  «        st          d¦  «        ‚d S )Núinvalid or missing API key)ÚhmacÚcompare_digestÚencoder   ©r   r    s     r   Ú_checkr(      sK   € Øð 9�4Ô.¨x¯ªÑ/@Ô/@À(Ç/Â/ÑBSÔBSÑTÔTð 9ÝÐ7Ñ8Ô8Ð8ð9ð 9r   Úboolc                ó’   — t          |¦  «        o8t          j        |                      ¦   «         |                     ¦   «         ¦  «        S r   )r)   r$   r%   r&   r'   s     r   Ú_matchesr+      s4   € Ý�‰>Œ>ÐW�dÔ1°(·/²/Ñ2CÔ2CÀXÇ_Â_ÑEVÔEVÑWÔWÐWr   Úkey_idÚkey_namec                ó6   — || j         _        || j         _        d S r   )r   r,   r-   )r   r,   r-   s      r   Ú	_identifyr/      s   € à!€G„MÔØ%€G„MÔÐÐr   c                óÒ  — t          | ¦  «        }|j        }t          | ¦  «        }|st          d¦  «        ‚t	          ||j        ¦  «        rt          | dd¦  «         dS t	          ||j        ¦  «        rt          | dd¦  «         dS |j         	                    |¦  «        }|€t          d¦  «        ‚|j         
                    |¦  «         t          | |j        |j        ¦  «         dS )zNAccept the admin key, the legacy single ``api_key``, or any active stored key.r#   ÚadminNÚlegacy)r   Úsettingsr   r   r+   Ú	admin_keyr/   Úapi_keyÚkeysÚverifyÚtouchÚidÚname)r   ÚsvcÚsr   Úkeys        r   Úrequire_api_keyr>   %   sç   € å
�wÑ
Ô
€CØŒ€AÝ�wÑÔ€HØð 9ÝÐ7Ñ8Ô8Ð8å�˜!œ+Ñ&Ô&ð Ý�'˜7 GÑ,Ô,Ð,ØˆÝ�˜!œ)Ñ$Ô$ð Ý�'˜8 XÑ.Ô.Ð.ØˆØ
Œ(�/Š/˜(Ñ
#Ô
#€CØ
€{ÝÐ7Ñ8Ô8Ð8Ø„H‡N‚N�3ÑÔÐÝˆg�s”v˜sœxÑ(Ô(Ð(Ð(Ð(r   c                ón   — t          t          | ¦  «        t          | ¦  «        j        j        ¦  «         d S r   )r(   r   r   r3   Úeffective_admin_keyr   s    r   Úrequire_admin_keyrA   :   s.   € Ý
�7�7ÑÔ�\¨'Ñ2Ô2Ô;ÔOÑPÔPÐPÐPÐPr   c                ó°   — t          | ¦  «        j        j        }|r|                     d¦  «        n&t	          | j        ¦  «                             d¦  «        S )Nú/)r   r3   Úpublic_baseÚrstripr   Úbase_url)r   Úbases     r   rD   rD   >   sJ   € Ý˜Ñ Ô Ô)Ô5€DØ#ÐJˆ4�;Š;�sÑÔÐ­¨WÔ-=Ñ)>Ô)>×)EÒ)EÀcÑ)JÔ)JÐJr   )r   r   r	   r   )r   r   r	   r   )r   r   r    r   r	   r!   )r   r   r    r   r	   r)   )r   r   r,   r   r-   r   r	   r!   )r   r   r	   r!   )Ú
__future__r   r$   Úfastapir   Úerrorsr   Úservices.containerr   r   r   r(   r+   r/   r>   rA   rD   © r   r   ú<module>rM      s  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€à Ð Ð Ð Ð Ð à !Ð !Ð !Ð !Ð !Ð !Ø )Ð )Ð )Ð )Ð )Ð )ð&ð &ð &ð &ð8ð 8ð 8ð 8ð9ð 9ð 9ð 9ð
Xð Xð Xð Xð&ð &ð &ð &ð)ð )ð )ð )ð*Qð Qð Qð QðKð Kð Kð Kð Kð Kr   