From 5d479b0811058b2f9dfe114e9bf57bb067813608 Mon Sep 17 00:00:00 2001 From: Tim Wundenberg Date: Fri, 27 Sep 2024 11:22:32 +0200 Subject: [PATCH] chore: update error names --- db/auth.go | 6 +++--- db/auth_test.go | 2 +- handler/auth.go | 2 +- service/auth.go | 17 +++++++++-------- types/types.go | 2 +- 5 files changed, 15 insertions(+), 14 deletions(-) diff --git a/db/auth.go b/db/auth.go index 1052969..c557a7d 100644 --- a/db/auth.go +++ b/db/auth.go @@ -11,7 +11,7 @@ import ( ) var ( - UserNotFound = errors.New("User not found") + ErrUserNotFound = errors.New("User not found") ) type User struct { @@ -67,10 +67,10 @@ func (db DbAuthSqlite) GetUser(email string) (*User, error) { WHERE email = ?`, email).Scan(&userId, &emailVerified, &emailVerifiedAt, &password, &salt, &createdAt) if err != nil { if err == sql.ErrNoRows { - return nil, UserNotFound + return nil, ErrUserNotFound } else { utils.LogError("SQL error GetUser", err) - return nil, types.InternalServerError + return nil, types.ErrInternal } } diff --git a/db/auth_test.go b/db/auth_test.go index 3084f63..bc2729e 100644 --- a/db/auth_test.go +++ b/db/auth_test.go @@ -32,7 +32,7 @@ func TestGetUser(t *testing.T) { underTest := DbAuthSqlite{db: db} _, err := underTest.GetUser("someNonExistentEmail") - if err != UserNotFound { + if err != ErrUserNotFound { t.Errorf("Expected UserNotFound, got %v", err) } }) diff --git a/handler/auth.go b/handler/auth.go index 8607f4b..22630e1 100644 --- a/handler/auth.go +++ b/handler/auth.go @@ -68,7 +68,7 @@ func (handler HandlerAuthImpl) handleSignIn() http.HandlerFunc { }) if err != nil { - if err == service.InvaidEmailOrPassword { + if err == service.ErrInvaidCredentials { utils.TriggerToast(w, r, "error", "Invalid email or password") http.Error(w, "Invalid email or password", http.StatusUnauthorized) } else { diff --git a/service/auth.go b/service/auth.go index fa0eedd..4340c1f 100644 --- a/service/auth.go +++ b/service/auth.go @@ -25,7 +25,8 @@ import ( ) var ( - InvaidEmailOrPassword = errors.New("Invalid email or password") + ErrInvaidCredentials = errors.New("Invalid email or password") + ErrPasswordComplexity = errors.New("Password needs to be 8 characters long, contain at least one number, one special, one uppercase and one lowercase character") ) type User struct { @@ -60,8 +61,8 @@ func (service ServiceAuthImpl) SignIn(email string, password string) (*User, err user, err := service.dbAuth.GetUser(email) if err != nil { - if errors.Is(err, db.UserNotFound) { - return nil, InvaidEmailOrPassword + if errors.Is(err, db.ErrUserNotFound) { + return nil, ErrInvaidCredentials } else { return nil, err } @@ -70,7 +71,7 @@ func (service ServiceAuthImpl) SignIn(email string, password string) (*User, err hash := getHashPassword(password, user.Salt) if subtle.ConstantTimeCompare(hash, user.Password) == 0 { - return nil, InvaidEmailOrPassword + return nil, ErrInvaidCredentials } return NewUser(user), nil @@ -618,20 +619,20 @@ func TryCreateSessionAndSetCookie(r *http.Request, w http.ResponseWriter, db *sq sessionId, err := utils.RandomToken() if err != nil { utils.LogError("Could not generate session ID", err) - return types.InternalServerError + return types.ErrInternal } // Delete old inactive sessions _, err = db.Exec("DELETE FROM session WHERE created_at < datetime('now','-8 hours') AND user_uuid = ?", user_uuid) if err != nil { utils.LogError("Could not delete old sessions", err) - return types.InternalServerError + return types.ErrInternal } _, err = db.Exec("INSERT INTO session (session_id, user_uuid, created_at) VALUES (?, ?, datetime())", sessionId, user_uuid) if err != nil { utils.LogError("Could not insert session", err) - return types.InternalServerError + return types.ErrInternal } cookie := http.Cookie{ @@ -659,7 +660,7 @@ func checkPassword(password string) error { !strings.ContainsAny(password, "ABCDEFGHIJKLMNOPQRSTUVWXYZ") || !strings.ContainsAny(password, "abcdefghijklmnopqrstuvwxyz") || !strings.ContainsAny(password, "!@#$%^&*()_+-=[]{}\\|;:'\",.<>/?") { - return errors.New("Password needs to be 8 characters long, contain at least one number, one special, one uppercase and one lowercase character") + return ErrPasswordComplexity } else { return nil } diff --git a/types/types.go b/types/types.go index 13933b3..d40f2dd 100644 --- a/types/types.go +++ b/types/types.go @@ -7,7 +7,7 @@ import ( ) var ( - InternalServerError = errors.New("Internal server error") + ErrInternal = errors.New("Internal server error") ) type User struct {