B
    GDb
Q                 @   s  d dl Z d dlZd dl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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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G dd deZG dd deZ dd Z!dS )    N)get_user_model)APIView)responsestatus)Company)MyUser)
Membership)Employee)AppTempRegistraion)otp_sms_sendsend_otp_email)cloud_create_companycreate_admin_membershipc               @   s   e Zd ZdddZdd ZdS )CompanyEmailExistsNc             C   s   d S )N )selfrequestmessager   r   BG:\easytimepro\master/mysite/mobile\api_rest\views\view_company.pypermission_denied   s    z$CompanyEmailExists.permission_deniedc             C   s  |j dd}|j d}td}t||rhtjj|d}d}| s|t	jj||d}| r|d}nt	jj||d}d}|s|s|d	d
t
jd}tj|t
jdS |sddt
jd}nddt
jd}tj|t
jdS n|sj|d }tjj|dd}| rdnd}	||jd|	dddddt
jd
}tjj|djd d}
|
 s|dd
t
jd}tj|t
jdS nt	jj||d}d}d}|d jdkrd}|d jdkrd}d }|d jd ks|d jd krd!}||d"dd|||d#t
jd
}tj|t
jdS )$Nemail company_namez?^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$)email__iexactF)emp_codecompany__nameTznot registerzNot Registered)r   typer   status_code)r   z&Please Enter your Email or Employee IDZ	not_found)r   r   r   zEmployee ID not Exist.r      )userZroler   Zcompany_checkZSuccess)
r   usernameZ
login_usersupport_vendorr   
app_statusr   mobiler   r   )r   )companyzcompany not createdZDisabeZverified   ZEnablezNot Verifiedupdatedz$Mobile number or email-id not existsZemployeesuccess)datagetrecompilematchr   objectsfilterexistsr	   r   HTTP_200_OKr   ResponseHTTP_406_NOT_ACCEPTABLEr   r    Zexcluder"   verified_employeer   r#   )r   r   Z	user_datar$   email_rer   Zis_empcontextZvendor_membershipr!   Z
membershipempr"   Z
firstLoginZmobile_email_datar   r   r   post   s    





 
zCompanyEmailExists.post)N)__name__
__module____qualname__r   r7   r   r   r   r   r      s   
r   c               @   s   e Zd ZdddZdd ZdS )CreateEmployeeOTPNc             C   s   d S )Nr   )r   r   r   r   r   r   r   z   s    z#CreateEmployeeOTP.permission_deniedc             C   s   |j d}|j d}tjj||d}| sHtjdtj	dtj	dS |d }t
 }|jdkrxtjdtj	dtj	dS |jr|jr|j}t|| |j}t|| ntjd	tj	dtj	dS ||_|  tjd
tjdtjdS )Nr   Zemployee_id)r   r   zEmployee not found)r   r   )r   r   zEmployee mobile app disabledz!Mobile number and email not foundzOTP sent)r(   r)   r	   r-   r.   r/   r   r1   r   r2   otpGenerater"   r#   r   r   delayr   otpsaver0   )r   r   r   r   r6   r>   mobile_numberr   r   r   r   r7   }   s.    





zCreateEmployeeOTP.post)N)r8   r9   r:   r   r7   r   r   r   r   r;   y   s   
r;   c               @   s   e Zd ZdddZdd ZdS )CreateCompanyNc             C   s   d S )Nr   )r   r   r   r   r   r   r      s    zCreateCompany.permission_deniedc             C   s  |j d}|j dd}|j dd}|r|r|rtjj|d}| rhtjdtj	dtj	dS t
d	}t
||rtjj|d
}| r|d jd k	rtjdtj	dtj	dS ntjdtj	dtj	dS t
d}t
||r.tjj|d}| rF|d jd k	rFtjdtj	dtj	dS ntjdtj	dtj	dS t }	tjj||d}
|
 r|
d }
|	|
_||
_|
  nt||||	d}
|
  |}t||	 |}t||	 tjdtjdtjdS tjdtj	dtj	dS d S )Nr   company_email_idr   company_phone)Zname__iexactz2Company name already registered with other mail-id)r   r   )r   z?^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$)r   r   z.Email-id already registered with other companyzPlease input valid emailz(^[+0-9]{1,3})*([0-9]{10,11}$))Zmobile__iexactz2Phone number already registered with other companyzPlease input valid phone number)r$   r   )r$   r   r#   r>   zOTP sentz Please input all required fields)r(   r)   r   r-   r.   r/   r   r1   r   r2   r*   r+   r,   r   current_companyr<   r
   r>   r#   r?   r   r=   r   r0   )r   r   r   rB   company_mobile_numberrD   
