diff options
author | Gabriel Arakaki Giovanini <mail@gabrielgio.me> | 2023-08-25 22:35:47 +0200 |
---|---|---|
committer | Gabriel Arakaki Giovanini <mail@gabrielgio.me> | 2023-08-25 22:35:47 +0200 |
commit | 869f50db2fbc24826762fb61d35e5f8de79296c1 (patch) | |
tree | 10bd08d7d4b34b61f74e5758e9157c2e10e069fc /pkg/database | |
parent | c9e5d242cbba5e3b9d3ddc4465a9a1367e44cd16 (diff) | |
download | lens-869f50db2fbc24826762fb61d35e5f8de79296c1.tar.gz lens-869f50db2fbc24826762fb61d35e5f8de79296c1.tar.bz2 lens-869f50db2fbc24826762fb61d35e5f8de79296c1.zip |
feat: Handle login error
Diffstat (limited to 'pkg/database')
-rw-r--r-- | pkg/database/repository/base.go | 5 | ||||
-rw-r--r-- | pkg/database/sql/user.go | 28 |
2 files changed, 23 insertions, 10 deletions
diff --git a/pkg/database/repository/base.go b/pkg/database/repository/base.go new file mode 100644 index 0000000..a9d69c9 --- /dev/null +++ b/pkg/database/repository/base.go @@ -0,0 +1,5 @@ +package repository + +import "errors" + +var ErrRecordNotFound = errors.New("record not found") diff --git a/pkg/database/sql/user.go b/pkg/database/sql/user.go index 6b1cf0f..2ec8622 100644 --- a/pkg/database/sql/user.go +++ b/pkg/database/sql/user.go @@ -2,6 +2,7 @@ package sql import ( "context" + "errors" "golang.org/x/crypto/bcrypt" "gorm.io/gorm" @@ -82,7 +83,7 @@ func (self *UserRepository) List(ctx context.Context) ([]*repository.User, error Find(&users) if result.Error != nil { - return nil, result.Error + return nil, wrapError(result.Error) } return users.ToModel(), nil @@ -95,7 +96,7 @@ func (self *UserRepository) Get(ctx context.Context, id uint) (*repository.User, First(user) if result.Error != nil { - return nil, result.Error + return nil, wrapError(result.Error) } return user, nil @@ -113,7 +114,7 @@ func (self *UserRepository) GetIDByUsername(ctx context.Context, username string First(&userID) if result.Error != nil { - return 0, result.Error + return 0, wrapError(result.Error) } return userID.ID, nil @@ -131,7 +132,7 @@ func (self *UserRepository) GetPassword(ctx context.Context, id uint) ([]byte, e First(&userPassword) if result.Error != nil { - return nil, result.Error + return nil, wrapError(result.Error) } return userPassword.Password, nil @@ -150,7 +151,7 @@ func (self *UserRepository) Create(ctx context.Context, createUser *repository.C WithContext(ctx). Create(user) if result.Error != nil { - return 0, result.Error + return 0, wrapError(result.Error) } return user.Model.ID, nil @@ -172,7 +173,7 @@ func (self *UserRepository) Update(ctx context.Context, id uint, update *reposit Omit("password"). Updates(user) if result.Error != nil { - return result.Error + return wrapError(result.Error) } return nil @@ -189,7 +190,7 @@ func (self *UserRepository) Delete(ctx context.Context, id uint) error { WithContext(ctx). Delete(user) if result.Error != nil { - return result.Error + return wrapError(result.Error) } return nil } @@ -203,7 +204,7 @@ func (u *UserRepository) Any(ctx context.Context) (bool, error) { Find(&exists) if result.Error != nil { - return false, result.Error + return false, wrapError(result.Error) } return exists, nil @@ -220,7 +221,7 @@ func (u *UserRepository) GetPathFromUserID(ctx context.Context, id uint) (string First(&userPath) if result.Error != nil { - return "", result.Error + return "", wrapError(result.Error) } return userPath, nil @@ -233,5 +234,12 @@ func (u *UserRepository) UpdatePassword(ctx context.Context, id uint, password [ Where("id = ?", id). Update("password", password) - return result.Error + return wrapError(result.Error) +} + +func wrapError(err error) error { + if errors.Is(err, gorm.ErrRecordNotFound) { + return repository.ErrRecordNotFound + } + return err } |