
    ʸdڥ                        d dl mZ d dlmZ d dlmZ ddl d dl d dlZd dl	m	Z	 ddl
 d dlmZ d d	lmZ d dlZd dl d
 Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d d e      Z G d! d"e      Z G d# d$e      Z G d% d&e      Z  G d' d(e      Z! G d) d*e      Z" G d+ d,e      Z# G d- d.e      Z$y)/    )APIView)Responsestatus   )*N)datetime)settings)django_pbkdf2_sha256c                     t         j                  j                         j                         } | rV| j                  sy| j                  }|dd  }t        |      dz   }t        |      }|j                  d      }dt        |      z   S y)NCUS00001   r      CUS)Buyerobjectsalllastcustomer_idintstrzfill)lastObjtheIds     */var/www/html/Beni/beni/auth_apis/views.pygernateUserIdr      sv    MM$$&G""*!!ABi%jl%jkk!nSZ    c                       e Zd Zd Zy)loginc                    	 t        |j                        }|j                         rt        j                  j                  |j                  j                  d      |j                  j                  d      j                  d            j                         }t        j                  ddd      }|sct        j                  j                  |j                  j                  d      |j                  j                  d      j                  d      d	
      }||_        t        j                         |_        |j                  j                  d      }|st!        t"        j$                  dd      S |j                  j                  d      }|st!        t"        j$                  dd      S ||_        ||_        |j+                          t!        t"        j,                  d|d      S |j.                  }i }|j1                         D ]  \  }	}
