refactor: api.ts

This commit is contained in:
tao.chen
2026-09-02 10:10:41 +08:00
committed by tao.chen
parent cc0e2eaec4
commit 9b95357b39
13 changed files with 2157 additions and 1964 deletions
@@ -0,0 +1,60 @@
import { apiRequest } from "./_shared";
export type WorkspaceMember = {
user_id: string;
username: string;
display_name: string;
email: string | null;
role_code: "admin" | "developer";
role_name: string;
member_status: "active" | "disabled" | "locked";
joined_at: string;
};
/** 加入工作区;角色继承自用户的 platform_role,请求体不能带 role_code。 */
export type WorkspaceMemberAddPayload = {
user_id: string;
};
/** 仅可改成员状态;改角色请 PATCH /platform/employees/{user_id}。 */
export type WorkspaceMemberUpdatePayload = {
member_status?: "active" | "disabled" | "locked";
};
export async function listWorkspaceMembers(workspaceId: string): Promise<WorkspaceMember[]> {
return apiRequest<WorkspaceMember[]>(
`/api/v1/platform/workspaces/${workspaceId}/members`,
);
}
export async function addWorkspaceMember(
workspaceId: string,
input: WorkspaceMemberAddPayload,
): Promise<WorkspaceMember> {
return apiRequest<WorkspaceMember>(
`/api/v1/platform/workspaces/${workspaceId}/members`,
{ method: "POST", body: JSON.stringify(input) },
);
}
export async function updateWorkspaceMember(
workspaceId: string,
userId: string,
input: WorkspaceMemberUpdatePayload,
): Promise<WorkspaceMember> {
return apiRequest<WorkspaceMember>(
`/api/v1/platform/workspaces/${workspaceId}/members/${userId}`,
{ method: "PATCH", body: JSON.stringify(input) },
);
}
export async function deleteWorkspaceMember(
workspaceId: string,
userId: string,
): Promise<{ user_id: string; deleted: boolean }> {
return apiRequest(
`/api/v1/platform/workspaces/${workspaceId}/members/${userId}`,
{ method: "DELETE" },
);
}