
    k7iT                     *    S SK r S rS rS rS rS rg)    Nc                    ^ ^ UU 4S jnU$ )zCreate an ``query_client`` function that can be used in authorization
server.

:param session: SQLAlchemy session
:param client_model: Client model class
c                 `   > TR                  T5      nUR                  U S9R                  5       $ )N)	client_idquery	filter_byfirst)r   qclient_modelsessions     d/home/james-whalen/.local/lib/python3.13/site-packages/authlib/integrations/sqla_oauth2/functions.pyquery_client.create_query_client_func.<locals>.query_client   s+    MM,'{{Y{/5577     )r   r   r   s   `` r   create_query_client_funcr      s    8 r   c                    ^ ^ U U4S jnU$ )zCreate an ``save_token`` function that can be used in authorization
server.

:param session: SQLAlchemy session
:param token_model: Token model class
c                    > UR                   (       a  UR                   R                  5       nOS nUR                  nT" SUR                  US.U D6nTR	                  U5        TR                  5         g )N)r   user_idr   )userget_user_idclientr   addcommit)tokenrequestr   r   itemr   token_models        r   
save_token*create_save_token_func.<locals>.save_token   sZ    <<ll..0GGPV%5%5wP%PDr   r   )r   r   r   s   `` r   create_save_token_funcr!      s     r   c                    ^ ^ U U4S jnU$ )zCreate an ``query_token`` function for revocation, introspection
token endpoints.

:param session: SQLAlchemy session
:param token_model: Token model class
c                 8  > TR                  T5      nUS:X  a  UR                  U S9R                  5       $ US:X  a  UR                  U S9R                  5       $ UR                  U S9R                  5       nU(       a  U$ UR                  U S9R                  5       $ )Naccess_tokenr$   refresh_token)r&   r   )r   token_type_hintr
   r   r   r   s       r   query_token,create_query_token_func.<locals>.query_token0   s    MM+&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                 L   ^ ^ SSK Jn  [        T U5      m " UU 4S jSU5      nU$ )zCreate a revocation endpoint class with SQLAlchemy session
and token model.

:param session: SQLAlchemy session
:param token_model: Token model class
r   )RevocationEndpointc                   .   > \ rS rSrU 4S jrU4S jrSrg)7create_revocation_endpoint.<locals>._RevocationEndpointJ   c                    > T" X5      $ )Nr   )selfr   r'   r(   s      r   r(   Ccreate_revocation_endpoint.<locals>._RevocationEndpoint.query_tokenK   s    u66r   c                    > [        [        R                  " 5       5      nUR                  R                  S5      nX1l        US:w  a  X1l        TR                  U5        TR                  5         g )Nr'   r$   )inttimeformgetaccess_token_revoked_atrefresh_token_revoked_atr   r   )r1   r   r   nowhintr   s        r   revoke_tokenDcreate_revocation_endpoint.<locals>._RevocationEndpoint.revoke_tokenN   sR    diik"C<<##$56D,/)~%14.KKNNr   r   N)__name__
__module____qualname____firstlineno__r(   r<   __static_attributes__)r(   r   s   r   _RevocationEndpointr.   J   s    	7	 	r   rC   )authlib.oauth2.rfc7009r,   r*   )r   r   r,   rC   r(   s   `   @r   create_revocation_endpointrE   ?   s.     :)';?K 0  r   c                 4   ^ ^ SSK Jn   " U U4S jSU5      nU$ )zCreate an bearer token validator class with SQLAlchemy session
and token model.

:param session: SQLAlchemy session
:param token_model: Token model class
r   )BearerTokenValidatorc                   $   > \ rS rSrU U4S jrSrg)<create_bearer_token_validator.<locals>._BearerTokenValidatorc   c                 `   > TR                  T5      nUR                  US9R                  5       $ )Nr%   r   )r1   token_stringr
   r   r   s      r   authenticate_tokenOcreate_bearer_token_validator.<locals>._BearerTokenValidator.authenticate_tokend   s+    k*A;;L;9??AAr   r   N)r>   r?   r@   rA   rM   rB   )r   r   s   r   _BearerTokenValidatorrI   c   s    	B 	Br   rO   )authlib.oauth2.rfc6750rG   )r   r   rG   rO   s   ``  r   create_bearer_token_validatorrQ   Z   s%     <B B 4 B
 ! r   )r5   r   r!   r*   rE   rQ   r   r   r   <module>rR      s!    *.6!r   