|
} n t!        t"        j$                  |d      S # t2        $ rJ}t5        |       t!        t"        j6                  t9        |      dt"        j6                        cY d }~S d }~ww xY w)Ndataisd_codephone_number0r#   r$     '  r   r   r#   r$   is_buyerdevice_typezdevice_type is requiredstatus_codestatus_messagedevice_tokenzdevice_token is requiredSuccessr-   r.   loginotpr   )LoginSerializerr"   is_validUserr   filtergetlstripfirstrandom	randrangecreateotp_generatedr	   nowotp_created_atr   r   HTTP_400_BAD_REQUESTr+   r/   saveHTTP_200_OKerrorsitems	ExceptionprintHTTP_500_INTERNAL_SERVER_ERRORr   )selfrequest
serializercustomerObjtheotpr+   r/   default_errors	new_error
field_namefield_errorses               r   postz
login.post!   sU   	X(gll;J""$ LL//9I9I*9Ucjcococscs  uC  dD  dK  dK  LO  dP/  Q  W  W  Y''dA6" $ 3 3W\\=M=Mj=Ygngsgsgwgw  yG  hH  hO  hO  PS  hT  ^_ 3  !`K*0),4LLN*%ll..}="#63N3N`y$z{{&||//?##63N3N`z${||*5'+7(  "v/A/AS\hn opp!+!2!2	0>0D0D0F,J ,I 1G  v/J/J\e fgg 	X!H6+P+Pbefgbhiqw  rW  rW  X  X	Xs1   E+H' .8H' ':H' "AH' '	I:0?I5/I:5I:N__name__
__module____qualname__rR    r   r   r   r       s    Xr   r   c                       e Zd Zd Zy)registerPanelc                    	 t        |j                        }|j                         rt        j                  j                  |j                  j                  d      |j                  j                  d      j                  d      dd      j                         }|rt        t        j                  dd      S t        j                  j                  |j                  j                  d      |j                  j                  d      j                  d      dd	      j                         }|rt        t        j                  d
d      S |j                  j                  d      }|j                  j                  d      j                  d      }|j                  j                  d      }t        j                  |      }t        j                  ddd      }	|	}
t        j                  j!                  |t#        j$                         |||
d      }t        t        j&                  d|
d      S |j(                  }i }|j+                         D ]  \  }}|} n t        t        j                  |d      S # t,        $ rJ}t/        |       t        t        j0                  t3        |      dt        j0                        cY d }~S d }~ww xY w)Nr!   r#   r$   r%   T)r#   r$   r*   is_otp_verifiedz0This phone number is already registered with us.r,   Fz+OTP is not verified.Please verify it again.passwordr'   r(   r   r   )r\   r?   r#   r$   r=   r*   r0   r1   r   )RegisterSerializerr"   r4   r5   r   r6   r7   r8   r9   r   r   r@   handlerhashr:   r;   r<   r	   r>   rB   rC   rD   rE   rF   rG   r   )rH   rI   rJ   rK   customerObjUvr#   r$   string_passwordr\   rL   r=   rM   rN   rO   rP   rQ   s                   r   rR   zregisterPanel.postC   s   	X+>J""$ LL//7<<;K;KJ;Wgngsgsgwgw  yG  hH  hO  hO  PS  hT  ^b  sw/  x  ~  ~  @#63N3N  aS  %T  U  U"ll11W\\=M=Mj=Yipiuiuiyiy  {I  jJ  jQ  jQ  RU  jV  `d  uz1  {  A  A  C #63N3N  aN  %O  P  P"<<++J7&||//?FFsK#*<<#3#3J#?"<<8''dA6$ LL//8U]UaUaUcmu  DP  _l  vw/  xv/A/AS\hu vww!+!2!2	0>0D0D0F,J ,I 1G  v/J/J\e fgg 	X!H6+P+Pbefgbhiqw  rW  rW  X  X	Xs3   B6I0 9BI0 	C!I0 +AI0 0	K9?J>8K>KNrS   rW   r   r   rY   rY   B   s    Xr   rY   c                       e Zd Zd Zy)verifyOtpPannelc                    	 t        |j                        }|j                         r|j                  j                  d      }|j                  j                  d      j	                  d      }|j                  j                  d      }t
        j                  j                  ||      j                         }t        |j                        t        |      k(  rd|_        t        t                     }||_        |j                          t         j                  j                  |      j                         }|s3t         j                  j#                  |j$                  t'               	       |j(                  |j*                  |j,                  |j                  |j                  |j.                  d
}	t1        t2        j4                  d|	d      S t1        t2        j6                  dd      S |j8                  }
i }|
j;                         D ]  \  }}|} n t1        t2        j6                  |d      S # t<        $ rJ}t?        |       t1        t2        j@                  t        |      dt2        j@                        cY d }~S d }~ww xY w)Nr!   r#   r$   r%   otpr&   Tuser_idrg   r   )r*   r#   phonetokenr[   isProfileCompleter0   r-   r.   r"   Invalid otpr,   r   )!VerifyOtppannelSerializerr"   r4   r7   r8   r5   r   r6   r9   r   r=   r[   r   gernateTokenrj   rA   r   r<   idr   r*   r#   r$   is_profile_completedr   r   rB   r@   rC   rD   rE   rF   rG   )rH   rI   rJ   r#   r$   	enter_otpcust_objtheToken	buyer_objallDatarM   rN   rO   rP   rQ   s                  r   rR   zverifyOtpPannel.postd   s   !	X2EJ""$"<<++J7&||//?FFsK#LL,,U3	<<..l.[aacx--.#i.@/3H, 0H#+HNMMO % 4 4X 4 F L L NI$,,X[[]_,](0(9(9'/'8'8$,$9$9$,NN.6.F.F080M0MOG $63E3EW`ho$pqq#63N3N`m$noo!+!2!2	0>0D0D0F,J ,I 1G  v/J/J\e fgg 	X!H6+P+Pbefgbhiqw  rW  rW  X  X	Xs+   GH0 H0 +AH0 0	J9?I>8J>JNrS   rW   r   r   rc   rc   c   s    "Xr   rc   c                       e Zd Zd Zy)	resendOtpc                 6   |j                   j                  d      }|st        t        j                  dd      S |j                   j                  d      j                  d      }|st        t        j                  dd      S t        j                  j                  ||d      j                         }|st        t        j                  d	d      S t        j                  d
dd      }||_        |j                          t        t        j                  d|d      S )Nr#   zIsd code is requiredr,   r$   r%   zPhone number is requiredr   )r$   r#   r*   zPhone number not existr'   r(   r   zOtp Send successfullyr1   )r"   r7   r   r   r@   r8   r5   r   r6   r9   r:   r;   r=   rA   rB   )rH   rI   r#   r$   user_objrL   s         r   rR   zresendOtp.post   s    <<##J/6+F+FXnopp||''7>>sC6+F+FXrstt<<&&\8]^&_eeg6+F+FXpqrr##D$2F#)H"MMO6+=+=Ofrxyzzr   NrS   rW   r   r   rx   rx      s    {r   rx   c                       e Zd Zd Zy)	verifyOtpc                    	 t        |j                        }|j                         rt        j                  j                  |j                  j                  d      |j                  j                  d      j                  d      |j                  j                  d      d      j                         }|rt        t                     }||_        |j                          t        j                  j                  |      j                         }|s3t        j                  j                  |j                  t!               	       |j"                  |j$                  |j&                  |j                  |j(                  d
}t+        d|       t,        j                  j                  |j&                  dz   d       t/        t0        j2                  d|d      S t/        t0        j4                  dd      S |j6                  }i }|j9                         D ]  \  }	}
|
} n t/        t0        j4                  |d      S # t:        $ rJ}t+        |       t/        t0        j<                  t        |      dt0        j<                        cY d }~S d }~ww xY w)Nr!   r#   r$   r%   re   r   )r#   r$   r=   r*   rf   rh   )r*   r#   ri   rj   rk   z
all sata==z% has registered successfully with us.Tmessageis_readr0   rl   rm   r,   r   )VerifyOtpSerializerr"   r4   r5   r   r6   r7   r8   r9   r   ro   rj   rA   r   r<   rp   r   r*   r#   r$   rq   rF   AdminNotificationsr   r   rB   r@   rC   rD   rE   rG   )rH   rI   rJ   rK   rt   ru   rv   rM   rN   rO   rP   rQ   s               r   rR   zverifyOtp.post   sq   	X,',,?J""$ LL//9I9I*9Ucjcococscs  uC  dD  dK  dK  LO  dP  _f  _k  _k  _o  _o  pu  _v  @A/  B  H  H  J 0H&.K%$$& % 4 4[ 4 I O O QI$,,[^^P]P_,`(3(<(<'2';';$/$<$<$/$5$50;0P0P	RG
 ,0&..55{?W?W  ZA  @A  JN5  O#63E3EW`ho$pqq#63N3N`m$noo!+!2!2	0>0D0D0F,J ,I 1G  v/J/J\e fgg 	X!H6+P+Pbefgbhiqw  rW  rW  X  X	Xs+   GH6 H6 1AH6 6	J	??J>J	J	NrS   rW   r   r   r|   r|      s    Xr   r|   c                       e Zd Zd Zd Zy)updateProfilec                    	 |j                   j                  d      }|st        t        j                  dd      S 	 t
        j                  j                  |      }t        j                  j                  |j                        j                         }|j                  |j                  |j                  |j                   |j"                  |j$                  |j&                  |j(                  |j*                  |j,                  |j.                  d}t        t        j0                  d	|d
      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ rJ}t3        |       t        t        j4                  t7        |      dt        j4                        cY d }~S d }~ww xY w)NHTTP_AUTHORIZATIONsession_token is requiredr,   rj   Invalid session tokenr   rf   )emailr#   r$   avatardob
