
    i              
       f   d dl mZmZmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZmZmZmZmZmZ d dlmZ d dlmZ d dlZ ed	d
g      Zej/                  d       ee       ee      fdedede	fd       Zej/                  d       ee       ee      fdedede	fd       Zej5                  d       ee       ee      fdedede	fd       Zej5                  d       ee       ee      fdedede	fd       Zej=                  d       ee       ee      fdedede	fd       Zej?                  d       ee       ee      fdededede	fd       Z ej/                  d       ee       ee      fdedede	fd       Z!ejE                  d       ee       ee      fd edede	fd!       Z#y)"    )	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   t        |      j                  | j                  | j                        }t	        |t
              rC|j                  d      dk(  r/t        t        j                  d|j                  dd      d d      S t        t        j                  dd	|d      S )
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       WC:\Users\jesus\OneDrive\Escritorio\proyecto_pie360\backend\app\backend\routers\users.pyindexr-      s    r]""488TYY7F&$FJJx$8G$C11!::i9
 	
 &&5
     z/storec                     | j                         }t        |      j                  |      }|dk(  rt        t        j
                  ddd d      S t        t        j                  ddd|id      S )	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                     t        |      j                  |       }|dk(  rt        t        j                  ddd d      S t        t        j
                  ddd d      S )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           	         t        |      j                  d|       }|r|dk(  s|j                  d      rt        t        j
                  ddd d      S 	 t        |t              rt        j                  |      n|}t        t        j                  dd	|d      S # t        $ r5}t        t        j                  d
dt        |       d d      cY d }~S d }~ww xY w)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^XiXijrXs11+
 	

*4VS*ADJJv&v	**8!
 	
  
==9#a&B
 	

s   AB 	C#*CCCz/delete/{id}c                     t        |      j                  |       }t        |t              r5|dk(  s|j	                  d      rt        t        j                  d|d d      S t        t        j                  ddd d      S )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[11!
 	
 &&2
 r.   z/update/{id}c                 @   |j                  d      }t        |      j                  | |      }t        |t               rC|j	                  d      dk(  r/t        t        j                  d|j	                  dd      d d	      S t        t        j                  d
dd d	      S )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]!!"k2F&$FJJx$8G$C33!::i1FG
 	
 &&2
 r.   z/recoverc                     | j                         }t        |      j                  |      }|dk(  rt        t        j
                  ddd d      S t        t        j                  ddd d      S )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                     t        |      j                  |       }|dk(  rt        t        j                  ddd d      S t        t        j
                  ddd d      S )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.   