
    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KJr  S S	KJr  S S
Kr\" SS/S9r\R3                  S5      \" \5      \" \5      4S\S\S\	4S jj5       r\R7                  S5      \" \5      \" \5      4S\S\	4S jj5       r\R3                  S5      \" \5      \" \5      4S\S\S\	4S jj5       r\R7                  S5      \" \5      \" \5      4S\S\S\	4S jj5       r\RA                  S5      \" \5      \" \5      4S\S\S\	4S jj5       r \RC                  S5      \" \5      \" \5      4S\S\S\S\	4S jj5       r"g
)    )	APIRouterDependsstatus)JSONResponse)get_db)Session)
PermissionUpdatePermission	UserLoginPermissionList)PermissionClass)	UserClass)get_current_active_user)	UserModelNz/permissionsPermissions)prefixtags/permission_listsession_userdbc                    U R                   c  SOU R                   n[        U5      R                  X0R                  U R                  S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
permissionr   error  messageErrorr   r   datastatus_codecontentz0Complete permissions list retrieved successfullyz"Permissions retrieved successfully   )r   r   get_allper_pager   
isinstancedictgetr   r   HTTP_404_NOT_FOUNDHTTP_200_OK)r   r   r   
page_valueresultr   s         QC:\Users\jesus\Desktop\proyecto_pie360\backend\app\backend\routers\permissions.pyindexr0      s    %**28L8LJR ((jIaIan}  oI  oI(  JF&$FJJx$8G$C11!::i9
 	
 ETDXDXD`@  gKG&&
     z/listc                 j   U R                   S:X  a  [        U5      R                  5       nO[        U5      R                  SS9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$ )N      )permission_type_idr   r   r   r   r   r    r"   r%   z'Permissions list retrieved successfully)
rol_idr   get_all_listr(   r)   r*   r   r   r+   r,   )r   r   r.   s      r/   r7   r7   +   s    a $113 $11Q1G&$FJJx$8G$C11!::i9
 	
 &&@
 r1   z/storer   c                 :   U R                  5       n[        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   zError creating permissionr    r"      zPermission created successfully)	r)   r   storer(   r*   r   r   HTTP_500_INTERNAL_SERVER_ERRORHTTP_201_CREATED)r   r   r   permission_inputsr.   s        r/   r;   r;   E   s    ")R &&'89F&$FJJx$8G$C==!::i1LM
 	
 ++8
 r1   z
/edit/{id}idc                 v   [        U5      R                  U 5      n[        U[        5      (       ao  UR                  S5      (       d  UR                  S5      S:X  aD  [	        [
        R                  SUR                  S5      =(       d    UR                  SS5      S S.S9$ [	        [
        R                  SS	US.S9$ )
Nr   r   r   r   Permission not foundr    r"   r%   z!Permission retrieved successfully)r   r*   r(   r)   r   r   r+   r,   r?   r   r   r.   s       r/   editrC   ]   s    R $$R(F&$VZZ%8%8FJJx<PT[<[11!::g._&**YH^2_
 	
 &&:
 r1   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   r   r   rA   r    r"   r%   zPermission deleted successfully)	r   deleter(   r)   r*   r   r   r+   r,   rB   s       r/   rE   rE   t   s    R ''+F&$FJJx$8G$C11!::i1GH
 	
 &&8
 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   r9   r   zError updating permissionr    r"   r%   zPermission updated successfully)	r)   r   updater(   r*   r   r   r<   r,   )r?   r   r   r   r>   r.   s         r/   rH   rH      s    "d;R ''>F&$FJJx$8G$C==!::i1LM
 	
 &&8
 r1   )#fastapir   r   r   fastapi.responsesr   app.backend.db.databaser   sqlalchemy.ormr   app.backend.schemasr	   r
   r   r   $app.backend.classes.permission_classr   app.backend.classes.user_classr   app.backend.auth.auth_userr   app.backend.db.modelsr   jsonpermissionspostr0   r*   r7   r;   intrC   rE   putrH    r1   r/   <module>rX      s   . . * * " W W @ 4 > + 

 #ELMdEeu|  ~D  vE >  kr  2 +23J+K[bci[j y QX  2 (<CD[<\lstzl{ j 	 bi  . ,34K,L\cdj\k S 	 RY  , N#.56M.N^efl^m s ) T[  $,  LSTkLl  }D  EK  }L s  0 	 ry  !r1   