o
    Ahs                     @   s  d dl Z d dlZd dlZd dlmZmZ d dlmZmZmZm	Z	m
Z
 d dlmZ d dlmZ d dlmZmZmZmZ d dlmZ d dlmZmZmZmZ d d	lmZ e  e Zed
dZi Zej dedgdeej!fdedej"fddZ#ej dedgdeej!fdede	dej"fddZ$ej ddgdde%fddZ&ej ddgdeej!fde%dej"fddZ'ej(d dgdeej!eefdej"d!efd"d#Z)dS )$    N)datetime	timedelta)	APIRouterDependsHTTPExceptionBackgroundTasksstatus)JSONResponse)database)User	UserLoginUserResponseGoogleToken)get_current_userdetails)
login_usergoogle_connect_userprocess_user_loginverify_phone_otp_service)load_dotenvi7  minutes/Auth)response_modeltagsuserdbc              
      sZ   t d t| |I d H }t|d |d dd}|jdd|d  d	d
d
dd	dd |S )Nzcoming auth login222222222messager   r   r   contentAuthorizationBearer tokenT  r   Nonekeyvaluehttponlymax_ageexpirespathsecuresamesite)printr   r	   
set_cookie)r   r   resultresponse r3   5/var/www/html/moveengine/app/v1/routers/saas/login.pylogin   s   
r5   z/googlegoogle_tokenbackground_tasksc              
      sT   t | ||I d H }t|d |d dd}|jdd|d  dd	d	d
ddd |S )Nr   r   r   r   r!   r"   r#   Tr$   r   r%   r&   )r   r	   r0   )r6   r7   r   r1   r2   r3   r3   r4   google_connect%   s   
r8   z/phone/send-otp)r   payloadc                    s`   |  d}|stdddtdd}|t tdd d	t|< td
| d|  ddiS )Nphonei  zPhone number is required.status_codedetaili i?B    r   )otpr+   zSending OTP z
 to phone r   zOTP sent successfully.)	getr   randomrandintr   utcnowr   	otp_storer/   )r9   r:   r?   r3   r3   r4   send_phone_otp5   s   
rE   z/phone/verifyc                    s   t | |tI d H }|S )N)r   rD   )r9   r   r1   r3   r3   r4   verify_phone_otpB   s   rF   z/checkcurrent_userc                    s   |rddiS t tjdd)NauthenticatedTUnauthorizedr;   )r   r   HTTP_401_UNAUTHORIZED)r   rG   r3   r3   r4   
auth_checkI   s   rK   )*jsonosrA   r   r   fastapir   r   r   r   r   fastapi.responsesr	   app.dbr
   app.v1.models.saas.usersmodelr   r   r   r   app.v1.dependencies.authr   app.v1.services.saas.loginr   r   r   r   dotenvr   routerACCESS_TOKEN_EXPIRESrD   postget_mongo_dbMongoDBr5   r8   dictrE   rF   r@   rK   r3   r3   r3   r4   <module>   s:    
 $ 
