
    rli              
          S SK JrJrJr  S SKJr  S SKJr  S SKJ	r	  S SK
JrJrJrJrJrJr  S SKJr  S SKJr  S SKr\" S	S
/S9r\R/                  S5      \" \5      \" \5      4S\S\S\	4S jj5       r\R/                  S5      \" \5      \" \5      4S\S\S\	4S jj5       r\R5                  S5      \" \5      \" \5      4S\S\S\	4S jj5       r\R5                  S5      \" \5      \" \5      4S\S\S\	4S jj5       r\R=                  S5      \" \5      \" \5      4S\S\S\	4S jj5       r\R?                  S5      \" \5      \" \5      4S\S\S\S\	4S jj5       r \R/                  S5      \" \5      \" \5      4S\S\S\	4S jj5       r!\RE                  S5      \" \5      \" \5      4S \S\S\	4S! jj5       r#g)"    )	APIRouterDependsstatus)JSONResponse)get_db)Session)User
UpdateUser	UserLoginRecoverUserConfirmEmailUserList)	UserClass)get_current_active_userNz/usersUsers)prefixtags/usersession_userdbc                 D   [        U5      R                  U R                  U R                  5      n[	        U[
        5      (       aA  UR                  S5      S:X  a,  [        [        R                  SUR                  SS5      S S.S9$ [        [        R                  SS	US.S9$ )
Nr   error  messageErrorr   r   datastatus_codecontent   zUsers retrieved successfully)r   get_allrutpage
isinstancedictgetr   r   HTTP_404_NOT_FOUNDHTTP_200_OK)r   r   r   results       KC:\Users\jesus\Desktop\proyecto_pie360\backend\app\backend\routers\users.pyindexr-      s    r]""488TYY7F&$FJJx$8G$C11!::i9
 	
 &&5
     z/storec                 n   U R                  5       nSU;   a4  UR                  S5      (       a  UR                  S5      (       d  US   US'   UR                  SS 5        [        U5      R	                  U5      nUS:X  a  [        [        R                  SSS S.S9$ [        [        R                  SS	S
U0S.S9$ )Nfullname	full_namer     zError creating userr   r      zUser created successfullyid)	r'   r(   popr   storer   r   HTTP_500_INTERNAL_SERVER_ERRORHTTP_201_CREATEDr   r   r   user_inputsr+   s        r,   r6   r6   &   s    ))+K[ [__Z%@%@YdIeIe#.z#:K OOJ%r]  -F{==0
 	
 ++26N
 r.   z/refresh_password/{rut}r$   c                     [        U5      R                  U 5      nUS:X  a  [        [        R                  SSS S.S9$ [        [        R
                  SSS S.S9$ )Nr   r2   zError refreshing passwordr   r   r"   zPassword refreshed successfully)r   refresh_passwordr   r   r7   r*   )r$   r   r   r+   s       r,   resfresh_passwordr=   C   sg    r]++C0F{==6
 	
 &&8
 r.   z
/edit/{id}r4   c           	         [        U5      R                  SU 5      nU(       a  US:X  d  UR                  S5      (       a  [        [        R
                  SSS S.S9$  [        U[        5      (       a  [        R                  " U5      OUn[        [        R                  SS	US.S9$ ! [         a2  n[        [        R                  S
S[        U5       3S S.S9s S nA$ S nAff = f)Nr4   z3No se encontraron datos para el campo especificado.zError:r   zUser not foundr   r   r"   zUser retrieved successfullyr2   zError processing user data: )r   r(   
startswithr   r   r)   r&   strjsonloadsr*   	Exceptionr7   )r4   r   r   r+   	user_dataes         r,   editrF   Z   s    r]tR(FVTTX^XiXijrXsXs11+
 	

*4VS*A*ADJJv&v	**8!
 	
  
==9#a&B
 	

s   AB% %
C!/'CC!C!z/delete/{id}c                    [        U5      R                  U 5      n[        U[        5      (       a8  US:X  d  UR	                  S5      (       a  [        [        R                  SUS S.S9$ [        [        R                  SSS S.S9$ )NzNo data foundr   r   r   r   r"   zUser deleted successfully)	r   deleter&   r@   r?   r   r   r)   r*   )r4   r   r   r+   s       r,   rH   rH   |   s    r]!!"%F&#Fo$=ARARSZA[A[11!
 	
 &&2
 r.   z/update/{id}c                 8   UR                  SS9n[        U5      R                  X5      n[        U[         5      (       aA  UR	                  S5      S:X  a,  [        [        R                  SUR	                  SS5      S S.S	9$ [        [        R                  S
SS S.S	9$ )NT)exclude_unsetr   r   i  r   zError updating userr   r   r"   zUser updated successfully)	r'   r   updater&   r(   r   r   HTTP_400_BAD_REQUESTr*   )r4   r   r   r   r:   r+   s         r,   rK   rK      s    ))$)/Kr]!!"2F&$FJJx$8G$C33!::i1FG
 	
 &&2
 r.   z/recoverc                     U R                  5       n[        U5      R                  U5      nUS:X  a  [        [        R
                  SSS S.S9$ [        [        R                  SSS S.S9$ )Nr   r2   zError recovering userr   r   r"   zUser recovered successfully)r'   r   recoverr   r   r7   r*   r9   s        r,   rN   rN      sr    ))+Kr]"";/F{==2
 	
 &&4
 r.   z/confirm_emailr:   c                     [        U5      R                  U 5      nUS:X  a  [        [        R                  SSS S.S9$ [        [        R
                  SSS S.S9$ )Nr   r2   zError confirming emailr   r   r"   zEmail confirmed successfully)r   confirm_emailr   r   r7   r*   )r:   r   r   r+   s       r,   rP   rP      sg    r]((5F{==3
 	
 &&5
 r.   )$fastapir   r   r   fastapi.responsesr   app.backend.db.databaser   sqlalchemy.ormr   app.backend.schemasr	   r
   r   r   r   r   app.backend.classes.user_classr   app.backend.auth.auth_userr   rA   userspostr-   r6   r(   intr=   rF   rH   putrK   rN   patchrP    r.   r,   <module>r^      sn   . . * * " ` ` 4 > 
	
 C4;<S4Tdklrds  	 Za  , H/67N/O_fgm_n t 9 U\  8 $%9@AX9Yipqwix # Y _f  &, <+23J+K[bci[j 
C 
y 
QX 
 
B n-45L-M]dek]l c  SZ  , >@GH_@`pwx~p s * I fm  . J8?@W8Xhopvhw  I ^e  . FMNeFfv}  E  wF l ) ls  r.   