""" 角色管理API """ from typing import Dict, Any, List from httpx import AsyncClient, Response from .base_api import BaseAPI class RoleAPI(BaseAPI): """角色管理API""" def __init__(self, client: AsyncClient): super().__init__(client, "/api/roles") async def create_role(self, role_data: Dict[str, Any]) -> Response: """创建角色""" return await self.post("", json=role_data) async def get_role_by_id(self, role_id: int) -> Response: """根据ID获取角色""" return await self.get(f"/{role_id}") async def get_role_by_name(self, role_name: str) -> Response: """根据名称获取角色""" return await self.get(f"/name/{role_name}") async def get_all_roles(self, include_deleted: bool = False) -> Response: """获取所有角色""" return await self.get("", params={"includeDeleted": include_deleted}) async def update_role(self, role_id: int, role_data: Dict[str, Any]) -> Response: """更新角色""" return await self.put(f"/{role_id}", json=role_data) async def delete_role(self, role_id: int) -> Response: """删除角色(逻辑删除)""" return await self.delete(f"/{role_id}") async def restore_role(self, role_id: int) -> Response: """恢复角色""" return await self.post(f"/{role_id}/restore") async def check_name_exists(self, role_name: str) -> Response: """检查角色名是否存在""" return await self.get("/check-name", params={"name": role_name}) async def get_roles_by_page(self, page: int = 0, size: int = 10, sort: str = "id", order: str = "asc", keyword: str = None) -> Response: """分页获取角色""" params = {"page": page, "size": size, "sort": sort, "order": order} if keyword: params["keyword"] = keyword return await self.get("/page", params=params) async def get_role_count(self) -> Response: """获取角色总数""" return await self.get("/count")