o
    ߭h                     @   s   d dl mZmZmZmZmZmZ d dlmZ d dl	m
Z
mZmZ d dlmZmZ d dlmZmZ deejejf deej fdd	Zd
S )    )	APIRouterBodyDependsHTTPExceptionRequeststatus)EmailStr)
exceptionsmodelsschemas)BaseUserManagerUserManagerDependency)	ErrorCode
ErrorModelget_user_manageruser_schemac                    s   t  }|jdtjddtdddt| fdtdtd	tt	j
t	jf fd
d}|jd dtjtddtjddtjidtjddtjidiiididtdddt| fdtdtd	tt	j
t	jf f fdd}|S )Nz/request-verify-tokenzverify:request-token)status_codename.T)embedrequestemailuser_managerc              
      sL   z| |I d H }||| I d H  W d S  tjtjtjfy%   Y d S w )N)get_by_emailrequest_verifyr	   UserNotExistsUserInactiveUserAlreadyVerified)r   r   r   user r   `/var/www/html/stock_analysis/be/venv/lib/python3.10/site-packages/fastapi_users/router/verify.pyrequest_verify_token   s   

z/get_verify_router.<locals>.request_verify_tokenz/verifyzverify:verifyzapplication/jsonexampleszIBad token, not existing user ornot the e-mail currently set for the user.detail)summaryvaluezThe user is already verified.)modelcontent)response_modelr   	responsestokenc              	      sh   z| || I d H }t |W S  tjtjfy$   ttjt	j
d tjy3   ttjt	jdw )N)r   r"   )verifyr   model_validater	   InvalidVerifyTokenr   r   r   HTTP_400_BAD_REQUESTr   VERIFY_USER_BAD_TOKENr   VERIFY_USER_ALREADY_VERIFIED)r   r)   r   r   r   r   r   r*   %   s    z!get_verify_router.<locals>.verify)r   postr   HTTP_202_ACCEPTEDr   r   r   r   r   r
   UPIDr-   r   r   r.   r/   str)r   r   routerr    r*   r   r0   r   get_verify_router	   s`   

r7   N)fastapir   r   r   r   r   r   pydanticr   fastapi_usersr	   r
   r   fastapi_users.managerr   r   fastapi_users.router.commonr   r   r3   r4   typeUr7   r   r   r   r   <module>   s     