Browse Source

Simplify context keys

Frédéric Guillot 7 years ago
parent
commit
c327833314
2 changed files with 20 additions and 50 deletions
  1. 3 3
      http/context/context.go
  2. 17 47
      middleware/context_keys.go

+ 3 - 3
http/context/context.go

@@ -92,7 +92,7 @@ func (c *Context) PocketRequestToken() string {
 	return c.getContextStringValue(middleware.PocketRequestTokenContextKey)
 }
 
-func (c *Context) getContextStringValue(key *middleware.ContextKey) string {
+func (c *Context) getContextStringValue(key middleware.ContextKey) string {
 	if v := c.request.Context().Value(key); v != nil {
 		return v.(string)
 	}
@@ -100,7 +100,7 @@ func (c *Context) getContextStringValue(key *middleware.ContextKey) string {
 	return ""
 }
 
-func (c *Context) getContextBoolValue(key *middleware.ContextKey) bool {
+func (c *Context) getContextBoolValue(key middleware.ContextKey) bool {
 	if v := c.request.Context().Value(key); v != nil {
 		return v.(bool)
 	}
@@ -108,7 +108,7 @@ func (c *Context) getContextBoolValue(key *middleware.ContextKey) bool {
 	return false
 }
 
-func (c *Context) getContextIntValue(key *middleware.ContextKey) int64 {
+func (c *Context) getContextIntValue(key middleware.ContextKey) int64 {
 	if v := c.request.Context().Value(key); v != nil {
 		return v.(int64)
 	}

+ 17 - 47
middleware/context_keys.go

@@ -5,51 +5,21 @@
 package middleware // import "miniflux.app/middleware"
 
 // ContextKey represents a context key.
-type ContextKey struct {
-	name string
-}
-
-func (c ContextKey) String() string {
-	return c.name
-}
-
-var (
-	// UserIDContextKey is the context key used to store the user ID.
-	UserIDContextKey = &ContextKey{"UserID"}
-
-	// UserTimezoneContextKey is the context key used to store the user timezone.
-	UserTimezoneContextKey = &ContextKey{"UserTimezone"}
-
-	// IsAdminUserContextKey is the context key used to store the user role.
-	IsAdminUserContextKey = &ContextKey{"IsAdminUser"}
-
-	// IsAuthenticatedContextKey is the context key used to store the authentication flag.
-	IsAuthenticatedContextKey = &ContextKey{"IsAuthenticated"}
-
-	// UserSessionTokenContextKey is the context key used to store the user session ID.
-	UserSessionTokenContextKey = &ContextKey{"UserSessionToken"}
-
-	// UserLanguageContextKey is the context key to store user language.
-	UserLanguageContextKey = &ContextKey{"UserLanguageContextKey"}
-
-	// UserThemeContextKey is the context key to store user theme.
-	UserThemeContextKey = &ContextKey{"UserThemeContextKey"}
-
-	// SessionIDContextKey is the context key used to store the session ID.
-	SessionIDContextKey = &ContextKey{"SessionID"}
-
-	// CSRFContextKey is the context key used to store CSRF token.
-	CSRFContextKey = &ContextKey{"CSRF"}
-
-	// OAuth2StateContextKey is the context key used to store OAuth2 state.
-	OAuth2StateContextKey = &ContextKey{"OAuth2State"}
-
-	// FlashMessageContextKey is the context key used to store a flash message.
-	FlashMessageContextKey = &ContextKey{"FlashMessage"}
-
-	// FlashErrorMessageContextKey is the context key used to store a flash error message.
-	FlashErrorMessageContextKey = &ContextKey{"FlashErrorMessage"}
-
-	// PocketRequestTokenContextKey is the context key for Pocket Request Token.
-	PocketRequestTokenContextKey = &ContextKey{"PocketRequestToken"}
+type ContextKey int
+
+// List of context keys.
+const (
+	UserIDContextKey ContextKey = iota
+	UserTimezoneContextKey
+	IsAdminUserContextKey
+	IsAuthenticatedContextKey
+	UserSessionTokenContextKey
+	UserLanguageContextKey
+	UserThemeContextKey
+	SessionIDContextKey
+	CSRFContextKey
+	OAuth2StateContextKey
+	FlashMessageContextKey
+	FlashErrorMessageContextKey
+	PocketRequestTokenContextKey
 )