From 240d67fbfa52fa1fe4f5f26f7bb9c620265e20db Mon Sep 17 00:00:00 2001 From: SrGooglo Date: Mon, 19 Feb 2024 18:59:37 +0000 Subject: [PATCH] fixes to user registration --- packages/server/package.json | 1 - .../AuthController/endpoints/userRegister.js | 8 +++++++- .../controllers/AuthController/methods/createUser.js | 11 +++++++++-- packages/server/src/index.js | 2 +- 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/packages/server/package.json b/packages/server/package.json index c5ef1962..dc9412ec 100755 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -27,7 +27,6 @@ "busboy": "^1.6.0", "connect-mongo": "^4.6.0", "content-range": "^2.0.2", - "dicebar_lib": "1.0.1", "dotenv": "^16.0.3", "infisical-node": "^1.2.1", "jsonwebtoken": "^9.0.0", diff --git a/packages/server/src/controllers/AuthController/endpoints/userRegister.js b/packages/server/src/controllers/AuthController/endpoints/userRegister.js index f243618e..071891b1 100755 --- a/packages/server/src/controllers/AuthController/endpoints/userRegister.js +++ b/packages/server/src/controllers/AuthController/endpoints/userRegister.js @@ -10,11 +10,17 @@ export default { select: ["username", "email", "password", "fullName"], }, async (req, res) => { const result = await createUser(req.selection).catch((err) => { - return res.status(500).json({ + res.status(500).json({ message: `Error creating user > ${err.message}`, }) + + return false }) + if (!result) { + return false + } + return res.json(result) }) } \ No newline at end of file diff --git a/packages/server/src/controllers/AuthController/methods/createUser.js b/packages/server/src/controllers/AuthController/methods/createUser.js index e06da357..f4a963e9 100755 --- a/packages/server/src/controllers/AuthController/methods/createUser.js +++ b/packages/server/src/controllers/AuthController/methods/createUser.js @@ -1,10 +1,17 @@ import { User } from "@shared-classes/DbModels" -import Avatars from "dicebar_lib" import bcrypt from "bcrypt" export default async function (payload) { let { username, password, email, fullName, roles, avatar } = payload + if (username.length < 3) { + throw new Error("Username must be at least 3 characters") + } + + if (username.length > 64) { + throw new Error("Username cannot be longer than 64 characters") + } + // if username has capital letters, throw error if (username !== username.toLowerCase()) { throw new Error("Username must be lowercase") @@ -43,7 +50,7 @@ export default async function (payload) { password: hash, email: email, fullName: fullName, - avatar: avatar ?? Avatars.generate({ seed: username, type: "initials" }).uri, + avatar: avatar ?? `https://api.dicebear.com/7.x/thumbs/svg?seed=${username}`, roles: roles, createdAt: new Date().getTime(), }) diff --git a/packages/server/src/index.js b/packages/server/src/index.js index 51bc575d..763a5733 100755 --- a/packages/server/src/index.js +++ b/packages/server/src/index.js @@ -1,4 +1,4 @@ -global.FORCE_ENV = "prod" +global.FORCE_ENV = "dev" import Boot from "linebridge/bootstrap" import { Server } from "linebridge/dist/server"