
    i              
          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                     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U0S.S9$ )	Nr     zError creating userr   r      zUser created successfullyid)r'   r   storer   r   HTTP_500_INTERNAL_SERVER_ERRORHTTP_201_CREATEDr   r   r   user_inputsr+   s        r,   r3   r3   &   sv    ))+K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   r0   zError refreshing passwordr   r   r"   zPassword refreshed successfully)r   refresh_passwordr   r   r4   r*   )r$   r   r   r+   s       r,   resfresh_passwordr:   >   sg    r]++C0F{==6
 	
 &&8
 r.   z
/edit/{id}r2   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)Nr2   z3No se encontraron datos para el campo especificado.zError:r   zUser not foundr   r   r"   zUser retrieved successfullyr0   zError processing user data: )r   r(   
startswithr   r   r)   r&   strjsonloadsr*   	Exceptionr4   )r2   r   r   r+   	user_dataes         r,   editrC   U   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*   )r2   r   r   r+   s       r,   rE   rE   w   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*   )r2   r   r   r   r7   r+   s         r,   rH   rH      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   r0   zError recovering userr   r   r"   zUser recovered successfully)r'   r   recoverr   r   r4   r*   r6   s        r,   rK   rK      sr    ))+Kr]"";/F{==2
 	
 &&4
 r.   z/confirm_emailr7   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   r0   zError confirming emailr   r   r"   zEmail confirmed successfully)r   confirm_emailr   r   r4   r*   )r7   r   r   r+   s       r,   rM   rM      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   r>   userspostr-   r3   r(   intr:   rC   rE   putrH   rK   patchrM    r.   r,   <module>r[      sn   . . * * " ` ` 4 > 
	
 C4;<S4Tdklrds  	 Za  , H/67N/O_fgm_n t 9 U\  . $%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.   