| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- 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;
|