o
    ̿Si                     @   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              
      sR   t | |I d H }t|d |d dd}|jdd|d  dd	d	d
ddd |S Nmessager   )r   r   )contentAuthorizationzBearer tokenTi  r   None)keyvaluehttponlymax_ageexpirespathsecuresamesite)r   r	   
set_cookie)r   r   resultresponse r.   7/var/www/html/Trade-python/app/v1/routers/saas/login.pylogin   s   
r0   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 r   )r   r	   r+   )r1   r2   r   r,   r-   r.   r.   r/   google_connect$   s   
r3   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_storeprint)r4   r5   r:   r.   r.   r/   send_phone_otp4   s   
rA   z/phone/verifyc                    s   t | |tI d H }|S )N)r   r?   )r4   r   r,   r.   r.   r/   verify_phone_otpA   s   rB   z/checkcurrent_userc                    s   |rddiS t tjdd)NauthenticatedTUnauthorizedr6   )r   r   HTTP_401_UNAUTHORIZED)r   rC   r.   r.   r/   
auth_checkH   s   rG   )*jsonosr<   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_EXPIRESr?   postget_mongo_dbMongoDBr0   r3   dictrA   rB   r;   rG   r.   r.   r.   r/   <module>   s:    
 $ 
