From 735d63686c91ead4b7e4c8906b60c5cfa10140dd Mon Sep 17 00:00:00 2001 From: Rohit Date: Sun, 2 Feb 2025 14:13:01 +0530 Subject: [PATCH] feat: better error messages for register notif --- server/src/routes/auth.ts | 49 +++++++++++++++++++++++++++++++-------- 1 file changed, 39 insertions(+), 10 deletions(-) diff --git a/server/src/routes/auth.ts b/server/src/routes/auth.ts index 6d1a8cb6..b7d884a4 100644 --- a/server/src/routes/auth.ts +++ b/server/src/routes/auth.ts @@ -17,46 +17,75 @@ router.post("/register", async (req, res) => { try { const { email, password } = req.body; - if (!email) return res.status(400).send("Email is required"); - if (!password || password.length < 6) - return res - .status(400) - .send("Password is required and must be at least 6 characters"); + // Validation checks with translation codes + if (!email) { + return res.status(400).json({ + error: "VALIDATION_ERROR", + code: "register.validation.email_required" + }); + } + if (!password || password.length < 6) { + return res.status(400).json({ + error: "VALIDATION_ERROR", + code: "register.validation.password_requirements" + }); + } + + // Check if user exists let userExist = await User.findOne({ raw: true, where: { email } }); - if (userExist) return res.status(400).send("User already exists"); + if (userExist) { + return res.status(400).json({ + error: "USER_EXISTS", + code: "register.error.user_exists" + }); + } const hashedPassword = await hashPassword(password); + // Create user let user: any; - try { user = await User.create({ email, password: hashedPassword }); } catch (error: any) { console.log(`Could not create user - ${error}`); - return res.status(500).send(`Could not create user - ${error.message}`); + return res.status(500).json({ + error: "DATABASE_ERROR", + code: "register.error.creation_failed" + }); } + // Check JWT secret if (!process.env.JWT_SECRET) { console.log("JWT_SECRET is not defined in the environment"); - return res.status(500).send("Internal Server Error"); + return res.status(500).json({ + error: "SERVER_ERROR", + code: "register.error.server_error" + }); } + // Success path const token = jwt.sign({ id: user.id }, process.env.JWT_SECRET as string); user.password = undefined as unknown as string; res.cookie("token", token, { httpOnly: true, }); + capture("maxun-oss-user-registered", { email: user.email, userId: user.id, registeredAt: new Date().toISOString(), }); + console.log(`User registered`); res.json(user); + } catch (error: any) { console.log(`Could not register user - ${error}`); - res.status(500).send(`Could not register user - ${error.message}`); + return res.status(500).json({ + error: "SERVER_ERROR", + code: "register.error.generic" + }); } });