email_ruler   Zmobile_ruler>   Temprovary_regr@   r   r   r   r   r7      s`    











zCreateCompany.post)N)r8   r9   r:   r   r7   r   r   r   r   rA      s   
rA   c               @   s   e Zd ZdddZdd ZdS )VerifyNc             C   s   d S )Nr   )r   r   r   r   r   r   r      s    zVerify.permission_deniedc       	      C   sR  |j d}|j dd}|j d}|j d}td}t||rtjj|||d}| szt	j
dtjd	tjd
S |d }|j|krd|_|  t	j
dtjd	tjd
S t	j
dtjd	tjd
S ntjj||d}| st	j
dtjd	tjd
S |d }|j|kr6d|_|  t	j
dtjd	tjd
S t	j
dtjd	tjd
S d S )Nr   rB   r   rC   r>   z?^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$)r$   r   r#   zUser not found)r   r   )r   r   r%   zOTP verified successfullyzIncorrect OTP)r   r   zEmployee not found)r(   r)   r*   r+   r,   r
   r-   r.   r/   r   r1   r   r2   r>   verified_userr?   r0   r	   r3   )	r   r   r   rB   rE   r>   r4   rG   r6   r   r   r   r7      s@    







zVerify.post)N)r8   r9   r:   r   r7   r   r   r   r   rH      s   
rH   c               @   s   e Zd ZdddZdd ZdS )CreatePasswordNc             C   s   d S )Nr   )r   r   r   r   r   r   r      s    z CreatePassword.permission_deniedc             C   sP  |j d}|j dd}|j d}|}td}t||rtjj||d}| srt	j
dtjdtjd	S |d
 }|jd
krt	j
dtjdtjd	S t|}|dkr|dd
 }	t|	dkr|	d d }
q|	}
n|}
tjj|d}| r|d
 }n
t||}t }tjj|d}| rx|d
 }|| d|_|j|_|j|_|  t|d t	j
dtjdtjd	S |jj|
|||
|j|jd}d|_|  t|d t	j
dtjdtjd	S tjj||d}| st	j
dtjdtjd	S |d
 }|jd
kr"t	j
dtjdtjd	S || |  t	j
dtjdtjd	S d S )Nr   rB   r   passwordz?^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$)r$   r   zUser not found)r   r   )r   r   zPlease verify user OTP   @   )name)r   Tr%   zPassword updated)rK   ZnicknamerD   r#   )r   r   zEmployee not foundzPlease verify Employee OTP)r(   r)   r*   r+   r,   r
   r-   r.   r/   r   r1   r   r2   rI   lensplitr   r   r   r   Zset_passwordZis_staffidrD   r#   r?   r   r0   Zcloud_create_userr	   r3   )r   r   r   rB   pwdrK   r4   rG   Zemail_lengthZsplit_emailZallowed_username_or_nicknamer$   Z
class_userZuser_objr6   r   r   r   r7     s|    


















zCreatePassword.post)N)r8   r9   r:   r   r7   r   r   r   r   rJ      s   
rJ   c               @   s   e Zd ZdddZdd ZdS )ForgotPasswordGenerateOTPNc             C   s   d S )Nr   )r   r   r   r   r   r   r   G  s    z+ForgotPasswordGenerateOTP.permission_deniedc             C   s  |j d}|j dd}|j d}|r|r|rtd}t||rtjj||d}| szt	
dtjdS |d	 }t }tjj|||d
}| r|d	 }||_|  ntjj||||d}	|	  |}
t|
| |}t|| t	j
dtjdtjdS ntjj|||d}| sDt	j
dtjdtjdS |d	 }t }|jrn|j}
t|
| nt	j
dtjdtjdS |jr|j}t|| nt	j
dtjdtjdS ||_|  t	j
dtjdtjdS nt	j
dtjdtjdS d S )Nr   rB   r   rC   z?^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$)r   r#   zUser Not Register)r   r   r   )r$   r   r#   )r$   r   r#   r>   zOTP sent)r   )r   r   r#   zEmployee not foundzMobile number not foundzEmail not foundz Please input all required fields)r(   r)   r*   r+   r,   r   r-   r.   r/   r   r1   r   r2   r<   r
   r>   r?   creater   r=   r   r0   r	   r#   r   )r   r   r   rB   rE   rF   r   r>   rG   Ztemp_regr@   r   r6   r   r   r   r7   J  sl    













zForgotPasswordGenerateOTP.post)N)r8   r9   r:   r   r7   r   r   r   r   rT   F  s   
rT   c              C   s:   g } x&t dD ]}| ttdd qW d| } | S )N   r%   	   r   )rangeappendstrrZrandintjoin)r>   ir   r   r   r<     s
    
r<   )"r*   ZjsonZrandomr[   Zdjango.contrib.authr   Zrest_framework.viewsr   Zrest_frameworkr   r   Zmysite.cloud.modelsr   Zmysite.accounts.modelsr   Zmysite.base.modelsr   Zmysite.personnel.modelsr	   Zmysite.mobile.modelsr
   Zmysite.mobile.tasksr   r   Zmysite.accounts.urlsr   r   r   r;   rA   rH   rJ   rT   r<   r   r   r   r   <module>   s&   d;*IC