mini-rbac/backend/router/role.py

47 lines
1.5 KiB
Python
Raw Normal View History

from fastapi import APIRouter, Depends
from typing import List
from core.middleware import LogRoute
from schemas import common as BaseSchema
from schemas import role as RoleSchema
from schemas.common import QueryData
from service.role import service as RoleService
router = APIRouter(prefix="/role", tags=["角色管理"], route_class=LogRoute)
Response = BaseSchema.Response
ListAll = BaseSchema.ListAll
role_list_schema = ListAll[List[RoleSchema.RoleRead]]
@router.get("", summary="角色列表")
async def role_list(query: QueryData = Depends()) -> Response[role_list_schema]:
return await RoleService.get_items(query.offset, query.limit)
@router.post("/query", summary="角色查询")
async def role_query(query: RoleSchema.RoleQuery) -> Response[role_list_schema]:
return await RoleService.query_items(query)
@router.post("", summary="角色新增")
async def role_create(data: RoleSchema.RoleIn) -> Response[RoleSchema.RoleInfo]:
return await RoleService.create_item(data)
@router.get("/{rid}/menu", summary="查询角色拥有权限")
async def role_has_menu(rid: int) -> Response:
return await RoleService.has_tree_menus(rid)
@router.delete("/{pk}", summary="角色删除")
async def role_del(pk: int) -> Response:
return await RoleService.delete_item(pk)
@router.put("/{pk}", summary="角色更新")
async def role_put(pk: int, data: RoleSchema.RoleIn) -> Response:
"""更新角色"""
return await RoleService.update_item(pk, data)