From a4b8a44e47e02d6a3f547008756ed9a0b4cef66c Mon Sep 17 00:00:00 2001 From: konrad Date: Wed, 24 Jan 2018 13:18:17 +0100 Subject: [PATCH] Added custom error for could not get User ID from JWT --- models/error.go | 12 ++++++++++++ models/user.go | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) 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),