diff --git a/internal/app/server/authentication.go b/internal/app/server/authentication.go index f3cc4e8..edb791f 100644 --- a/internal/app/server/authentication.go +++ b/internal/app/server/authentication.go @@ -12,6 +12,11 @@ type AuthenticatedFunc func(ctx *gin.Context, user *domain.User) // withAuthenticatedUser is a helper to run a handler only if user is authenticated. Otherwise // the function will return an error with a 401 status. +// +// BUG: This is probably not very effecient, since we hit the DB on every single protected request. +// If this ends up being a bottle neck we could simply hit the context for the userId, since +// that is usually all we need...Or maybe have two methods, for those that need the whole user +// and those that just need the ID. func (s *Server) withAuthenticatedUser(ctx *gin.Context, handler AuthenticatedFunc) { user := s.deps.UserService.GetAuthenicatedUser(ctx) if user == nil { @@ -24,6 +29,7 @@ func (s *Server) withAuthenticatedUser(ctx *gin.Context, handler AuthenticatedFu handler(ctx, user) } + // getUserId retrieves the userId from the context and returns a pointer to it. A nil // pointer can be returned and will if the userId does not exist. func getUserId(ctx *gin.Context) *int {