import { connectToDatabase } from '../../../utils/helpers/dbHelpers'; import { hashPassword } from '../../../utils/helpers/hashPasswordHelpers'; async function handler(req, res) { if (req.method !== 'POST') { return; } const { fullName, username, email, password } = req.body; if ( !fullName || !username || !email || !email.includes('@') || !password || password.trim().length < 7 ) { res.status(422).json({ message: 'Invalid input ', }); return; } const client = await connectToDatabase(); const db = client.db(); const existingUser = await db .collection('users') .findOne({ $or: [{ email: email }, { username: username }] }); if (existingUser) { res.status(422).json({ message: 'User exists already!' }); client.close(); return; } const hashedPassword = await hashPassword(password); const result = await db.collection('users').insertOne({ fullName: fullName, username: username, email: email, password: hashedPassword, }); res.status(201).json({ message: 'Created user!', result: result }); client.close(); } export default handler;