
    AHj6                     V    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e      Zy)zNotion SSO Oauth Helper class.    )TYPE_CHECKINGClassVarOptional)DiscoveryDocumentOpenIDSSOBaseSSOLoginErrorNc                   `    e Zd ZU dZdZdgZeed<   ddiZeed<   de	fd	Z
ddeded   defdZy
)	NotionSSOz)Class providing login using Notion OAuth.notionopenidscopezNotion-Versionz
2022-06-28additional_headersreturnc                    K   ddddS w)Nz4https://api.notion.com/v1/oauth/authorize?owner=userz%https://api.notion.com/v1/oauth/tokenz"https://api.notion.com/v1/users/me)authorization_endpointtoken_endpointuserinfo_endpoint )selfs    N/root/tools/cai/cai_env/lib/python3.12/site-packages/fastapi_sso/sso/notion.pyget_discovery_documentz NotionSSO.get_discovery_document   s     &\E!E
 	
s   	Nresponsesessionzhttpx.AsyncClientc                    K   |d   d   }|d   dk7  rt        dd|d   d   d          t        |d   d   |d   d   d	   |d   d
   |d   d   | j                        S w)Nbotownertypeuseri  z-Notion login failed, owner is not a user but idpersonemail
avatar_urlname)r    r"   picturedisplay_nameprovider)r	   r   r'   )r   r   r   r   s       r   openid_from_responsezNotionSSO.openid_from_response   s     (=F"'TU]^cUdelUmntUuTv%wxxV}T"-)'2&M,/vv.]]
 	
s   AA )N)__name__
__module____qualname____doc__r'   r   r   __annotations__r   r   r   dictr   r   r(   r       r   r   r      sT    3HjE8 $4l#CC
.? 


4 

(K^B_ 

kq 

r/   r   )r,   typingr   r   r   fastapi_sso.sso.baser   r   r   r	   httpxr   r   r/   r   <module>r3      s&    $ 4 4 R R
 
r/   