
    i              
          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 d dlmZ d dlmZ d dlmZ d d	lmZ d d
lZ eddg      Zej3                  d       ee       ee      fdedede	fd       Zej7                  d       ee       ee      fdede	fd       Zej3                  d       ee       ee      fdedede	fd       Zej7                  d       ee       ee      fdedede	fd       ZejA                  d       ee       ee      fdedede	fd       Z ejC                  d       ee       ee      fdededede	fd       Z"y
)    )	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                    | j                   dn| j                   }t        |      j                  || j                  | j                        }t        |t              rC|j                  d      dk(  r/t        t        j                  d|j                  dd      d d	      S | j                   d
nd}t        t        j                  d||d	      S )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         ]C:\Users\jesus\OneDrive\Escritorio\proyecto_pie360\backend\app\backend\routers\permissions.pyindexr0      s    %**28L8LJR ((jIaIan}  oI  oI(  JF&$FJJx$8G$C11!::i9
 	
 ETDXDXD`@  gKG&&
     z/listc                 n   | j                   dk(  rt        |      j                         }nt        |      j                  d      }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 )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                 :   | j                         }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      S )
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                 b   t        |      j                  |       }t        |t              rg|j                  d      s|j                  d      dk(  rBt	        t
        j                  d|j                  d      xs |j                  dd      d d      S t	        t
        j                  dd	|d      S )
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%8FJJx<PT[<[11!::g._&**YH^2_
 	
 &&:
 r1   z/delete/{id}c                    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      S )
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                 @   |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	      S )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   