import { NextRequest, NextResponse } from 'next/server';
import { registerUser } from '@/lib/auth';
export async function POST(request: NextRequest) {
try {
const { name, email, password } = await request.json();
// Validate input
if (!name || !email || !password) {
return NextResponse.json(
{ error: 'Name, email, and password are required' },
{ status: 400 }
);
}
// Validate email format
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
if (!emailRegex.test(email)) {
return NextResponse.json(
{ error: 'Invalid email format' },
{ status: 400 }
);
}
// Validate password length
if (password.length < 8) {
return NextResponse.json(
{ error: 'Password must be at least 8 characters long' },
{ status: 400 }
);
}
// Register user
const user = await registerUser(name, email, password);
return NextResponse.json({
success: true,
message: 'User registered successfully',
id: user.id
});
} catch (error) {
console.error('Registration error:', error);
if (error instanceof Error && error.message.includes('already exists')) {
return NextResponse.json(
{ error: 'User with this email already exists' },
{ status: 409 }
);
}
return NextResponse.json(
{ error: 'Failed to register user' },
{ status: 500 }
);
}
}