fix: user registration with email support
This commit is contained in:
@@ -23,12 +23,23 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
|
||||
return res.status(400).json({ success: false, error: 'Password must be at least 6 characters' });
|
||||
}
|
||||
|
||||
if (email && !email.includes('@')) {
|
||||
return res.status(400).json({ success: false, error: 'Invalid email format' });
|
||||
}
|
||||
|
||||
// Check if username already exists
|
||||
const existingUser = await UserService.getUserByUsername(username);
|
||||
if (existingUser) {
|
||||
return res.status(409).json({ success: false, error: 'Username already taken' });
|
||||
}
|
||||
|
||||
if (email) {
|
||||
const existingEmail = await UserService.getUserByEmail(email);
|
||||
if (existingEmail) {
|
||||
return res.status(409).json({ success: false, error: 'Email already registered' });
|
||||
}
|
||||
}
|
||||
|
||||
// Create new user
|
||||
const user = await UserService.createUser(username, password, email);
|
||||
|
||||
@@ -45,6 +56,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
|
||||
user: {
|
||||
id: user.id,
|
||||
username: user.username,
|
||||
email: user.email,
|
||||
avatarUrl: user.avatarUrl,
|
||||
role: user.role,
|
||||
status: user.status
|
||||
@@ -53,7 +65,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
|
||||
}
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('Registration error:', error);
|
||||
console.error('Registration error details:', error);
|
||||
return res.status(500).json({ success: false, error: 'Registration failed' });
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user