first_name	last_namer\   notification_enabledrq   wallet_amountr0   rl   )METAr7   r   r   r@   r5   r   rE   HTTP_401_UNAUTHORIZEDr   r6   rp   r9   r   r#   r$   r   r   r   r   r\   r   rq   r   rB   rF   rG   r   rH   rI   session_tokenrz   rQ   ru   alldatas          r   r7   zupdateProfile.get   s   	X!,,**+?@M v/J/J\w xyy[)))> ---DJJLI!$-- ( 5 5! }}&11%//#,,'/'D'D'/'D'D ) 7 7G 6+=+=y`ghii!  [v/K/K]t u  ~D  ~Z  ~Z  [  [[$  	X!H6+P+Pbefgbhiqw  rW  rW  X  X	XsM   8E/  D- CE/ -	E,6+E'!E,"E/ 'E,,E/ /	G8?F=7G=Gc                 4	   	 |j                   j                  d      }|st        t        j                  dd      S 	 t
        j                  j                  |      }t        j                  j                  |j                        j                         }t
        j                  j                  |j                  j                  d      	      j                  |j                  
      j                         }|dkD  rt        ddit        j                        S t!        |j                        }|j#                         r|j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      j+                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      }|r#t3        j4                  |      }	|	|_        d|_        |j                  j                  d      rSt;        |j                  j                  d            }
t=        t>        j@                        dz   |
z   }
t=        |
      |_!        |jE                          |jE                          |j                  |j$                  |j&                  |j(                  |j,                  |jF                  |jB                  |j.                  |j0                  |j6                  |j8                  |jH                  d}tJ        j                  jM                  |j.                  dz   |j0                  z   dz   d       t        t        jN                  d|d      S |jP                  }i }|jS                         D ]  \  }}|} n t        t        j                  |d      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ rJ}tU        |       t        t        jV                  t=        |      dt        jV                        cY d }~S d }~ww xY w)Nr   r   r,   r   r   r   rf   r   r   rp   r   r.   !This email is already registered.r!   r   r#   r$   r%   r   r   r\   Tr   /)rp   r   r   r#   r$   rj   r   r   r   r\   rq   r     has updated their profiler~   r0   rl   ),r   r7   r   r   r@   r5   r   rE   r   r   r6   rp   r9   r"   excludecountUpdateProfileSerializerr4   r   r   r#   r8   r$   r   r   r^   r_   r\   rq   uploadTheProfiler   r
   BASE_URLr   rA   rj   r   r   r<   rB   rC   rD   rF   rG   )rH   rI   r   rz   rQ   ru   check_emailrJ   ra   r\   fileUrlrv   rM   rN   rO   rP   s                   r   rR   zupdateProfile.post   s   7	X!,,**+?@M v/J/J\w xyy[)))> ---DJJLI,,--GLL4D4DW4M-NVVZbZeZeVfllnKQ!12U V^d^y^yzz3FJ""$!(!1!1'!: ' 0 0 7	$+LL$4$4Z$@!(/(8(8(H(O(OPS(T%'.||'7'7'E	$&-ll&6&6{&C	##*<<#3#3J#?"&||O<H(0H%48H1<<##H-,W\\-=-=h-GHG 1 1236w>G$'LHO &kk ('mm#+#4#4'/'<'< (!)%.%9%9$-$7$7#+#4#4/7/L/L(1(?(? #**119;O;OQT;TV_ViVi;i  lH  <H  QU1  Vv/A/AS\dk lmm!+!2!2	0>0D0D0F,J ,I 1G  v/J/J\e fgg]  [v/K/K]t u  ~D  ~Z  ~Z  [  [[^  	X!H6+P+Pbefgbhiqw  rW  rW  X  X	Xs[   8Q  P B:Q J%Q =AQ 	Q+P<6Q7Q <QQ 	R?RRRNrT   rU   rV   r7   rR   rW   r   r   r   r      s    X88Xr   r   c                       e Zd Zd Zy)updateNotificationSettingsc                    	 |j                   j                  d      }|st        t        j                  dd      S 	 t
        j                  j                  |      }|j                  j                  d      }|s,t        t        j                  ddt        j                        S ||_
        |j                          t        t        j                  d	|d
      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ rJ}t        |       t        t        j                  t        |      dt        j                        cY d }~S d }~ww xY w)Nr   r   r,   r   r   r   notification_datazNotification data is requiredr0   rl   )r   r7   r   r   r@   r5   r   rE   r   r"   r   rA   rB   rF   rG   r   )rH   rI   r   rz   rQ   r   s         r   rR   zupdateNotificationSettings.post  s_   	X!,,**+?@M v/J/J\w xyy[)))> !( 0 01D E$v/J/J\{ |  EK  E`  E`  a  a,=H)MMO6+=+=y`qrss  [v/K/K]t u  ~D  ~Z  ~Z  [  [[  	X!H6+P+Pbefgbhiqw  rW  rW  X  X	XsS   8D  C AD %3D 	D"+DDD DD 	E.$?E)#E.)E.NrS   rW   r   r   r   r     s    Xr   r   c                       e Zd Zd Zd Zy)updateProfilePanelc                 t   	 |j                   j                  d      }|st        t        j                  dd      S 	 t
        j                  j                  |      }t        j                  j                  |j                        j                         }|j                  |j                  |j                  |j                   |j"                  |j$                  |j&                  |j(                  |j*                  |j,                  d
}t        t        j.                  d	|d
      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ rJ}t1        |       t        t        j2                  t5        |      dt        j2                        cY d }~S d }~ww xY w)Nr   r   r,   r   r   r   rf   )
