import { createApiClient } from "../lib/apiClient"; const api = createApiClient({ getToken: () => { try { return localStorage.getItem("access_token") ?? localStorage.getItem("token") ?? null; } catch { return null; } }, }); const PATH = "/rbac-role-menu"; export type RbacRoleMenuSetInput = { roleId: string; menuIds: string[]; }; /** * Swagger: * - POST /api/app/rbac-role-menu/set * - GET /api/app/rbac-role-menu/menu-ids/{roleId} * - DELETE /api/app/rbac-role-menu (body: { roleId, menuIds }) */ export async function setRoleMenus(input: RbacRoleMenuSetInput): Promise { await api.requestJson({ path: `${PATH}/set`, method: "POST", body: input, }); } export async function getRoleMenuIds(roleId: string): Promise { const res = await api.requestJson({ path: `${PATH}/menu-ids/${encodeURIComponent(roleId)}`, method: "GET", }); // 兼容后端直接返回数组 或包一层 { items } if (Array.isArray(res)) return res as string[]; const maybe = res as { items?: unknown }; return Array.isArray(maybe?.items) ? (maybe.items as string[]) : []; } export async function deleteRoleMenus(input: RbacRoleMenuSetInput): Promise { await api.requestJson({ path: PATH, method: "DELETE", body: input, }); }