Files
stripstream/src/app/api/auth/register/route.ts
2025-02-28 16:23:51 +01:00

49 lines
1.3 KiB
TypeScript

import { NextResponse } from "next/server";
import { AuthServerService, UserData } from "@/lib/services/auth-server.service";
import { ERROR_CODES } from "@/constants/errorCodes";
import { AppError } from "@/utils/errors";
import { getErrorMessage } from "@/utils/errors";
export async function POST(request: Request) {
try {
const { email, password } = await request.json();
try {
const userData: UserData = await AuthServerService.createUser(email, password);
AuthServerService.setUserCookie(userData);
return NextResponse.json({
message: "✅ Inscription réussie",
user: userData,
});
} catch (error) {
if (error instanceof AppError) {
const status =
error.code === ERROR_CODES.AUTH.EMAIL_EXISTS ||
error.code === ERROR_CODES.AUTH.PASSWORD_NOT_STRONG
? 400
: 500;
return NextResponse.json(
{
error,
},
{ status }
);
}
throw error;
}
} catch (error) {
console.error("Erreur lors de l'inscription:", error);
return NextResponse.json(
{
error: {
code: ERROR_CODES.AUTH.INVALID_USER_DATA,
name: "Invalid user data",
message: getErrorMessage(ERROR_CODES.AUTH.INVALID_USER_DATA),
},
},
{ status: 500 }
);
}
}