
    Bh                     B   S SK JrJrJrJr  S SKJrJrJrJ	r	  S SK
JrJrJr  S SKJr  S SKJr  S SKJr  \" 5       r\R+                  S\S9\" \5      4S	\S
\4S jj5       r\R+                  S5      S\4S j5       r\R3                  S5      \" \5      4S
\	4S jj5       rg)    )	APIRouterHTTPExceptionDependsstatus)
UserCreate	UserLoginUserOut	TokenData)hash_passwordverify_passwordcreate_access_token)db)	timedelta)get_current_userz	/register)response_modelusercurrent_userc                   #    US   S:w  a
  [        SSS9eU R                  S:X  a  US   S:w  a
  [        SSS9eU R                  R                  5       R	                  5       n[
        R                  R                  SU05      I S h  vN nU(       a
  [        SS	S9e[        U R                  5      nUUU R                  S
.n[
        R                  R                  U5      I S h  vN   U R                  U R                  S.$  Nz N7f)Nroleadmini  zOnly admin can register users.status_codedetailz'Only an admin can create another admin.emaili  zUser already exists.)r   passwordr   r   r   )r   r   r   striplowerr   usersfind_oner   r   
insert_one)r   r   normalized_emailexisting	hashed_pwnew_users         <C:\Users\julio\Documents\inmobiliaria_backend\routes\auth.pyregisterr'   
   s     Fw&4TUUyyGV 4 ?4]^^zz'')//1XX&&1A'BCCH4JKKdmm,I IIH ((

h
'''ZZ33 D (s%   BDD AD"D#DDz/logincredentialsc                 `  #    U R                   R                  5       R                  5       n[        R                  R                  SU05      I S h  vN nU(       d
  [        SSS9e[        U R                  US   5      (       d
  [        SSS9e[        US   US   S.[        SS	9S
9nUSS.$  N\7f)Nr   i  zInvalid credentials.r   r   r   r   <   )minutes)dataexpires_deltabearer)access_token
token_type)r   r   r   r   r   r    r   r   r   r   r   )r(   r"   r   tokens       r&   loginr2   #   s     "((..0668""G-=#>??D4JKK;//j1ABB4JKKG}d6l;+E
 ":: @s   AB.B,AB.z/mec                 <   #    U R                   U R                  S.$ 7f)Nr   r   )r   s    r&   read_users_mer4   4   s     !''1B1BCCs   N)fastapir   r   r   r   models.userr   r   r	   r
   
utils.authr   r   r   databaser   datetimer   utils.dependenciesr   routerpostdictr'   r2   getr4        r&   <module>rA      s    = = A A J J   /	[1:ABR:S 4 44 4 240 X;Y ; ;  E29:J2K Di D Dr@   