r   r#   r$   r   r   r   r   r\   rq   r   r0   rl   )r   r7   r   r   r@   r5   r   rE   r   r   r6   rp   r9   r   r#   r$   r   r   r   r   r\   rq   r   rB   rF   rG   r   r   s          r   r7   zupdateProfilePanel.get+  s   	X!,,**+?@M v/J/J\w xyy[)))> ---DJJLI!$-- ( 5 5! }}&11%//#,,'/'D'D ) 7 7G 6+=+=y`ghii  [v/K/K]t u  ~D  ~Z  ~Z  [  [[   	X!H6+P+Pbefgbhiqw  rW  rW  X  X	XsM   8E$  D" CE$ "	E!++EE!E$ E!!E$ $	F7-?F2,F72F7c                    	 |j                   j                  d      }|st        t        j                  dd      S 	 t
        j                  j                  |      }t        j                  j                  |j                        j                         }t        |j                        }t
        j                  j                  |j                  j                  d	      
      j                  |j                        j!                         }|dkD  rt        ddit        j                        S |j#                         rF|j                  j                  d	      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      j/                  d      |_        d|_        |j                  j                  d      rSt5        |j                  j                  d            }t7        t8        j:                        dz   |z   }t7        |      |_        |j?                          |j?                          |j                  |j$                  |j&                  |j(                  |j*                  |j,                  |j0                  |j@                  |j<                  |jB                  |j2                  |jD                  d}	tF        j                  jI                  |j(                  dz   |j*                  z   dz   d       t        t        jJ                  d|	d      S |jL                  }
i }|
jO                         D ]  \  }}|} n t        t        j                  |d      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ rJ}tQ        |       t        t        jR                  t7        |      dt        jR                        cY d }~S d }~ww xY w)Nr   r   r,   r   r   r   rf   r!   r   r   r   r   r.   r   r   r   r   r#   r$   r%   Tr   r   )rp   r   r   r   r   r#   r$   rj   r   r\   rq   r    r   r~   r0   rl   )*r   r7   r   r   r@   r5   r   rE   r   r   r6   rp   r9   r   r"   r   r   r4   r   r   r   r   r#   r8   r$   rq   r   r   r
   r   r   rA   rj   r\   r   r   r<   rB   rC   rD   rF   rG   )rH   rI   r   rz   rQ   ru   rJ   r   r   rv   rM   rN   rO   rP   s                 r   rR   zupdateProfilePanel.postE  s   3	X!,,**+?@M v/J/J\w xyy[)))> ---DJJLI3FJ,,--GLL4D4DW4M-NVVZbZeZeVfllnKQ!12U V^d^y^yzz""$!(!1!1'!: ' 0 0 7	'.||'7'7'E	$&-ll&6&6{&C	#$+LL$4$4Z$@!(/(8(8(H(O(OPS(T%04-<<##H-,W\\-=-=h-GHG 1 1236w>G$'LHO &kk ('mm%.%9%9$-$7$7#+#4#4'/'<'< (!)#+#4#4/7/L/L(1(?(? #**119;O;OQS;SU^UhUh;h  kG  <G  PT1  Uv/A/AS\dk lmm!+!2!2	0>0D0D0F,J ,I 1G  v/J/J\e fggU  [v/K/K]t u  ~D  ~Z  ~Z  [  [[V  	X!H6+P+Pbefgbhiqw  rW  rW  X  X	Xs[   8P  O	 CP -IP AP 		P+P=P>P PP 	Q?QQQNr   rW   r   r   r   r   *  s    X44Xr   r   c                       e Zd Zd Zd Zy)getAddressesc                    	 |j                   j                  d      }|st        t        j                  dd      S 	 t
        j                  j                  |      }t        j                  j                  |j                        }g }|D ]  }|j                  |j                  |j                  |j                  |j                  |j                   |j"                  |j$                  |j&                  |j(                  |j*                  |j,                  |j.                  |j0                  d}|j3                  |        t        t        j4                  d	|d
      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ rJ}t7        |       t        t        j8                  t;        |      dt        j8                        cY d }~S d }~ww xY w)Nr   r   r,   r   r   r   rf   rp   address_labelnameaddress_linecountrystatecitylatitude	longitudepin_coder#   r$   user
