
    qh{
                     F    S r SSKJrJr  SSKJr  SSKJr   " S S\5      rg)	zp
Jawbone OAuth2 backend, docs at:
    https://python-social-auth.readthedocs.io/en/latest/backends/jawbone.html
   )AuthCanceledAuthUnknownError)handle_http_errors   )
BaseOAuth2c                   h   ^  \ rS rSrSrSrSrSrSrS r	S r
S	 rU 4S
 jrSS jr\S 5       rSrU =r$ )JawboneOAuth2   jawbonez$https://jawbone.com/auth/oauth2/authz%https://jawbone.com/auth/oauth2/token Fc                     US   S   $ )Ndataxid )selfdetailsresponses      N/var/www/html/env/lib/python3.13/site-packages/social_core/backends/jawbone.pyget_user_idJawboneOAuth2.get_user_id   s    &&    c                    US   nU R                  UR                  SS5      UR                  SS5      S9u  p4nUS-   U-   UUUUR                  SS5      UR                  SS5      UR                  S	S5      UR                  S
S5      S.$ )z(Return user details from Jawbone accountr   first last)
first_name	last_namer   dobgenderheightweight)usernamefullnamer   r   r   r   r    r!   )get_user_namesget)r   r   r   r#   r   r   s         r   get_user_detailsJawboneOAuth2.get_user_details   s    *.*=*=xx,8L +> +
'i #S(94 $"88E2&hhx,hhx,hhx,	
 		
r   c                 ,    U R                  SSSU-   0S9$ )zLoads user data from servicez'https://jawbone.com/nudge/api/users/@meAuthorizationzBearer )headers)get_json)r   access_tokenargskwargss       r   	user_dataJawboneOAuth2.user_data&   s(    }}5$i,&>?  
 	
r   c                    > UR                  S5      nU(       a   US:X  a  [        U 5      e[        U SU 35      e[        TU ]  U5      $ )Nerroraccess_deniedzJawbone error was )r%   r   r   superprocess_error)r   r   r2   	__class__s      r   r5   JawboneOAuth2.process_error-   sL    !'"4(("4+=eW)EFFw$T**r   c                 h    U R                  5       u  p#SU R                  R                  SS5      UUS.$ )Nauthorization_codecoder   )
grant_typer:   	client_idclient_secret)get_key_and_secretr   r%   )r   stater<   r=   s       r   auth_complete_params"JawboneOAuth2.auth_complete_params5   s8    #'#:#:#< 	.IIMM&"-"*	
 	
r   c                 2   U R                  U R                  5        U R                  U R                  U R	                  U R                  5       5      U R                  5       U R                  S9nU R                  U5        U R                  " US   /UQ7SU0UD6$ )z2Completes login process, must return user instance)paramsr*   methodr,   r   )	r5   r   request_access_tokenACCESS_TOKEN_URLr@   validate_stateauth_headersACCESS_TOKEN_METHODdo_auth)r   r-   r.   r   s       r   auth_completeJawboneOAuth2.auth_complete>   s     	499%,,!!,,T-@-@-BC%%'++	 - 
 	8$||^$
:>
/7
BH
 	
r   r   )N)__name__
__module____qualname____firstlineno__nameAUTHORIZATION_URLrF   SCOPE_SEPARATORREDIRECT_STATEr   r&   r/   r5   r@   r   rK   __static_attributes____classcell__)r6   s   @r   r	   r	      sK    D>>ON'
"
+
 
 
r   r	   N)	__doc__
exceptionsr   r   utilsr   oauthr   r	   r   r   r   <module>r[      s#   
 8 & @
J @
r   