Files
new-api-key-usage/apps/web/src/api/admin/members.ts
T
skycurtain f4f5ed0b0f feat(member): 档案修改与空壳删除
可改 name/remark;key_count=0 时硬删,名下有 key 仅可停用。PATCH 扩档案字段并落审计。
2026-10-12 13:57:19 +08:00

45 lines
1.2 KiB
TypeScript

import type { MemberItem } from "@new-api-key-usage/core";
import { adminHttp } from "../http.ts";
export type MemberWithToken = {
member: MemberItem;
token: string;
};
export async function fetchMembers(): Promise<MemberItem[]> {
const { data } = await adminHttp.get<MemberItem[]>("/members");
return data;
}
/** 开户:响应含令牌明文(仅此一次) */
export async function createMember(body: {
name: string;
remark?: string;
}): Promise<MemberWithToken> {
const { data } = await adminHttp.post<MemberWithToken>("/members", body);
return data;
}
export async function patchMember(
id: number,
body: {
name?: string;
remark?: string;
status?: "active" | "disabled";
},
): Promise<MemberItem> {
const { data } = await adminHttp.patch<MemberItem>(`/members/${id}`, body);
return data;
}
/** 空壳删除:仅 key_count = 0 */
export async function deleteMember(id: number): Promise<void> {
await adminHttp.delete(`/members/${id}`);
}
/** 重发:旧令牌即刻失效,明文仅此一次 */
export async function issueMemberToken(id: number): Promise<{ token: string }> {
const { data } = await adminHttp.post<{ token: string }>(`/members/${id}/token`);
return data;
}