is_defaultr0   rl   )r   r7   r   r   r@   r5   r   rE   r   	Addressesr6   rp   r   r   r   r   r   r   r   r   r   r#   r$   rg   r   appendrB   rF   rG   r   )	rH   rI   r   rz   rQ   address_objrv   ir   s	            r   r7   zgetAddresses.get~  s    	X!,,**+?@M v/J/J\w xyy[)))> %,,33hkk3JKG $%OO66#$>>iiGG66 zz ! zz zz#$>>99!"" w'% !& 6+=+=y`ghii/  [v/K/K]t u  ~D  ~Z  ~Z  [  [[0  	X!H6+P+Pbefgbhiqw  rW  rW  X  X	XsM   8F  E C=F 	F#+FFF FF 	G/%?G*$G/*G/c                    	 |j                   j                  d      }|st        t        j                  dd      S 	 t
        j                  j                  |      }t        |j                        }|j                         rt        j                  j                  |j                  d	      j                         }|rd
|_        |j#                          t%        d|j                  j                  d             t%        d|j                  j                  d             t%        d|j                  j                  d             t        j                  j'                  |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d      j)                  d      |d       t        j                  j                  |j                        }g }|D ]  }	|	j                  |	j*                  |	j,                  |	j.                  |	j0                  |	j2                  |	j4                  |	j6                  |	j8                  |	j:                  |	j<                  |	j>                  |	j@                  |	j                   d}
|jC                  |
        t        t        jD                  d|d      S |jF                  }i }|jI                         D ]  \  }}|} n t        t        j                  |d      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ rJ}t%        |       t        t        jJ                  tM        |      dt        jJ                        cY d }~S d }~ww xY w)Nr   r   r,   r   r   r   r!   Trg   r   Fr   r   r   r   r   r   r   r   r   r#   r$   r%   )r   r   r   r   r   r   r   r   r   r#   r$   r   r   rf   r   zAddress added successfullyrl   )'r   r7   r   r   r@   r5   r   rE   r   AddAddressSerializerr"   r4   r   r6   rp   r9   r   rA   rF   r<   r8   r   r   r   r   r   r   r   r   r   r#   r$   rg   r   rB   rC   rD   rG   r   )rH   rI   r   rz   rQ   rJ   r   
addres_objrv   r   r   rM   rN   rO   rP   s                  r   rR   zgetAddresses.post  s   ?	X!,,**+?@M v/J/J\w xyy[)))> .7<<@J""$'//66x{{VZ6[aac-2K*$$&i 0 0 ;<ggll..w78fW\\--f56!!(("),,"2"2?"C"<<++F3#*<<#3#3N#C%ll..y9#LL,,W5"<<++F3&||//
; ' 0 0 =&||//
;&||//
;#*<<#3#3N#C#J#J3#O#!% )  (//666M
#ATT() vv'(~~"#)) ! vv#$::$%KK#$::#$::'(~~ yy%&\\G" NN7+% $&  v/A/ASow~   A  A!+!2!2	0>0D0D0F,J ,I 1G  v/J/J\e fggm  [v/K/K]t u  ~D  ~Z  ~Z  [  [[n  	X!H6+P+Pbefgbhiqw  rW  rW  X  X	XsT   8P  O L3P AP 	P+P	P
P PP 	Q* ?Q%Q*%Q*Nr   rW   r   r   r   r   }  s    !XF@Xr   r   c                       e Zd Zd Zy)setDefaultAddressc                    	 |j                   j                  d      }|st        t        j                  dd      S 	 t
        j                  j                  |      }|j                  j                  d      }|s,t        t        j                  ddt        j                        S t        j                  j                  |j                  d	
      j                         }|rd|_        |j                          t        j                  j                  ||j                        j!                  d	       t        j                  j                  |j                        }g }|D ]  }	|	j                  |	j"                  |	j$                  |	j&                  |	j(                  |	j*                  |	j,                  |	j.                  |	j0                  |	j2                  |	j4                  |	j6                  |	j8                  |	j                  d}
