import { NextRequest } from "next/server"; import { getServerSession } from "next-auth/next"; import { authOptions } from "@/lib/auth"; import { UserService } from "@/lib/services/user.service"; import { ApiResponseHandler } from "@/lib/utils/api-response"; import { AuthenticationError, ValidationError } from "@/lib/errors/app-error"; export async function GET() { try { const session = await getServerSession(authOptions); if (!session?.user?.id) { throw new AuthenticationError(); } const userProfile = await UserService.getUserById(session.user.id); if (!userProfile) { throw new AuthenticationError("用户不存在"); } return ApiResponseHandler.success(userProfile); } catch (error) { return ApiResponseHandler.error(error as Error); } } export async function PUT(request: NextRequest) { try { const session = await getServerSession(authOptions); if (!session?.user?.id) { throw new AuthenticationError(); } const body = await request.json(); const { name } = body; if (!name || typeof name !== "string") { throw new ValidationError("名称不能为空"); } const updatedProfile = await UserService.updateUser(session.user.id, { name, }); return ApiResponseHandler.success(updatedProfile); } catch (error) { return ApiResponseHandler.error(error as Error); } }