From a28d1433e30f2beb9ca760d486bcaf1f23bf6655 Mon Sep 17 00:00:00 2001 From: srgooglo Date: Fri, 7 Oct 2022 20:11:46 +0200 Subject: [PATCH] check existent email on `userCreate` --- packages/server/src/lib/createUser/index.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/server/src/lib/createUser/index.js b/packages/server/src/lib/createUser/index.js index 39ccdb33..1b558b28 100644 --- a/packages/server/src/lib/createUser/index.js +++ b/packages/server/src/lib/createUser/index.js @@ -20,14 +20,24 @@ export default async function (payload) { throw new Error("Username can only contain letters, numbers, and underscores") } + // check if username is already taken const existentUser = await User.findOne({ username: username }) if (existentUser) { throw new Error("User already exists") } + // check if the email is already in use + const existentEmail = await User.findOne({ email: email }) + + if (existentEmail) { + throw new Error("Email already in use") + } + + // hash the password const hash = bcrypt.hashSync(password, parseInt(process.env.BCRYPT_ROUNDS ?? 3)) + // create the doc let user = new User({ username: username, password: hash,