37 lines
1.0 KiB
Python
37 lines
1.0 KiB
Python
from typing import List
|
|||
|
|
|
||
|
|
from fastapi import Request, Body
|
||
|
|
|
||
|
|
from auth.models.roles import RoleModel
|
||
|
|
from auth.repositories.AuthRepository import AuthRepository
|
||
|
|
from core.app import app
|
||
|
|
from core.utils.router import generate_router, safe_route
|
||
|
|
|
||
|
|
router = generate_router("roles", auth_dependencies=True)
|
||
|
|
|
||
|
|
_tag_base = ['roles']
|
||
|
|
|
||
|
|
|
||
|
|
@router.get('/routes', tags=_tag_base)
|
||
|
|
async def get_routes(request: Request) -> List[str]:
|
||
|
|
roles_ids = request.state.user.roles if request.state.user.roles else []
|
||
|
|
return await safe_route('fetch', AuthRepository.get_f_routes, roles_ids)
|
||
|
|
|
||
|
|
|
||
|
|
@router.post('/create', tags=_tag_base)
|
||
|
|
async def create(_input: RoleModel = Body(...)):
|
||
|
|
return await safe_route('create', AuthRepository.create_role, _input)
|
||
|
|
|
||
|
|
|
||
|
|
@router.get('/modules', tags=_tag_base)
|
||
|
|
async def get_my_modules():
|
||
|
|
return await safe_route('fetch', AuthRepository.get_my_modules)
|
||
|
|
|
||
|
|
|
||
|
|
@router.post('', tags=_tag_base)
|
||
|
|
async def fetch() -> List[str]:
|
||
|
|
return await safe_route('fetch', AuthRepository.get_roles)
|
||
|
|
|
||
|
|
|
||
|
|
app.include_router(router)
|