o
    ߭h                     @   s   d dl mZmZmZmZ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 dee	j defd	d
ZdS )    )	APIRouterDependsHTTPExceptionRequeststatus)
exceptionsmodelsschemas)BaseUserManagerUserManagerDependency)	ErrorCode
ErrorModelget_user_manageruser_schemauser_create_schemareturnc                    s   t  }|jd tjdtjtddtjddtjidtjddtjd	d
idiiididt	| fdt
d|dttjtjf f fdd}|S )z*Generate a router with the register route.z	/registerzregister:registerzapplication/jsonexamplesz&A user with this email already exists.detail)summaryvaluezPassword validation failed.z'Password should beat least 3 characterscodereason)modelcontent)response_modelstatus_codename	responsesrequestuser_createuser_managerc              
      sz   z|j |d| dI d H }W n( tjy   ttjtjd tjy6 } zttjtj	|j
ddd }~ww t |S )NT)safer   )r   r   r   )creater   UserAlreadyExistsr   r   HTTP_400_BAD_REQUESTr   REGISTER_USER_ALREADY_EXISTSInvalidPasswordExceptionREGISTER_INVALID_PASSWORDr   r	   model_validate)r   r    r!   created_userer    b/var/www/html/stock_analysis/be/venv/lib/python3.10/site-packages/fastapi_users/router/register.pyregister   s(   &	z%get_register_router.<locals>.register)r   postr   HTTP_201_CREATEDr%   r   r   r&   r(   r   r   r
   r   UPID)r   r   r   routerr/   r-   r,   r.   get_register_router   sL   $r5   N)fastapir   r   r   r   r   fastapi_usersr   r   r	   fastapi_users.managerr
   r   fastapi_users.router.commonr   r   r2   r3   typeUUCr5   r-   r-   r-   r.   <module>   s    