
    ueg>	                     
   d dl mZmZmZ d dlmZmZ d dlmZ d dl	m
Z
 d dlmZmZmZ d dlmZ d dlmZ  e       Z e        ej)                  de	       ee      fd
ede
fd       Zej-                  dee   	       ee      fde
fd       Zej-                  de	       ee      fdede
fd       Zej5                  de	       ee      fded
ede
fd       Zej9                  de	       ee      fdede
fd       Zy)    )	APIRouterDependsHTTPException)Pagepaginate)"disable_installed_extensions_check)Session)PermissionCreatePermissionUpdatePermissionBase)
Permission)check_user_is_admin )response_model
permissiondbc                     t        di | j                         }|j                  |       |j                          |j	                  |       |S )N )r   
model_dumpaddcommitrefresh)r   r   db_permissions      N/Users/theessential/Documents/Github/Lekema-Backend/app/routers/permissions.pycreate_permissionr      s?    9!6!6!89MFF=IIKJJ}    c                     | j                  t              j                  t        j                  dk(        j	                         }t        |      S )N   )queryr   filterstatusallr   )r   permissionss     r   get_all_permissionsr$      s:    ((:&--j.?.?1.DEIIKKK  r   z/{permission_id}permission_idc                     |j                  t              j                  t        j                  | k(        j	                         }|t        dd      |S N  Permission not foundstatus_codedetail)r   r   r    idfirstr   r%   r   r   s      r   read_permissionr0      sG    HHZ(//
0NOUUWM4JKKr   c                 X   |j                  t              j                  t        j                  | k(        j	                         }|t        dd      |j                         j                         D ]  \  }}|	t        |||        |j                          |j                  |       |S r'   )r   r   r    r-   r.   r   r   itemssetattrr   r   )r%   r   r   r   keyvalues         r   update_permissionr6   '   s    HHZ(//
0NOUUWM4JKK ++-335 /
UM3./ IIKJJ}r   c                     |j                  t              j                  t        j                  | k(        j	                         }|t        dd      d|_        |j                          |S )Nr(   r)   r*   r   )r   r   r    r-   r.   r   r!   r   r/   s      r   delete_permissionr8   6   sX    HHZ(//
0NOUUWM4JKKMIIKr   N)fastapir   r   r   fastapi_paginationr   r   fastapi_pagination.utilsr   sqlalchemy.ormr	   app.schemas.permissionr
   r   r   app.models.permissionr   app.utils.authentificationr   routerpostr   getr$   intr0   putr6   deleter8   r   r   r   <module>rF      sR   5 5 - G " U U , :	 # $ R/BIJ]B^ "2   0 BtN34&-.A&B !G ! 5!
 ~>6=>Q6R 3 G  ? ~>V]^qVr S 6F G  ? !.A8?@S8T 	S 	g 	 B	r   