o
    i                     @   sP   d Z ddlmZmZmZ ddlmZmZmZm	Z	 erddl
Z
G dd deZdS )zFitbit OAuth Login Helper.    )TYPE_CHECKINGClassVarOptional)DiscoveryDocumentOpenIDSSOBaseSSOLoginErrorNc                   @   sN   e Zd ZU dZdZdgZeed< ddede	d d	e
fd
dZd	efddZdS )	FitbitSSOz'Class providing login via Fitbit OAuth.ZfitbitZprofilescopeNresponsesessionzhttpx.AsyncClientreturnc                    s>   | d}|stddt|d |d |d |d | jdS )	z7Return OpenID from user information provided by Google.useri  z"Failed to process login via FitbitZ	encodedIdZfullNameZdisplayNameZavatar)idZ
first_nameZdisplay_nameZpictureprovider)getr   r   r   )selfr   r   info r   M/home/app/Keep/.python/lib/python3.10/site-packages/fastapi_sso/sso/fitbit.pyopenid_from_response   s   

zFitbitSSO.openid_from_responsec                    s   ddddS )z#Get document containing handy urls.z:https://www.fitbit.com/oauth2/authorize?response_type=codez#https://api.fitbit.com/oauth2/tokenz,https://api.fitbit.com/1/user/-/profile.json)Zauthorization_endpointZtoken_endpointZuserinfo_endpointr   )r   r   r   r   get_discovery_document   s
   z FitbitSSO.get_discovery_document)N)__name__
__module____qualname____doc__r   r
   r   __annotations__dictr   r   r   r   r   r   r   r   r   r	      s   
 r	   )r   typingr   r   r   Zfastapi_sso.sso.baser   r   r   r   Zhttpxr	   r   r   r   r   <module>   s    