Files
record-app-next/app/api/register/route.ts
2025-07-31 17:05:07 +08:00

43 lines
1.1 KiB
TypeScript

// app/api/register/route.ts
import { NextRequest } from "next/server";
import { UserService } from "@/lib/services/user.service";
import { ApiResponseHandler } from "@/lib/utils/api-response";
import { ValidationError } from "@/lib/errors/app-error";
export async function POST(request: NextRequest) {
try {
const body = await request.json();
const { email, name, password } = body;
// 验证数据完整性
if (!email || !name || !password) {
throw new ValidationError("缺少邮箱、姓名或密码");
}
// 验证密码长度
if (password.length < 6) {
throw new ValidationError("密码长度至少6位");
}
// 使用服务层创建用户
const user = await UserService.createUser({
email,
name,
password,
});
// 返回成功响应(不包含敏感信息)
const userProfile = {
id: user.id,
email: user.email,
name: user.name,
createdAt: user.createdAt,
};
return ApiResponseHandler.created(userProfile);
} catch (error) {
return ApiResponseHandler.error(error as Error);
}
}