diff --git a/models/error.go b/models/error.go index 4e4b627..e54993b 100644 --- a/models/error.go +++ b/models/error.go @@ -104,4 +104,16 @@ func (err ErrBookTitleCannotBeEmpty) Error() string { return fmt.Sprintf("the book should at least have a title") } +// ErrCouldNotGetUserID represents a "ErrCouldNotGetUserID" kind of error. +type ErrCouldNotGetUserID struct {} + +// ErrBookTitleCannotBeEmpty checks if an error is a ErrBookTitleCannotBeEmpty. +func IsErrCouldNotGetUserID(err error) bool { + _, ok := err.(ErrCouldNotGetUserID) + return ok +} + +func (err ErrCouldNotGetUserID) Error() string { + return fmt.Sprintf("could not get user ID") +} diff --git a/models/user.go b/models/user.go index 83a325d..ef7e708 100644 --- a/models/user.go +++ b/models/user.go @@ -87,7 +87,7 @@ func GetCurrentUser(c echo.Context) (user User, err error) { claims := jwtinf.Claims.(jwt.MapClaims) userID, ok := claims["id"].(float64) if !ok { - return user, fmt.Errorf("Error getting UserID") + return user, ErrCouldNotGetUserID{} } user = User{ ID: int64(userID),