From 0dc44d54cfcc9dd3fa09a41136f35a9a8d26b994 Mon Sep 17 00:00:00 2001 From: Valery Piashchynski Date: Tue, 13 Oct 2020 13:55:20 +0300 Subject: Initial commit of RR 2.0 --- service/http/attributes/attributes.go | 76 ----------------------------------- 1 file changed, 76 deletions(-) delete mode 100644 service/http/attributes/attributes.go (limited to 'service/http/attributes/attributes.go') diff --git a/service/http/attributes/attributes.go b/service/http/attributes/attributes.go deleted file mode 100644 index 77d6ea69..00000000 --- a/service/http/attributes/attributes.go +++ /dev/null @@ -1,76 +0,0 @@ -package attributes - -import ( - "context" - "errors" - "net/http" -) - -type attrKey int - -const contextKey attrKey = iota - -type attrs map[string]interface{} - -func (v attrs) get(key string) interface{} { - if v == nil { - return "" - } - - return v[key] -} - -func (v attrs) set(key string, value interface{}) { - v[key] = value -} - -func (v attrs) del(key string) { - delete(v, key) -} - -// Init returns request with new context and attribute bag. -func Init(r *http.Request) *http.Request { - return r.WithContext(context.WithValue(r.Context(), contextKey, attrs{})) -} - -// All returns all context attributes. -func All(r *http.Request) map[string]interface{} { - v := r.Context().Value(contextKey) - if v == nil { - return attrs{} - } - - return v.(attrs) -} - -// Get gets the value from request context. It replaces any existing -// values. -func Get(r *http.Request, key string) interface{} { - v := r.Context().Value(contextKey) - if v == nil { - return nil - } - - return v.(attrs).get(key) -} - -// Set sets the key to value. It replaces any existing -// values. Context specific. -func Set(r *http.Request, key string, value interface{}) error { - v := r.Context().Value(contextKey) - if v == nil { - return errors.New("unable to find `psr:attributes` context key") - } - - v.(attrs).set(key, value) - return nil -} - -// Delete deletes values associated with attribute key. -func (v attrs) Delete(key string) { - if v == nil { - return - } - - v.del(key) -} -- cgit v1.2.3