From 92bb2d9d7b7f654a8d0359b92576085bf5494482 Mon Sep 17 00:00:00 2001 From: mikestefanello Date: Mon, 20 Dec 2021 12:48:46 -0500 Subject: [PATCH] Removed unnecessary user load during registration validation. --- routes/register.go | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/routes/register.go b/routes/register.go index cfa13f8..3ed267e 100644 --- a/routes/register.go +++ b/routes/register.go @@ -3,7 +3,7 @@ package routes import ( "goweb/context" "goweb/controller" - "goweb/ent/user" + "goweb/ent" "goweb/msg" "github.com/labstack/echo/v4" @@ -56,20 +56,6 @@ func (r *Register) Post(c echo.Context) error { return r.Get(c) } - // Check if the email address is taken - exists, err := r.Container.ORM.User. - Query(). - Where(user.Email(form.Email)). - Exist(c.Request().Context()) - - switch { - case err != nil: - return fail("unable to query to see if email is taken", err) - case exists: - msg.Warning(c, "A user with this email address already exists. Please log in.") - return r.Redirect(c, "login") - } - // Hash the password pwHash, err := r.Container.Auth.HashPassword(form.Password) if err != nil { @@ -84,12 +70,16 @@ func (r *Register) Post(c echo.Context) error { SetPassword(pwHash). Save(c.Request().Context()) - if err != nil { + switch err.(type) { + case nil: + c.Logger().Infof("user created: %s", u.Name) + case *ent.ConstraintError: + msg.Warning(c, "A user with this email address already exists. Please log in.") + return r.Redirect(c, "login") + default: return fail("unable to create user", err) } - c.Logger().Infof("user created: %s", u.Name) - // Log the user in err = r.Container.Auth.Login(c, u.ID) if err != nil {