|j;                  |
        t        t        j<                  d|d      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ rJ}t?        |       t        t        j@                  tC        |      dt        j@                        cY d }~S d }~ww xY w)Nr   r   r,   r   r   r   
address_idAddress Id is requiredTr   Frp   rg   )r   rf   r   z Default address set successfullyrl   )"r   r7   r   r   r@   r5   r   rE   r   r"   r   r6   rp   r9   r   rA   updater   r   r   r   r   r   r   r   r   r#   r$   rg   r   rB   rF   rG   r   )rH   rI   r   rz   rQ   r   Address_objr   rv   r   r   s              r   rR   zsetDefaultAddress.post  sl   (	X!,,**+?@M v/J/J\w xyy[)))> !)),7Jv/J/J\t u  ~D  ~Y  ~Y  Z  Z#++228;;RV2W]]_K).&  "$$
8;;$GNNZ^N_#++22X[[2IJGTT() vv'(~~"#)) ! vv#$::$%KK#$::#$::'(~~ yy%&\\G" NN7+%  & 6+=+=Oq  zA  B  C  C?  [v/K/K]t u  ~D  ~Z  ~Z  [  [[@  	X!H6+P+Pbefgbhiqw  rW  rW  X  X	XsT   8I2  H0 AI2 %F
I2 0	I/9+I*$I/%I2 *I//I2 2	K;?K :K KNrS   rW   r   r   r   r     s    )Xr   r   c                       e Zd Zd Zy)editAddressesc                    	 |j                   j                  d      }|st        t        j                  dd      S 	 t
        j                  j                  |      }|j                  j                  d      }|st        t        j                  dd      S t        |j                  	      }|j                         rt        j                  j                  |
      j                         }|r|j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      j3                  d      |_        ||_        |j9                          n,t        t        j                  ddt        j                        S t        j                  j                  |j:                        }g }	|D ]  }
|
j:                  |
j                  |
j                   |
j"                  |
j$                  |
j&                  |
j(                  |
j*                  |
j,                  |
j.                  |
j0                  |
j4                  |
j<                  |
j>                  d}|	jA                  |        t        t        jB                  d|	d      S |jD                  }i }|jG                         D ]  \  }}|} n t        t        j                  |d      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ rJ}tI        |       t        t        jJ                  tM        |      dt        jJ                        cY d }~S d }~ww xY w)Nr   r   r,   r   r   r   r   r   r!   r   r   r   r   r   r   r   r   r   r   r#   r$   r%   zNo address foundrf   r   zAddress edit successfullyrl   )'r   r7   r   r   r@   r5   r   rE   r   r"   r   r4   r   r6   r9   r   r   r   r   r   r   r   r   r   r#   r8   r$   r   rA   rp   rg   r   r   rB   rC   rD   rF   rG   r   )rH   rI   r   rz   rQ   r   rJ   address_post_idr   rv   r   r   rM   rN   rO   rP   s                   r   rR   zeditAddresses.post  s   >	X!,,**+?@M v/J/J\w xyy[)))> !)),7Jv/J/J\t uvv-7<<@J""$"+"3"3":":j":"I"O"O"Q"29,,2B2B?2SO1+2<<+;+;F+CO(3:<<3C3CN3SO0.5ll.>.>y.IO+,3LL,<,<W,EO)+2<<+;+;F+CO(/6||/?/?
/KO,070@0@0MO-/6||/?/?
/KO,/6||/?/?
/KO,3:<<3C3CN3S3Z3Z[^3_O0+3O(#((*#63N3N`r$s  |B  |W  |W  X  X'//666M
#ATT() vv'(~~"#)) ! vv#$::$%KK#$::#$::'(~~ yy%&\\G" NN7+% $&  v/A/ASnv} ~!+!2!2	0>0D0D0F,J ,I 1G  v/J/J\e fggi  [v/K/K]t u  ~D  ~Z  ~Z  [  [[l  	X!H6+P+Pbefgbhiqw  rW  rW  X  X	Xsa   8P%  O# 8P% H
P%  C=P% AP% #	P",+PP"P% P""P% %	Q8.?Q3-Q83Q8NrS   rW   r   r   r   r     s    ?Xr   r   c                       e Zd Zd Zy)deleteAddressc                    	 |j                   j                  d      }|st        t        j                  dd      S 	 t
        j                  j                  |      }|j                  j                  d      }|s,t        t        j                  ddt        j                        S t        j                  j                  ||j                  	      j                          t        j                  j                  |j                  
      }g }|D ]  }|j                  |j                  |j                  |j                   |j"                  |j$                  |j&                  |j(                  |j*                  |j,                  |j.                  |j0                  |j2                  |j4                  d}	|j7                  |	        t        t        j8                  d|d      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ rJ}t;        |       t        t        j<                  t?        |      dt        j<                        cY d }~S d }~ww xY w)Nr   r   r,   r   r   r   r   r   r   rf   r   zAddress deleted succesfullyrl   ) r   r7   r   r   r@   r5   r   rE   r   r"   r   r6   rp   deleter   r   r   r   r   r   r   r   r   r#   r$   rg   r   r   rB   rF   rG   r   )
