61 lines
1.7 KiB
TypeScript
61 lines
1.7 KiB
TypeScript
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" },
|
|
);
|
|
}
|
|
|