fix: solve lint error,implement error

This commit is contained in:
weloe
2023-05-02 19:45:46 +08:00
parent c04ab085b4
commit 4479cccf73
3 changed files with 14 additions and 11 deletions

View File

@@ -17,7 +17,7 @@ func TestHttpContext_IsValidContext(t *testing.T) {
} }
request, err := http.NewRequest("GET", "https://baidu.com", strings.NewReader("")) request, err := http.NewRequest("GET", "https://baidu.com", strings.NewReader(""))
if err != nil { if err != nil {
t.Error(err)
} }
tests := []struct { tests := []struct {
name string name string
@@ -126,7 +126,7 @@ func TestHttpReqStorage_Delete(t *testing.T) {
r := HttpReqStorage{ r := HttpReqStorage{
source: tt.fields.source, source: tt.fields.source,
} }
r.Delete(tt.args.key) r.Delete(ctx.StorageKey(tt.args.key))
}) })
} }
} }
@@ -151,7 +151,7 @@ func TestHttpReqStorage_Get(t *testing.T) {
r := HttpReqStorage{ r := HttpReqStorage{
source: tt.fields.source, source: tt.fields.source,
} }
if got := r.Get(tt.args.key); !reflect.DeepEqual(got, tt.want) { if got := r.Get(ctx.StorageKey(tt.args.key)); !reflect.DeepEqual(got, tt.want) {
t.Errorf("Get() = %v, want %v", got, tt.want) t.Errorf("Get() = %v, want %v", got, tt.want)
} }
}) })
@@ -178,7 +178,7 @@ func TestHttpReqStorage_Set(t *testing.T) {
r := HttpReqStorage{ r := HttpReqStorage{
source: tt.fields.source, source: tt.fields.source,
} }
r.Set(tt.args.key, tt.args.value) r.Set(ctx.StorageKey(tt.args.key), tt.args.value)
}) })
} }
} }

View File

@@ -2,6 +2,7 @@ package go_http_context
import ( import (
"context" "context"
"github.com/weloe/token-go/ctx"
"net/http" "net/http"
) )
@@ -13,18 +14,18 @@ func NewReqStorage(req *http.Request) *HttpReqStorage {
return &HttpReqStorage{source: req.Context()} return &HttpReqStorage{source: req.Context()}
} }
func (r HttpReqStorage) Source() interface{} { func (r *HttpReqStorage) Source() interface{} {
return r.source return r.source
} }
func (r HttpReqStorage) Get(key string) interface{} { func (r *HttpReqStorage) Get(key ctx.StorageKey) interface{} {
return r.source.Value(key) return r.source.Value(key)
} }
func (r HttpReqStorage) Set(key string, value string) { func (r *HttpReqStorage) Set(key ctx.StorageKey, value string) {
r.source = context.WithValue(r.source, key, value) r.source = context.WithValue(r.source, key, value)
} }
func (r HttpReqStorage) Delete(key string) { func (r *HttpReqStorage) Delete(key ctx.StorageKey) {
r.source = context.WithValue(r.source, key, nil) r.source = context.WithValue(r.source, key, nil)
} }

View File

@@ -1,10 +1,12 @@
package ctx package ctx
type StorageKey string
// ReqStorage // ReqStorage
// Use to set-get-delete data,and it'll be cleaned after request // Use to set-get-delete data,and it'll be cleaned after request
type ReqStorage interface { type ReqStorage interface {
Source() interface{} Source() interface{}
Get(key string) interface{} Get(key StorageKey) interface{}
Set(key string, value string) Set(key StorageKey, value string)
Delete(key string) Delete(key StorageKey)
} }