
    .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  S SKJr  S SKJ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\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\R7                  S5      \R7                  S5      \" \5      \" \5      4S\S\S\	4S jj5       5       r\R9                  S5      \" \5      \" \5      4S\S\S\S\	4S jj5       rg)    )	APIRouterDependsstatus)JSONResponse)get_db)Session)MessageListStoreMessageUpdateMessage	UserLogin)MessageClass)get_current_active_userz	/messagesMessages)prefixtags/message_listsession_userdbc           	         U R                   c  SOU R                   nU(       a  UR                  OS nU(       a  UR                  OS n[        U5      R	                  X0R
                  U R                  U R                  XES9n[        U[        5      (       aA  UR                  S5      S:X  a,  [        [        R                  SUR                  SS5      S S.S	9$ U R                   c  S
OSn[        [        R                  SUUS.S	9$ )Nr   )pageitems_per_pagesubjectmessage_type_idcustomer_idrol_idr   error  messagezInternal server errorr   r   datastatus_codecontentz-Complete messages list retrieved successfullyzMessages retrieved successfully   )r   r   r   r   get_allper_pager   r   
isinstancedictgetr   r   HTTP_500_INTERNAL_SERVER_ERRORHTTP_200_OK)r   r   r   
page_valuer   r   resultr   s           NC:\Users\jesus\Desktop\proyecto_pie360\backend\app\backend\routers\messages.pyindexr0      s   "''/\5F5FJ.:,**K$0\  dF"%%:F[F[eqeyey  LX  Lh  Lh  vA%  QF&$FJJx$8G$C==!::i1HI
 	
 BNARARAZ=  aBG&&
     z
/edit/{id}idc                    [        U5      R                  U 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   r     r   Message not foundr    r"   r%   z#Message data retrieved successfully)r   r*   r(   r)   r   r   HTTP_404_NOT_FOUNDr,   r2   r   r   r.   s       r/   editr8   *   s    "!!"%F&$FJJx$8G$C11!::i1DE
 	
 &&<
 r1   z/storer   c                    U R                  5       nU(       a  UR                  OS nXCS'   UR                  S:X  a  SUS'   SUS'   O&UR                  S:X  a  SUS'   SU;  d  US   c  SUS'   [        U5      R	                  U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      r   response_idmessage_response_id   r   r   r   r   zError saving messager    r"      zMessage created successfully)r)   r   r   r   storer(   r*   r   r   r+   HTTP_201_CREATEDr   r   r   message_inputsr   r.   s         r/   r?   r?   A   s   \\^N /;,**K$/=! a()}%01,-				!()}% !6.I^:_:g45N01"##N3F&$FJJx$8G$C==!::i1GH
 	
 ++5
 r1   z/replyc                    U R                  5       nU(       a  UR                  OS nXCS'   SUS'   SU;  d  US   c  [        [        R                  SSS S.S9$ [        U5      R                  U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   r=   r;   r<   i  z+message_response_id is required for repliesr    r"   r   r   r   r   zError saving replyr>   zReply created successfully)r)   r   r   r   HTTP_400_BAD_REQUESTr   r?   r(   r*   r+   r@   rA   s         r/   replyrE   i   s    \\^N /;,**K$/=! %&N=! N2nEZ6[6c33H
 	
 "##N3F&$FJJx$8G$C==!::i1EF
 	
 ++3
 r1   z/{id}z/delete/{id}c                    [        U5      R                  U 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   r   r4   r   r5   r    r"   r%   zMessage deleted successfully)	r   deleter(   r)   r*   r   r   r6   r,   r7   s       r/   rG   rG      s     "$$R(F&$FJJx$8G$C11!::i1DE
 	
 &&5
 r1   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US.S	9$ )NT)exclude_unsetr   r   r4   r   r5   r    r"   r%   zMessage updated successfully)	r)   r   updater(   r*   r   r   r6   r,   )r2   r   r   r   rB   r.   s         r/   rJ   rJ      s    \\\5N"$$R8F&$FJJx$8G$C11!::i1DE
 	
 &&5
 r1   N)fastapir   r   r   fastapi.responsesr   app.backend.db.databaser   sqlalchemy.ormr   app.backend.schemasr	   r
   r   r   !app.backend.classes.message_classr   app.backend.auth.auth_userr   messagespostr0   r*   intr8   r?   rE   rG   putrJ    r1   r/   <module>rW      s   . . * * " S S : >

 
s?FG^?_ovw}o~  9 el  6 
l,34K,L\cdj\k S 	 RY  , 
x;BCZ;[krsykz %< %y %ah % %N 
x;BCZ;[krsykz (< (y (ah ( (T 
	 .56M.N^efl^m s ) T[  ! , 
nFMNeFfv}  E  wF s ] ) ls  r1   