o
    h                     @   s   d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dlmZm
Z
mZ d dlmZ d dlmZ d d	lmZ d d
lmZmZ d dlmZ d dlZd dlZd dlmZ d dlmZ G dd deZG dd deZG dd deZ G dd deZ!dS )    )handler)render)settings)urls)EndUser)r   redirectHttpResponse)Response)APIViewstatus)make_passwordcheck_password)RefreshTokenN)render_to_string)mailc                   @      e Zd Zdd ZdS )UserRegisterc           
   
   C   s
  zg|j }|d}|d dd }|d}|s'tdditjdW S |s3tdd	itjdW S |s?tdd
itjdW S t|}t	j
j|d }|rXtdditjdW S t	j
j|||d}tddiW S  ty }	 ztdt|	itjdW  Y d }	~	S d }	~	ww )Nnameemail  passwordmessageemail is requiredr   zname is requiredpassword is requiredr   zThe email is already registered)r   r   r   z.You have been successfully registered with us.)datagetstripreplacelowerr	   r   HTTP_400_BAD_REQUESTr   r   objectsfilterfirstHTTP_409_CONFLICTcreate	ExceptionstrHTTP_500_INTERNAL_SERVER_ERROR)
selfrequestr   r   r   r   new_passwordcheck_emailuser_obje r1   O/home/esfera/Desktop/Rishu/Ai-agent/MachineShop/machine_shop/panel_api/views.pypost   s*   

"zUserRegister.postN__name__
__module____qualname__r3   r1   r1   r1   r2   r          r   c                   @   r   )	LoginUserc                 C   s   |j d}|j d}|stdditjdS |s"tdditjdS z	tjj|d}W n tjy>   tdditjd Y S w t	||j
sNtdd	itjdS t|}td
|jt|jt|dtjdS )Nr   r   r   r   r   r   r   zUser Not credentialszInvalid credentialszLogin successful)r   usernameaccessrefresh)r   r   r	   r   r"   r   r#   DoesNotExistHTTP_401_UNAUTHORIZEDr   r   r   for_userr   r)   access_tokenHTTP_200_OK)r+   r,   r   r   userr<   r1   r1   r2   r3   ,   s,   
zLoginUser.postNr4   r1   r1   r1   r2   r9   +   r8   r9   c                   @   r   )UserForgetpasswordc              
   C   s0  zv|j }|d  }|stddiW S tjj|d }|dkr-tddit	j
dW S tjj|d }|rptdd	d
}||_|  td|d |j}d}tdd|i}	|	}
tj}tj||
||g|	d td|	dW S tddiW S  ty } zt| tdt|it	jdW  Y d }~S d }~ww )Nr   r   Email is requiredr   r   zPThis email does not exist in our database, please enter the valid email address.r   i  i'     z--------------theotpzForget Password OTPzforget_password_otp.htmlotp)html_messagezRendered HTML)r   htmlzEmail not exists)r   r   r   r!   r	   r   r#   r$   countr   HTTP_404_NOT_FOUNDr%   random	randrangeforgot_password_otpsaveprintr   r   r   EMAIL_HOST_USERr   	send_mailr(   r)   r*   )r+   r,   r   r   rB   r/   rF   to_emailsubjectrH   plane_message
from_emailr0   r1   r1   r2   r3   H   s:   
"zUserForgetpassword.postNr4   r1   r1   r1   r2   rC   G   r8   rC   c                   @   r   )verifyForgetPasswordOTPc              
   C   s  za|j d  }|sttjddtjdW S |j d}|s-ttjddtjdW S tjj	|d
 }|sDttjddtjdW S tjj	||d	 }|rYttjd
dW S ttjddW S  ty } zttjt|dtjdW  Y d }~S d }~ww )Nr   rD   )status_codestatus_messager   rG   zotp is Requiredr   zEmail not exist)r   rN   zSuccessfully VerifiedzInvalid otp)r   r   r   r!   r	   r   r"   r   r#   r$   existsr%   rA   r(   r*   r)   )r+   r,   r   rG   email_checkr/   r0   r1   r1   r2   r3   f   s$   &zverifyForgetPasswordOTP.postNr4   r1   r1   r1   r2   rW   e   r8   rW   )"xml.saxr   django.shortcutsr   machine_shopr   	panel_apir   panel_api.modelsr   r   r   rest_framework.responser	   rest_framework.viewsr
   rest_frameworkr   django.contrib.auth.hashersr   r   rest_framework_simplejwt.tokensr   xml.sax.handlerxmlrL   django.template.loaderr   django.corer   r   r9   rC   rW   r1   r1   r1   r2   <module>   s&    