rH   rI   r   rz   rQ   r   r   rv   r   r   s
             r   rR   zdeleteAddress.postS  s   $	X!,,**+?@M v/J/J\w xyy[)))> !)),7Jv/J/J\t u  ~D  ~Y  ~Y  Z  Z$$
8;;$GNNP#++22X[[2IJGTT() vv'(~~"#)) ! vv#$::$%KK#$::#$::'(~~ yy%&\\G" NN7+%  & 6+=+=Olt{|}}7  [v/K/K]t u  ~D  ~Z  ~Z  [  [[8  	X!H6+P+Pbefgbhiqw  rW  rW  X  X	XsT   8H  G AH %D6H 	H%+HHH HH 	I1'?I,&I1,I1NrS   rW   r   r   r   r   R  s    %Xr   r   c                       e Zd Zd Zy)resetPasswordc                    |j                   j                  d      }|s=|j                  d      st        t        j
                  dd      S |j                  d   }n|j                  dd      }	 t        j                  j                  |      j                         }t        |j                  
      }|j                         r5t        j                  j                  |j                         }|j#                  |j                  j                  d            dk(  r,t        t        j
                  ddt        j
                  	      S |j#                  |j                  j                  d            dk(  r,t        t        j
                  ddt        j
                  	      S |j                  j                  d      }|j%                  |       |j'                          t        t        j(                  ddd      S |j*                  }i }	|j-                         D ]  \  }
}|}	 n t        t        j
                  |	d      S # t        $ r6}t        t        j                  ddt        j                  	      cY d }~S d }~ww xY w)Nr   r   r   r,   zToken r   r   r   r   r!   r   old_passwordFz$Does not match with the old passwordconfirm_passwordT0You cannot set new password same as old passwordzSuccessfully Password Changedrl   )r   r7   GETr   r   r@   replacer5   r   r6   r9   rE   r   ResetPasswordSerializerr"   r4   r   check_passwordset_passwordrA   rB   rC   rD   )rH   rI   r   rK   rQ   rJ   r   r\   rM   rN   rO   rP   s               r   rR   zresetPassword.post{  sH   ll&&';<;;/v/J/J\w xyy!++o6M)11(B?M	W++-+@FFHK -',,?
 <<+++2C2C+DD""7<<#3#3N#CDMv/J/J  ]C  !D  LR  Lg  Lg  h  h""7<<#3#34F#GHDP#63N3N  aS  %T  \b  \w  \w  x  x||''(:;H$$X.6+=+=Onvxyzz'..NI,:,@,@,B(
L(	 -C 6+F+FXabcc'  	W6+G+GYpqy  zV  zV  W  W	Ws   ..H= =	I<+I71I<7I<NrS   rW   r   r   r   r   z  s    dr   r   c                       e Zd Zd Zy)
loginPanelc           
      d   t        |j                        }|j                         rEt        j                  j                  |j                  j                  d      |j                  j                  d      j                  d            j                         }|dk(  r,t        t        j                  ddt        j                  	      S t        j                  j                  |j                  j                  d      |j                  j                  d      j                  d            j                         }t        j                  j                  |j                  
      j                         }|j                  }t!        j"                  |j                  j                  d      |      }|r|j                  |j$                  |j&                  |j(                  |j*                  |j,                  |j.                  |j0                  |j2                  d	}|j5                          t        t        j6                  d|d      S t        t        j                  ddt        j                  	      S |j8                  }	i }
|	j;                         D ]  \  }}|}
 n t        t        j                  |
d      S )Nr!   r#   r$   r%   r&   r   zAThis phone number does not exist in our database, please registerr,   r   rf   r\   )	rp   r   r   r#   r$   r   r   r   rj   r0   rl   zInvalid password)loginSerializerr"   r4   r5   r   r6   r7   r8   r   r   r   r@   r9   r   rp   r\   r^   verifyr   r   r#   r$   r   r   r   rj   rA   rB   rC   rD   )rH   rI   rJ   r   userObjru   new_passcheckrv   rM   rN   rO   rP   s                r   rR   zloginPanel.post  sp   'W\\:
 LL''1A1A*1M\c\h\h\l\lm{\|  ]D  ]D  EH  ]I'  J  P  P  RDqyv/J/J  ]`  !a  io  iD  iD  E  E||**GLL4D4DZ4P_f_k_k_o_op~_  `G  `G  HK  `L*  M  S  S  UG--

