o
    i                     @   sL   d Z ddlmZmZmZ ddlmZmZmZ erddl	Z	G dd deZ
dS )z#Twitter (X) SSO Oauth Helper class.    )TYPE_CHECKINGClassVarOptional)DiscoveryDocumentOpenIDSSOBaseNc                   @   sX   e Zd ZU dZdZddgZeed< dZdZ	de
fdd	Zddeded defddZd
S )
TwitterSSOz&Class providing login via Twitter SSO.Ztwitterz
users.readz
tweet.readscopeTreturnc                    s   ddddS )Nz&https://twitter.com/i/oauth2/authorizez&https://api.twitter.com/2/oauth2/tokenz"https://api.twitter.com/2/users/me)Zauthorization_endpointZtoken_endpointZuserinfo_endpoint )selfr   r   N/home/app/Keep/.python/lib/python3.10/site-packages/fastapi_sso/sso/twitter.pyget_discovery_document   s
   z!TwitterSSO.get_discovery_documentNresponsesessionzhttpx.AsyncClientc                    sV   |d  ddd^}}|rd|nd }tt|d d |d d ||| jdS )Ndataname  idusername)r   Zdisplay_name
first_name	last_nameprovider)getsplitjoinr   strr   )r   r   r   r   Zlast_name_partsr   r   r   r   openid_from_response   s   
zTwitterSSO.openid_from_response)N)__name__
__module____qualname____doc__r   r	   r   __annotations__Z	uses_pkceZrequires_stater   r   dictr   r   r   r   r   r   r   r      s   
  r   )r"   typingr   r   r   Zfastapi_sso.sso.baser   r   r   Zhttpxr   r   r   r   r   <module>   s    