45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
"""
|
|
菜单管理 API 客户端
|
|
"""
|
|
|
|
from httpx import AsyncClient
|
|
|
|
|
|
class MenuAPI:
|
|
"""菜单管理 API 客户端"""
|
|
|
|
def __init__(self, client: AsyncClient):
|
|
self.client = client
|
|
|
|
async def get_menu_list(self):
|
|
"""获取菜单列表"""
|
|
return await self.client.get('/api/menus')
|
|
|
|
async def get_menu_tree(self):
|
|
"""获取菜单树"""
|
|
return await self.client.get('/api/menus/tree')
|
|
|
|
async def get_menu_by_id(self, menu_id):
|
|
"""根据ID获取菜单"""
|
|
return await self.client.get(f'/api/menus/{menu_id}')
|
|
|
|
async def create_menu(self, menu_data):
|
|
"""创建菜单"""
|
|
return await self.client.post('/api/menus', json=menu_data)
|
|
|
|
async def update_menu(self, menu_id, menu_data):
|
|
"""更新菜单"""
|
|
return await self.client.put(f'/api/menus/{menu_id}', json=menu_data)
|
|
|
|
async def delete_menu(self, menu_id):
|
|
"""删除菜单"""
|
|
return await self.client.delete(f'/api/menus/{menu_id}')
|
|
|
|
async def get_user_menus(self, user_id):
|
|
"""获取用户菜单"""
|
|
return await self.client.get(f'/api/menus/user/{user_id}')
|
|
|
|
async def get_user_menus_by_role(self, role_id):
|
|
"""获取角色菜单"""
|
|
return await self.client.get(f'/api/menus/role/{role_id}')
|