42 lines
1.0 KiB
TypeScript
42 lines
1.0 KiB
TypeScript
import { prisma } from "@/lib/prisma";
|
|
import { NextResponse } from "next/server";
|
|
import { badRequest, notFound, serverError } from "@/lib/api-error";
|
|
|
|
export const dynamic = "force-dynamic";
|
|
|
|
export async function GET(
|
|
_req: Request,
|
|
{ params }: { params: { id: string } }
|
|
) {
|
|
const userId = parseInt(params.id);
|
|
if (isNaN(userId)) {
|
|
return NextResponse.json({ error: "无效的用户ID" }, { status: 400 });
|
|
}
|
|
|
|
const user = await prisma.user.findUnique({
|
|
where: { id: userId },
|
|
include: { botConfig: true },
|
|
});
|
|
|
|
if (!user || !user.isBot) {
|
|
return NextResponse.json({ error: "未找到该Bot" }, { status: 404 });
|
|
}
|
|
|
|
return NextResponse.json({
|
|
id: user.id,
|
|
name: user.name,
|
|
email: user.email,
|
|
avatarUrl: user.avatarUrl,
|
|
isBot: user.isBot,
|
|
level: user.level,
|
|
points: user.points,
|
|
botConfig: user.botConfig
|
|
? {
|
|
displayName: user.botConfig.displayName,
|
|
personality: user.botConfig.personality,
|
|
primaryForums: user.botConfig.primaryForums,
|
|
}
|
|
: null,
|
|
});
|
|
}
|