From 163cb73b9d311d2731c6bf5db8acf3c5dbf16cd9 Mon Sep 17 00:00:00 2001 From: SowinskiBraeden Date: Wed, 21 May 2025 12:06:57 -0700 Subject: [PATCH] fix/validation error messages --- src/auth/authentication.js | 15 ++++++++------- src/auth/forgotPass.js | 4 ++-- src/router/user.js | 20 ++++++++++---------- 3 files changed, 20 insertions(+), 19 deletions(-) diff --git a/src/auth/authentication.js b/src/auth/authentication.js index d4a8c5e..5729ae2 100644 --- a/src/auth/authentication.js +++ b/src/auth/authentication.js @@ -27,14 +27,14 @@ module.exports = (users) => { router.post("/login", async (req, res) => { const credentialSchema = joi.object({ - email: joi.string().email().required(), + email: joi.string().email({ minDomainSegments: 2, tlds: { allow: true } }).required(), password: joi.string().alphanum().max(20).required(), }); const valid = credentialSchema.validate(req.body); - if (valid.err) { - req.session.errMessage = "Invalid input"; + if (valid.error) { + req.session.errMessage = "Invalid input:" + valid.error.details.map(d => d.message.replace(/"/g, '')).join(', '); res.status(status.BadRequest); return res.redirect("/login"); } @@ -72,16 +72,16 @@ module.exports = (users) => { router.post("/signup", async (req, res) => { const userSchema = joi.object({ - email: joi.string().email().required(), + email: joi.string().email({ minDomainSegments: 2, tlds: { allow: true } }).required(), name: joi.string().pattern(new RegExp('^[a-zA-Z]+$')).max(20).required(), password: joi.string().alphanum().max(20).min(8).required(), repassword: joi.string().alphanum().max(20).min(8).required(), }); const valid = userSchema.validate(req.body); - - if (valid.err) { - req.session.errMessage = "Invalid input", + + if (valid.error) { + req.session.errMessage = valid.error.details[0].message, res.status(status.BadRequest); return res.redirect("/signup"); } @@ -95,6 +95,7 @@ module.exports = (users) => { if (req.body.password != req.body.repassword) { req.session.errMessage = "Passwords must match"; + res.status(status.BadRequest); return res.redirect(`/signup/?name=${req.body.name}&email=${req.body.email}`); } diff --git a/src/auth/forgotPass.js b/src/auth/forgotPass.js index bcf2ea5..2dce041 100644 --- a/src/auth/forgotPass.js +++ b/src/auth/forgotPass.js @@ -21,7 +21,7 @@ module.exports = (users) => { router.post('/auth/resetPass', async (req, res) => { const resetSchema = joi.object({ - email: joi.string().email().required(), + email: joi.string().email({ minDomainSegments: 2, tlds: { allow: true } }).required(), }); req.session.error = ''; req.session.reset = ''; @@ -83,7 +83,7 @@ module.exports = (users) => { const valid = passwordSchema.validate({ password, confirmPassword }); if (valid.error) { console.log("houston we have a problem"); // nice - req.session.error = 'Invalid input'; + req.session.error = "Invalid input:" + valid.error.details.map(d => d.message.replace(/"/g, '')).join(', ');; res.status(status.BadRequest); return res.redirect(`/reset/${token}`); } diff --git a/src/router/user.js b/src/router/user.js index 3f95a73..e4421ce 100644 --- a/src/router/user.js +++ b/src/router/user.js @@ -449,7 +449,7 @@ module.exports = (middleware, users, plans, assets) => { router.post("/updateAccount", async (req, res) => { const accountSchema = joi.object({ - email: joi.string().email(), + email: joi.string().email({ minDomainSegments: 2, tlds: { allow: true } }), name: joi.string().pattern(new RegExp('^[a-zA-Z]+$')).max(20), password: joi.string().alphanum().max(20).min(8), repassword: joi.string().alphanum().max(20).min(8), @@ -457,9 +457,9 @@ module.exports = (middleware, users, plans, assets) => { const valid = accountSchema.validate(req.body); - if (valid.err) { - req.session.errMessage = "Invalid input", - res.status(status.BadRequest); + if (valid.error) { + req.session.errMessage = "Invalid input:" + valid.error.details.map(d => d.message.replace(/"/g, '')).join(', '); + res.status(status.BadRequest); return res.redirect("/profile"); } @@ -606,9 +606,9 @@ module.exports = (middleware, users, plans, assets) => { const valid = assetSchema.validate(req.body); - if (valid.err) { - req.session.errMessage = "Invalid input", - res.status(status.BadRequest); + if (valid.error) { + req.session.errMessage = "Invalid input:" + valid.error.details.map(d => d.message.replace(/"/g, '')).join(', '); + res.status(status.BadRequest); return res.redirect("/assets"); } @@ -651,9 +651,9 @@ module.exports = (middleware, users, plans, assets) => { const valid = assetSchema.validate(req.body); - if (valid.err) { - req.session.errMessage = "Invalid input", - res.status(status.BadRequest); + if (valid.error) { + req.session.errMessage = "Invalid input:" + valid.error.details.map(d => d.message.replace(/"/g, '')).join(', '); + res.status(status.BadRequest); return res.redirect("/assets"); }