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Yandex SSO Login Helper.    )TYPE_CHECKINGClassVarOptional)DiscoveryDocumentOpenIDSSOBaseNc                   @   sT   e Zd ZU dZdZg dZeed< dZde	fddZ
dd
eded defddZd	S )	YandexSSOz)Class providing login using Yandex OAuth.Zyandex)zlogin:emailz
login:infozlogin:avatarscopez$https://avatars.yandex.net/get-yapicreturnc                    s   ddddS )zHOverride the discovery document method to return Yandex OAuth endpoints.z!https://oauth.yandex.ru/authorizezhttps://oauth.yandex.ru/tokenzhttps://login.yandex.ru/info)Zauthorization_endpointZtoken_endpointZuserinfo_endpoint )selfr   r   M/home/app/Keep/.python/lib/python3.10/site-packages/fastapi_sso/sso/yandex.pyget_discovery_document   s
   z YandexSSO.get_discovery_documentNresponsesessionzhttpx.AsyncClientc              	      s`   d}| d }dur| j d| d}t| d| d| j| d| d| d	|d
S )z4Converts Yandex user info response to OpenID object.NZdefault_avatar_id/z/islands-200Zdefault_emaildisplay_nameid
first_name	last_name)emailr   providerr   r   r   picture)get
avatar_urlr   r   )r   r   r   r   Z	avatar_idr   r   r   openid_from_response   s   zYandexSSO.openid_from_response)N)__name__
__module____qualname____doc__r   r	   r   __annotations__r   r   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    