o
    drÊik  ã                   @   sÎ   d dl mZ d dlmZ d dlmZ d dlZd dlZd dlZd dl	m
Z
 d dlmZ eƒ ZG dd„ deƒZe d	¡d
efdd„ƒZe d¡d
efdd„ƒZe d¡d
efdd„ƒZe d¡d
efdd„ƒZdS )é    )Ú	APIRouter)Ú	BaseModel)ÚMongoClientN)Ú
MailHelper)Úusers_collectionc                   @   s.   e Zd ZU eed< eed< eed< eed< dS )ÚGoogleAuthPayloadÚemailÚ	firstNameÚlastNameÚ	avatarUrlN)Ú__name__Ú
__module__Ú__qualname__ÚstrÚ__annotations__© r   r   ú9C:\quy\pod-logistic\pod-api\controller\auth_controller.pyr      s
   
 r   z/auth/googleÚpayloadc              
   Ã   sÌ   zKt  d| ji¡}|s&tt ¡ ƒ| j| j| j| jddddœ}t  	|¡ |}dt| 
d¡ƒ| 
d¡| 
dd¡| 
d	d¡| 
d
d¡t| 
d¡ƒdœddœW S  tye } zdt|ƒdœW  Y d }~S d }~ww )Nr   ZgoogleÚ Úuser)ZuserIdr   r	   r
   r   Zauth_providerÚpasswordÚroleTÚ_idr	   r
   r   r   )Úidr   r	   r
   r   ÚhasPasswordu!   ÄÄƒng nháº­p Google thÃ nh cÃ´ng)ÚsuccessÚdataÚmessageF©r   r   )r   Úfind_oner   r   ÚuuidÚuuid4r	   r
   r   Ú
insert_oneÚgetÚboolÚ	Exception)r   r   Znew_userÚer   r   r   Úgoogle_login   s:   €
ø




úö€ÿr'   z/user/update-passwordc                 Ã   sL   |   d¡}|   d¡}t d|idd|ii¡}|jdkr!dddœS d	d
dœS )Nr   ZnewPasswordú$setr   r   Tu   Cáº­p nháº­t thÃ nh cÃ´ngr   Fu   KhÃ´ng tÃ¬m tháº¥y user)r#   r   Ú
update_oneÚmodified_count)r   r   Znew_passwordÚresultr   r   r   Úupdate_password9   s   €


þ


r,   z/user/forgot-passwordc                 ƒ   s®   |   d¡}t d|i¡}|sdddœS tjtj ‰ d ‡ fdd„tdƒD ƒ¡}t d|id	d
|ii¡ |  d¡› d|  d¡› |ddœ}t	 
||¡}|rRdddœS dddœS )Nr   Fu,   Email khÃ´ng tá»“n táº¡i trÃªn há»‡ thá»‘ng!r   r   c                 3   s    | ]}t  ˆ ¡V  qd S )N)ÚsecretsÚchoice)Ú.0Úi©Úalphabetr   r   Ú	<genexpr>T   s   € z"forgot_password.<locals>.<genexpr>é   r(   r   r	   ú r
   ud   VÃ¬ lÃ½ do báº£o máº­t, hÃ£y Ä‘á»•i láº¡i máº­t kháº©u nÃ y ngay sau khi Ä‘Äƒng nháº­p thÃ nh cÃ´ng.)Úusernamer   ÚnoteTu>   Máº­t kháº©u má»›i Ä‘Ã£ Ä‘Æ°á»£c gá»­i vÃ o Email cá»§a báº¡n!u1   Lá»—i khi gá»­i email, vui lÃ²ng thá»­ láº¡i sau.)r#   r   r   ÚstringÚascii_lettersÚdigitsÚjoinÚranger)   r   Zsend_new_password_email)r   r   r   Zrandom_passwordZ
email_dataZ	mail_sentr   r1   r   Úforgot_passwordI   s&   €


þý

r=   z/auth/loginc              
   Ã   s¬   |   d¡}|   d¡}|dkr|dkrddddd	dd
œdœS t d|i¡}|rQ|  d¡|krQdt|d ƒ|d |  dd¡|  dd¡|  dd¡|  dd¡ddœdœS dddœS )Nr   r   ÚadminZadmin123TZadmin_systemzadmin@factory.comu   Quáº£n trá»‹u   ViÃªn)r   r   r	   r
   r   )r   r   r   r	   r   r
   r   r   r   )r   r   r	   r
   r   r   r   Fu-   Email hoáº·c máº­t kháº©u khÃ´ng chÃ­nh xÃ¡c!r   )r#   r   r   r   )r   r   r   r   r   r   r   Úlogink   s4   €

ûþ




ùþ
r?   )Úfastapir   Úpydanticr   Úpymongor   r    r-   r8   Zcontroller.mail_helperr   ÚMongoDBConnectionr   Úrouterr   Úpostr'   ÚputÚdictr,   r=   r?   r   r   r   r   Ú<module>   s$    $!