-CIIKI''HNN7<<#3#3J#?IE%jj#MM#--&//#*#7#7!*!5!5 ) 3 3$^^#MM	 v/A/AS\dk lmmv/J/J\n ow}  xS  xS  T  T'..NI,:,@,@,B(
L(	 -C 6+F+FXabccr   NrS   rW   r   r   r   r     s     dr   r   c                       e Zd Zd Zy)forgetPasswordc                    t        |j                        }|j                         rt        j                  j                  |j                  j                  d      |j                  j                  d      j                  d            j                         }|s,t        t        j                  ddt        j                        S t        j                  d	d
d      }||_        |j                          t        t        j                   d|d      S |j"                  }i }|j%                         D ]  \  }}|} n t        t        j                  |d      S )Nr!   r#   r$   r%   r&   ,This account does not exists in our databaser,   r   r'   r(   r   r0   r-   r.   re   )r3   r"   r4   r5   r   r6   r7   r8   r9   r   r   r@   r:   r;   forgot_password_otprA   rB   rC   rD   )	rH   rI   rJ   
user_checkrL   rM   rN   rO   rP   s	            r   rR   zforgetPassword.post  sU   $',,7
 ,,8H8H8Tdkdpdpdtdt  vD  eE  eL  eL  MP  eQ,  R  X  X  ZJv/J/J  ]K  !L  TZ  To  To  p  p##D$2F+1J*OO6+=+=y_efgg'..NI,:,@,@,B(
L(	 -C 6+F+FXabccr   NrS   rW   r   r   r   r     s    dr   r   c                       e Zd Zd Zy)forgetPasswordVerifyc                    t        |j                        }|j                         rt        j                  j                  |j                  j                  d      |j                  j                  d      j                  d      |j                  j                  d      d      j                         }|rt        t        j                  dd	      S t        t        j                  d
d	t        j                        S |j                  }i }|j                         D ]  \  }}|} n t        t        j                  |d	      S )Nr!   r#   r$   r%   re   r   )r#   r$   r   r*   zVerified Successfullyr,   rm   r   )r   r"   r4   r5   r   r6   r7   r8   r9   r   r   rB   r@   rC   rD   )rH   rI   rJ   rK   rM   rN   rO   rP   s           r   rR   zforgetPasswordVerify.post  sR   (gll;
 ++W\\5E5Ej5Q_f_k_k_o_op~_  `G  `G  HK  `L  ah  am  am  aq  aq  rw  ax  BC+  D  J  J  LKv/A/ASj kllv/J/J\i jrx  sN  sN  O  O'..NI,:,@,@,B(
L(	 -C 6+F+FXabccr   NrS   rW   r   r   r   r     s    dr   r   c                       e Zd Zd Zy)forgetPasswordSetc                    t        |j                        }|j                         rWt        j                  j                  |j                  j                  d      |j                  j                  d      j                  d      d      j                         }|j                  j                  d      }|j                  j                  d      }||k(  r|j                  |      d	k(  r,t        t        j                  d
dt        j                        S |r!|j                  |       |j                          t        t        j                  dd      S t        t        j                  ddt        j                        S |j                   }i }|j#                         D ]  \  }}	|	} n t        t        j                  |d      S )Nr!   r#   r$   r%   r   r)   r\   r   Tr   r,   r   zPassword changed successfullyz*Password and confirm password are not same)ForgetPasswordSerializerr"   r4   r5   r   r6   r7   r8   r9   r   r   r   r@   r   rA   rB   rC   rD   )
rH   rI   rJ   rK   new_passwordr   rM   rN   rO   rP   s
             r   rR   zforgetPasswordSet.post  s   -7<<@
 ++W\\5E5Ej5Q_f_k_k_o_op~_  `G  `G  HK  `L  VW+  X  ^  ^  `K"<<++J7L&||//0BC//--l;tC#63N3N  aS  %T  \b  \w  \w  x  x,,\:$$&v/A/ASr sttv/J/J  ]I  !J  RX  Rm  Rm  n  n'..NI,:,@,@,B(
L(	 -C 6+F+FXabccr   NrS   rW   r   r   r   r     s    dr   r   c                       e Zd Zd Zy)forgetResendOtpc                 J   t        |j                        }|j                         rt        j                  j                  |j                  j                  d      |j                  j                  d      j                  d            j                         }|st        t        j                  dd      S t        j                  dd	d
      }||_        |j                          t        t        j                   d|d      S t        |j"                  t        j                        S )Nr!   r#   r$   r%   r&   r   r,   r'   r(   r   zOtp resend successfullyr   r   )r3   r"   r4   r5   r   r6   r7   r8   r9   r   r   r@   r:   r;   r   rA   rB   rC   )rH   rI   rJ   r   rL   s        r   rR   zforgetResendOtp.post  s   $',,7
 ,,8H8H8Tdkdpdpdtdt  vD  eE  eL  eL  MP  eQ,  R  X  X  ZJv/J/J  ]K  !L  M  M##D$2F+1J*OO6+=+=OhouvwwJ--f6Q6QRRr   NrS   rW   r   r   r   r     s    Sr   r   )%rest_framework.viewsr   rest_framework.responser   rest_frameworkr   rJ   auth_apis.modelsr:   r	   	functionsdjango.confr
   passlib.hashr   r^   jsonadmin_panel.modelsr   r   rY   rc   rx   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   rW   r   r   <module>r     s>   ( , !        8    XG XDXG XB#Xg #XJ{ {$ X  XDUXG UXpX X,OX OXfdX7 dXL*X *XX@XG @XF&XG &XPdG dB!d !dHdW d(d7 d$d d0Sg Sr   