package middleware import ( "context" "errors" "github.com/go-chi/chi/middleware" ) const ( // KeyDebug is the context key associated with the debug value KeyDebug ContextKey = "debug" ) // ErrInvalidDebug is returned when no debug value // could be found on the given context var ErrInvalidDebug = errors.New("invalid debug") // GetDebug retrieves the debug value from the given context func GetDebug(ctx context.Context) (bool, error) { debug, ok := ctx.Value(KeyDebug).(bool) if !ok { return false, ErrInvalidDebug } return debug, nil } // Debug expose the given debug flag as a context value // on the HTTP requests func Debug(debug bool) Middleware { return middleware.WithValue(KeyDebug, debug) }