From 8a6a355097904a63da875e86c05b86a4d1f82d8c Mon Sep 17 00:00:00 2001 From: Jamie Curnow Date: Tue, 9 Nov 2021 10:49:35 +1000 Subject: [PATCH] Backend error messages for signup/login can now be interpreted by locale Fixed a bad err check on backend --- backend/internal/api/handler/tokens.go | 13 +++++++++---- backend/internal/errors/errors.go | 1 + frontend/src/locale/src/en.json | 6 ++++++ frontend/src/pages/Login/index.tsx | 6 ++++-- frontend/src/pages/Setup/index.tsx | 8 +++++--- 5 files changed, 25 insertions(+), 9 deletions(-) diff --git a/backend/internal/api/handler/tokens.go b/backend/internal/api/handler/tokens.go index 8851e97e..194ab0db 100644 --- a/backend/internal/api/handler/tokens.go +++ b/backend/internal/api/handler/tokens.go @@ -4,6 +4,8 @@ import ( "encoding/json" "net/http" h "npm/internal/api/http" + "npm/internal/errors" + "npm/internal/logger" c "npm/internal/api/context" "npm/internal/entity/auth" @@ -35,21 +37,24 @@ func NewToken() func(http.ResponseWriter, *http.Request) { // Find user userObj, userErr := user.GetByEmail(payload.Identity) if userErr != nil { - h.ResultErrorJSON(w, r, http.StatusBadRequest, userErr.Error(), nil) + logger.Debug("%s: %s", errors.ErrInvalidLogin.Error(), userErr.Error()) + h.ResultErrorJSON(w, r, http.StatusBadRequest, errors.ErrInvalidLogin.Error(), nil) return } // Get Auth authObj, authErr := auth.GetByUserIDType(userObj.ID, payload.Type) - if userErr != nil { - h.ResultErrorJSON(w, r, http.StatusBadRequest, authErr.Error(), nil) + if authErr != nil { + logger.Debug("%s: %s", errors.ErrInvalidLogin.Error(), authErr.Error()) + h.ResultErrorJSON(w, r, http.StatusBadRequest, errors.ErrInvalidLogin.Error(), nil) return } // Verify Auth validateErr := authObj.ValidateSecret(payload.Secret) if validateErr != nil { - h.ResultErrorJSON(w, r, http.StatusBadRequest, validateErr.Error(), nil) + logger.Debug("%s: %s", errors.ErrInvalidLogin.Error(), validateErr.Error()) + h.ResultErrorJSON(w, r, http.StatusBadRequest, errors.ErrInvalidLogin.Error(), nil) return } diff --git a/backend/internal/errors/errors.go b/backend/internal/errors/errors.go index 3336e64a..82976bdb 100644 --- a/backend/internal/errors/errors.go +++ b/backend/internal/errors/errors.go @@ -5,6 +5,7 @@ import "errors" // All error messages used by the service package to report // problems back to calling clients var ( + ErrInvalidLogin = errors.New("invalid_login_credentials") ErrDatabaseUnavailable = errors.New("Database is unavailable") ErrDuplicateEmailUser = errors.New("A user already exists with this email address") ) diff --git a/frontend/src/locale/src/en.json b/frontend/src/locale/src/en.json index 15348e72..89d1be2e 100644 --- a/frontend/src/locale/src/en.json +++ b/frontend/src/locale/src/en.json @@ -32,6 +32,12 @@ "column.wildcard_support": { "defaultMessage": "Wildcard Support" }, + "error.cannot_create_user": { + "defaultMessage": "Cannot create user" + }, + "error.invalid_login_credentials": { + "defaultMessage": "Invalid login credentials" + }, "footer.changelog": { "defaultMessage": "Change Log" }, diff --git a/frontend/src/pages/Login/index.tsx b/frontend/src/pages/Login/index.tsx index 9e8a442c..1b242aec 100644 --- a/frontend/src/pages/Login/index.tsx +++ b/frontend/src/pages/Login/index.tsx @@ -37,8 +37,10 @@ function Login() { await login(formData.email, formData.password); } catch (err: any) { toast({ - title: "Login Error", - description: err.message, + description: intl.formatMessage({ + id: `error.${err.message}`, + defaultMessage: err.message, + }), status: "error", position: "top", duration: 3000, diff --git a/frontend/src/pages/Setup/index.tsx b/frontend/src/pages/Setup/index.tsx index 1d3fa7af..544b2670 100644 --- a/frontend/src/pages/Setup/index.tsx +++ b/frontend/src/pages/Setup/index.tsx @@ -51,8 +51,10 @@ function Setup() { const showErr = (msg: string) => { toast({ - title: "Signup Error", - description: msg, + description: intl.formatMessage({ + id: `error.${msg}`, + defaultMessage: msg, + }), status: "error", position: "top", duration: 3000, @@ -74,7 +76,7 @@ function Setup() { setLoading(false); } } else { - showErr("Unable to create user!"); + showErr("cannot_create_user"); } } catch (err: any) { showErr(err.message);