Ë
    ”ÂiT  ã                   ó*   — d dl Z d„ Zd„ Zd„ Zd„ Zd„ Zy)é    Nc                 ó   ‡ ‡— ˆˆ fd„}|S )zªCreate an ``query_client`` function that can be used in authorization
    server.

    :param session: SQLAlchemy session
    :param client_model: Client model class
    c                 óf   •— ‰j                  ‰«      }|j                  | ¬«      j                  «       S )N)Ú	client_id©ÚqueryÚ	filter_byÚfirst)r   ÚqÚclient_modelÚsessions     €€úb/var/www/timesheet/venv/lib/python3.12/site-packages/authlib/integrations/sqla_oauth2/functions.pyÚquery_clientz.create_query_client_func.<locals>.query_client   s+   ø€ Ø�M‰M˜,Ó'ˆØ�{‰{ Yˆ{Ó/×5Ñ5Ó7Ð7ó    © )r   r   r   s   `` r   Úcreate_query_client_funcr      s   ù€ õ8ð Ðr   c                 ó   ‡ ‡— ˆ ˆfd„}|S )z¦Create an ``save_token`` function that can be used in authorization
    server.

    :param session: SQLAlchemy session
    :param token_model: Token model class
    c                 óÜ   •— |j                   r|j                   j                  «       }nd }|j                  } ‰d|j                  |dœ| ¤Ž}‰j	                  |«       ‰j                  «        y )N)r   Úuser_idr   )ÚuserÚget_user_idÚclientr   ÚaddÚcommit)ÚtokenÚrequestr   r   Úitemr   Útoken_models        €€r   Ú
save_tokenz*create_save_token_func.<locals>.save_token   sZ   ø€ Ø�<Š<Ø—l‘l×.Ñ.Ó0‰GàˆGØ—‘ˆÙÐP V×%5Ñ%5¸wÑPÈ%ÑPˆØ�‰�DÔØ�‰Õr   r   )r   r   r   s   `` r   Úcreate_save_token_funcr      s   ù€ õð Ðr   c                 ó   ‡ ‡— ˆ ˆfd„}|S )z¬Create an ``query_token`` function for revocation, introspection
    token endpoints.

    :param session: SQLAlchemy session
    :param token_model: Token model class
    c                 óB  •— ‰j                  ‰«      }|dk(  r |j                  | ¬«      j                  «       S |dk(  r |j                  | ¬«      j                  «       S |j                  | ¬«      j                  «       }|r|S |j                  | ¬«      j                  «       S )NÚaccess_token©r"   Úrefresh_token)r$   r   )r   Útoken_type_hintr
   r   r   r   s       €€r   Úquery_tokenz,create_query_token_func.<locals>.query_token0   s�   ø€ Ø�M‰M˜+Ó&ˆØ˜nÒ,Ø—;‘;¨E�;Ó2×8Ñ8Ó:Ð:Ø Ò/Ø—;‘;¨U�;Ó3×9Ñ9Ó;Ð;à�{‰{¨ˆ{Ó.×4Ñ4Ó6ˆÙØˆKØ�{‰{¨ˆ{Ó/×5Ñ5Ó7Ð7r   r   )r   r   r&   s   `` r   Úcreate_query_token_funcr'   (   s   ù€ õ
8ð Ðr   c                 óJ   ‡ ‡— ddl m} t        ‰ |«      Š G ˆˆ fd„d|«      }|S )z¦Create a revocation endpoint class with SQLAlchemy session
    and token model.

    :param session: SQLAlchemy session
    :param token_model: Token model class
    r   )ÚRevocationEndpointc                   ó"   •— e Zd Zˆ fd„Zˆfd„Zy)ú7create_revocation_endpoint.<locals>._RevocationEndpointc                 ó   •—  ‰||«      S )Nr   )Úselfr   r%   r&   s      €r   r&   zCcreate_revocation_endpoint.<locals>._RevocationEndpoint.query_tokenK   s   ø€ Ù˜u oÓ6Ð6r   c                 óÞ   •— t        t        j                  «       «      }|j                  j                  d«      }||_        |dk7  r||_        ‰j                  |«       ‰j                  «        y )Nr%   r"   )ÚintÚtimeÚformÚgetÚaccess_token_revoked_atÚrefresh_token_revoked_atr   r   )r-   r   r   ÚnowÚhintr   s        €r   Úrevoke_tokenzDcreate_revocation_endpoint.<locals>._RevocationEndpoint.revoke_tokenN   sV   ø€ Ü”d—i‘i“kÓ"ˆCØ—<‘<×#Ñ#Ð$5Ó6ˆDØ,/ˆEÔ)Ø�~Ò%Ø14�Ô.Ø�K‰K˜ÔØ�N‰NÕr   N)Ú__name__Ú
__module__Ú__qualname__r&   r7   )r&   r   s   €€r   Ú_RevocationEndpointr+   J   s   ø„ ô	7õ	r   r;   )Úauthlib.oauth2.rfc7009r)   r'   )r   r   r)   r;   r&   s   `   @r   Úcreate_revocation_endpointr=   ?   s)   ù€ õ :ä)¨'°;Ó?€K÷Ð0ô ð Ðr   c                 ó2   ‡ ‡— ddl m}  G ˆ ˆfd„d|«      }|S )zªCreate an bearer token validator class with SQLAlchemy session
    and token model.

    :param session: SQLAlchemy session
    :param token_model: Token model class
    r   )ÚBearerTokenValidatorc                   ó   •— e Zd Zˆ ˆfd„Zy)ú<create_bearer_token_validator.<locals>._BearerTokenValidatorc                 óf   •— ‰j                  ‰«      }|j                  |¬«      j                  «       S )Nr#   r   )r-   Útoken_stringr
   r   r   s      €€r   Úauthenticate_tokenzOcreate_bearer_token_validator.<locals>._BearerTokenValidator.authenticate_tokend   s+   ø€ Ø—‘˜kÓ*ˆAØ—;‘;¨L�;Ó9×?Ñ?ÓAÐAr   N)r8   r9   r:   rD   )r   r   s   €€r   Ú_BearerTokenValidatorrA   c   s	   ø„ ö	Br   rE   )Úauthlib.oauth2.rfc6750r?   )r   r   r?   rE   s   ``  r   Úcreate_bearer_token_validatorrG   Z   s   ù€ õ <÷BÐ 4ô Bð
 !Ð r   )r0   r   r   r'   r=   rG   r   r   r   ú<module>rH      s!   ðÛ òòò*ò.ó6!r   