Enhance user registration and profile management: Update registration API to include bio, character class, and avatar fields. Implement validation for character class and improve error messages. Refactor registration page to support multi-step form with avatar upload and additional profile customization options, enhancing user experience during account creation.

This commit is contained in:
Julien Froidefond
2025-12-10 05:54:06 +01:00
parent 95e580aff6
commit 125e9b345d
5 changed files with 688 additions and 99 deletions

View File

@@ -5,11 +5,11 @@ import bcrypt from "bcryptjs";
export async function POST(request: Request) {
try {
const body = await request.json();
const { email, username, password } = body;
const { email, username, password, bio, characterClass, avatar } = body;
if (!email || !username || !password) {
return NextResponse.json(
{ error: "Tous les champs sont requis" },
{ error: "Email, nom d'utilisateur et mot de passe sont requis" },
{ status: 400 }
);
}
@@ -21,6 +21,26 @@ export async function POST(request: Request) {
);
}
// Valider characterClass si fourni
const validCharacterClasses = [
"WARRIOR",
"MAGE",
"ROGUE",
"RANGER",
"PALADIN",
"ENGINEER",
"MERCHANT",
"SCHOLAR",
"BERSERKER",
"NECROMANCER",
];
if (characterClass && !validCharacterClasses.includes(characterClass)) {
return NextResponse.json(
{ error: "Classe de personnage invalide" },
{ status: 400 }
);
}
// Vérifier si l'email existe déjà
const existingUser = await prisma.user.findFirst({
where: {
@@ -44,6 +64,9 @@ export async function POST(request: Request) {
email,
username,
password: hashedPassword,
bio: bio || null,
characterClass: characterClass || null,
avatar: avatar || null,
},
});