41 lines
1.0 KiB
TypeScript

import { NextResponse } from "next/server";
import { z } from "zod";
import { auth } from "@/app/(auth)/auth";
import { revokeUserAccessKey } from "@/lib/access-keys/service";
const idSchema = z.string().uuid();
export async function DELETE(
_request: Request,
{ params }: { params: Promise<{ id: string }> }
) {
const session = await auth();
if (!session?.user?.id || session.user.type === "guest") {
return NextResponse.json(
{ success: false, error: "请先登录正式账号" },
{ status: 401 }
);
}
const parsedId = idSchema.safeParse((await params).id);
if (!parsedId.success) {
return NextResponse.json(
{ success: false, error: "Access Key ID 无效" },
{ status: 400 }
);
}
const revoked = await revokeUserAccessKey({
userId: session.user.id,
accessKeyId: parsedId.data,
});
if (!revoked) {
return NextResponse.json(
{ success: false, error: "Access Key 不存在" },
{ status: 404 }
);
}
return NextResponse.json({ success: true });
}