add internal gorm erros
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
package user
|
package user
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
@@ -24,6 +25,7 @@ func (s *GormUserStore) Create(user *User) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Search returns a user by username or id or email
|
// Search returns a user by username or id or email
|
||||||
|
// May return [ErrUserNotFound] if user not found
|
||||||
func (s *GormUserStore) GetBy(by, value string) (*User, error) {
|
func (s *GormUserStore) GetBy(by, value string) (*User, error) {
|
||||||
if by != "username" && by != "id" && by != "email" {
|
if by != "username" && by != "id" && by != "email" {
|
||||||
return nil, fmt.Errorf("unsuppored field %s", by)
|
return nil, fmt.Errorf("unsuppored field %s", by)
|
||||||
@@ -31,7 +33,10 @@ func (s *GormUserStore) GetBy(by, value string) (*User, error) {
|
|||||||
var user User
|
var user User
|
||||||
err := s.db.Where(fmt.Sprintf("%s = ?", by), value).First(&user).Error
|
err := s.db.Where(fmt.Sprintf("%s = ?", by), value).First(&user).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||||
|
return nil, ErrUserNotFound
|
||||||
|
}
|
||||||
|
return nil, fmt.Errorf("failed to get user: %w", err)
|
||||||
}
|
}
|
||||||
return &user, nil
|
return &user, nil
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user