
    qhb                     *    S r SSKJr   " S S\5      rg)z
Bungie OAuth2 backend
    )
BaseOAuth2c                   ^    \ rS rSrSrSrSrSrSrSr	/ SQr
S rS	 rS
 rS rS rS rS rSrg)BungieOAuth2   bungiemembership_idz*https://www.bungie.net/en/oauth/authorize/z0https://www.bungie.net/platform/app/oauth/token/F))refresh_tokenr	   T)access_tokenr
   T)
expires_inexpires)r   r   )refresh_expires_inr   c                     g)zAbstract Method InclusionN selfs    M/var/www/html/env/lib/python3.13/site-packages/social_core/backends/bungie.py	auth_htmlBungieOAuth2.auth_html   s        c                 L    U R                  S5      SU R                  S5      SS.$ )zAdds X-API-KEY and OriginAPI_KEYz!application/x-www-form-urlencodedORIGINzapplication/json)z	X-API-KEYzContent-TypeOriginAccept)settingr   s    r   auth_headersBungieOAuth2.auth_headers   s,     i0?ll8,(	
 	
r   c                 P    U R                  5       nSU-   US'   U R                  XS9$ )z:Helper function to get username data keyed off displayNamezBearer Authorization)headers)r   get_json)r   urlr
   kwargsr    s        r   make_bungie_request BungieOAuth2.make_bungie_request#   s0    ##%#,|#; }}S}22r   c                 \   U R                  U R                  5        U R                  5       nU R                  U R	                  5       U R                  U5      U R                  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)datar    authmethodr
   response)
process_errorr'   validate_staterequest_access_tokenaccess_token_urlauth_complete_paramsr   auth_complete_credentialsACCESS_TOKEN_METHODdo_auth)r   argsr#   stater*   s        r   auth_completeBungieOAuth2.auth_complete)   s    499%##%,,!!#**51%%'//1++ - 
 	8$||^$
:>
/7
BH
 	
r   c                    U R                   " U/UQ70 UD6nUR                  S5      =(       d    0 nUR                  U=(       d    0 5        SU;  a
  XS   S   S'   UR                  XPS.5        U R                  R                  " U0 UD6$ )z;Finish the auth process once the access_token was retrievedr*   r
   Responsevalue)r*   backend)	user_datagetupdatestrategyauthenticate)r   r
   r3   r#   r'   r*   s         r   r2   BungieOAuth2.do_auth9   s    ~~l<T<V<::j)/R
#)<HZ 098=>}}))4:6::r   c                 X    US   S   nSnU R                  XQU5      nUS   S   S   nXtS.$ )z)Grab user profile information from Buniger*   r   z6https://www.bungie.net/Platform/User/GetBungieNetUser/r8   userdisplayName)usernameuid)r$   )r   r
   r3   r#   r   r"   r*   rD   s           r   r;   BungieOAuth2.user_dataC   sE    z*?;F++CvFJ'/>$;;r   c                     US   nUUUS   S.$ )z'Return user details from Bungie accountrD   rE   )
first_namerD   rE   r   )r   r*   r3   r#   rD   s        r   get_user_detailsBungieOAuth2.get_user_detailsK   s#    J'" E?
 	
r   r   N)__name__
__module____qualname____firstlineno__nameID_KEYAUTHORIZATION_URLACCESS_TOKEN_URLREFRESH_TOKEN_URLREDIRECT_STATE
EXTRA_DATAr   r   r$   r5   r2   r;   rI   __static_attributes__r   r   r   r   r      sM    DFDIJNJ(
3
 ;<
r   r   N)__doc__social_core.backends.oauthr   r   r   r   r   <module>rY      s    2J
: J
r   