diff --git a/broker/memory.go b/broker/memory.go index d1adc72c..d44073fb 100644 --- a/broker/memory.go +++ b/broker/memory.go @@ -114,8 +114,8 @@ func (m *memoryBroker) Publish(ctx context.Context, topic string, msg *Message, } type msgWrapper struct { - topic string body interface{} + topic string } func (m *memoryBroker) BatchPublish(ctx context.Context, msgs []*Message, opts ...PublishOption) error { @@ -180,7 +180,7 @@ func (m *memoryBroker) publish(ctx context.Context, vs []msgWrapper, opts ...Pub beh = sub.opts.BatchErrorHandler } if beh != nil { - beh(ms) + _ = beh(ms) } else if m.opts.Logger.V(logger.ErrorLevel) { m.opts.Logger.Error(m.opts.Context, err.Error()) } @@ -199,7 +199,7 @@ func (m *memoryBroker) publish(ctx context.Context, vs []msgWrapper, opts ...Pub eh = sub.opts.ErrorHandler } if eh != nil { - eh(p) + _ = eh(p) } else if m.opts.Logger.V(logger.ErrorLevel) { m.opts.Logger.Error(m.opts.Context, err.Error()) } diff --git a/broker/memory_test.go b/broker/memory_test.go index 8c2da4fb..fed2b8d3 100644 --- a/broker/memory_test.go +++ b/broker/memory_test.go @@ -53,6 +53,7 @@ func TestMemoryBatchBroker(t *testing.T) { t.Fatalf("Unexpected connect error %v", err) } } + func TestMemoryBroker(t *testing.T) { b := NewBroker() ctx := context.Background() diff --git a/config/config.go b/config/config.go index 32017708..534828a7 100644 --- a/config/config.go +++ b/config/config.go @@ -13,7 +13,7 @@ var DefaultConfig Config = NewConfig() // DefaultWatcherMinInterval default min interval for poll changes var DefaultWatcherMinInterval = 5 * time.Second -// DefaultWatcherMinInterval default max interval for poll changes +// DefaultWatcherMaxInterval default max interval for poll changes var DefaultWatcherMaxInterval = 9 * time.Second var ( diff --git a/config/default_test.go b/config/default_test.go index dfb4c5fb..2d1d4833 100644 --- a/config/default_test.go +++ b/config/default_test.go @@ -48,5 +48,5 @@ func TestDefault(t *testing.T) { t.Fatal("AfterLoad option not working") } _ = conf - //t.Logf("%#+v\n", conf) + // t.Logf("%#+v\n", conf) } diff --git a/flow/default.go b/flow/default.go index 47b72408..58ba7737 100644 --- a/flow/default.go +++ b/flow/default.go @@ -264,17 +264,16 @@ func (w *microWorkflow) Execute(ctx context.Context, req *Message, opts ...Execu } cherr <- serr return - } else { - if werr := stepStore.Write(ctx, filepath.Join(step.ID(), "rsp"), rsp); werr != nil { - w.opts.Logger.Errorf(ctx, "store write error: %v", werr) - cherr <- werr - return - } - if werr := stepStore.Write(ctx, filepath.Join(step.ID(), "status"), &codec.Frame{Data: []byte(StatusSuccess.String())}); werr != nil { - w.opts.Logger.Errorf(ctx, "store write error: %v", werr) - cherr <- werr - return - } + } + if werr := stepStore.Write(ctx, filepath.Join(step.ID(), "rsp"), rsp); werr != nil { + w.opts.Logger.Errorf(ctx, "store write error: %v", werr) + cherr <- werr + return + } + if werr := stepStore.Write(ctx, filepath.Join(step.ID(), "status"), &codec.Frame{Data: []byte(StatusSuccess.String())}); werr != nil { + w.opts.Logger.Errorf(ctx, "store write error: %v", werr) + cherr <- werr + return } }(cstep) wg.Wait() @@ -298,16 +297,15 @@ func (w *microWorkflow) Execute(ctx context.Context, req *Message, opts ...Execu } cherr <- serr return - } else { - if werr := stepStore.Write(ctx, filepath.Join(cstep.ID(), "rsp"), rsp); werr != nil { - w.opts.Logger.Errorf(ctx, "store write error: %v", werr) - cherr <- werr - return - } - if werr := stepStore.Write(ctx, filepath.Join(cstep.ID(), "status"), &codec.Frame{Data: []byte(StatusSuccess.String())}); werr != nil { - cherr <- werr - return - } + } + if werr := stepStore.Write(ctx, filepath.Join(cstep.ID(), "rsp"), rsp); werr != nil { + w.opts.Logger.Errorf(ctx, "store write error: %v", werr) + cherr <- werr + return + } + if werr := stepStore.Write(ctx, filepath.Join(cstep.ID(), "status"), &codec.Frame{Data: []byte(StatusSuccess.String())}); werr != nil { + cherr <- werr + return } } } @@ -337,17 +335,14 @@ func (w *microWorkflow) Execute(ctx context.Context, req *Message, opts ...Execu if werr := workflowStore.Write(w.opts.Context, "status", &codec.Frame{Data: []byte(StatusAborted.String())}); werr != nil { w.opts.Logger.Errorf(w.opts.Context, "store error: %v", werr) } - break case err == nil: if werr := workflowStore.Write(w.opts.Context, "status", &codec.Frame{Data: []byte(StatusSuccess.String())}); werr != nil { w.opts.Logger.Errorf(w.opts.Context, "store error: %v", werr) } - break case err != nil: if werr := workflowStore.Write(w.opts.Context, "status", &codec.Frame{Data: []byte(StatusFailure.String())}); werr != nil { w.opts.Logger.Errorf(w.opts.Context, "store error: %v", werr) } - break } return eid, err @@ -499,10 +494,12 @@ func (s *microCallStep) Execute(ctx context.Context, req *Message, opts ...Execu rsp := &codec.Frame{} copts := []client.CallOption{client.WithRetries(0)} if options.Timeout > 0 { - copts = append(copts, client.WithRequestTimeout(options.Timeout), client.WithDialTimeout(options.Timeout)) + copts = append(copts, + client.WithRequestTimeout(options.Timeout), + client.WithDialTimeout(options.Timeout)) } nctx := metadata.NewOutgoingContext(ctx, req.Header) - err := options.Client.Call(nctx, options.Client.NewRequest(s.service, s.method, &codec.Frame{Data: req.Body}), rsp) + err := options.Client.Call(nctx, options.Client.NewRequest(s.service, s.method, &codec.Frame{Data: req.Body}), rsp, copts...) if err != nil { return nil, err } @@ -553,7 +550,7 @@ func (s *microPublishStep) String() string { if s.opts.ID != "" { return s.opts.ID } - return fmt.Sprintf("%s", s.topic) + return s.topic } func (s *microPublishStep) Name() string { diff --git a/go.mod b/go.mod index add0d8cd..1f1d3a2b 100644 --- a/go.mod +++ b/go.mod @@ -4,11 +4,11 @@ go 1.16 require ( github.com/ef-ds/deque v1.0.4 - github.com/golang-jwt/jwt/v4 v4.0.0 + github.com/golang-jwt/jwt/v4 v4.1.0 github.com/imdario/mergo v0.3.12 github.com/patrickmn/go-cache v2.1.0+incompatible - github.com/silas/dag v0.0.0-20210121180416-41cf55125c34 + github.com/silas/dag v0.0.0-20210626123444-3804bac2d6d4 github.com/unistack-org/micro-proto v0.0.9 - golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d + golang.org/x/net v0.0.0-20210928044308-7d9f5e0b762b golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect ) diff --git a/go.sum b/go.sum index e9125772..012f9562 100644 --- a/go.sum +++ b/go.sum @@ -2,6 +2,8 @@ github.com/ef-ds/deque v1.0.4 h1:iFAZNmveMT9WERAkqLJ+oaABF9AcVQ5AjXem/hroniI= github.com/ef-ds/deque v1.0.4/go.mod h1:gXDnTC3yqvBcHbq2lcExjtAcVrOnJCbMcZXmuj8Z4tg= github.com/golang-jwt/jwt/v4 v4.0.0 h1:RAqyYixv1p7uEnocuy8P1nru5wprCh/MH2BIlW5z5/o= github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= +github.com/golang-jwt/jwt/v4 v4.1.0 h1:XUgk2Ex5veyVFVeLm0xhusUTQybEbexJXrvPNOKkSY0= +github.com/golang-jwt/jwt/v4 v4.1.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= @@ -11,10 +13,14 @@ github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaR github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= github.com/silas/dag v0.0.0-20210121180416-41cf55125c34 h1:vBfVmA5mZhsQa2jr1FOL9nfA37N/jnbBmi5XUfviVTI= github.com/silas/dag v0.0.0-20210121180416-41cf55125c34/go.mod h1:7RTUFBdIRC9nZ7/3RyRNH1bdqIShrDejd1YbLwgPS+I= +github.com/silas/dag v0.0.0-20210626123444-3804bac2d6d4 h1:fOH64AB0C3ixGf9emky61STvPJL3smxJg+1Zwx1oCdg= +github.com/silas/dag v0.0.0-20210626123444-3804bac2d6d4/go.mod h1:7RTUFBdIRC9nZ7/3RyRNH1bdqIShrDejd1YbLwgPS+I= github.com/unistack-org/micro-proto v0.0.9 h1:KrWLS4FUX7UAWNAilQf70uad6ZPf/0EudeddCXllRVc= github.com/unistack-org/micro-proto v0.0.9/go.mod h1:Cckwmzd89gvS7ThxzZp9kQR/EOdksFQcsTAtDDyKwrg= golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d h1:20cMwl2fHAzkJMEA+8J4JgqBQcQGzbisXo31MIeenXI= golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210928044308-7d9f5e0b762b h1:eB48h3HiRycXNy8E0Gf5e0hv7YT6Kt14L/D73G1fuwo= +golang.org/x/net v0.0.0-20210928044308-7d9f5e0b762b/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= diff --git a/logger/default.go b/logger/default.go index 968ed76e..a1ca3e9a 100644 --- a/logger/default.go +++ b/logger/default.go @@ -81,7 +81,7 @@ func (l *defaultLogger) Fields(fields ...interface{}) Logger { } else if len(fields)%2 != 0 { fields = fields[:len(fields)-1] } - nl.opts.Fields = append(l.opts.Fields, fields...) + nl.opts.Fields = append(nl.opts.Fields, fields...) return nl } diff --git a/logger/wrapper.go b/logger/wrapper.go index 3e8d8f46..d4a16e15 100644 --- a/logger/wrapper.go +++ b/logger/wrapper.go @@ -125,23 +125,29 @@ func getArgs(args []interface{}) []interface{} { var err error for _, arg := range args { val := reflect.ValueOf(arg) - switch val.Kind() { - case reflect.Ptr: + if val.Kind() == reflect.Ptr { val = val.Elem() } narg := arg - if val.Kind() == reflect.Struct { - if narg, err = rutil.Zero(arg); err == nil { - rutil.CopyDefaults(narg, arg) - if flds, ferr := rutil.StructFields(narg); ferr == nil { - for _, fld := range flds { - if tv, ok := fld.Field.Tag.Lookup("logger"); ok && tv == "omit" { - fld.Value.Set(reflect.Zero(fld.Value.Type())) - } - } + if val.Kind() != reflect.Struct { + nargs = append(nargs, narg) + continue + } + + if narg, err = rutil.Zero(arg); err != nil { + nargs = append(nargs, narg) + continue + } + + rutil.CopyDefaults(narg, arg) + if flds, ferr := rutil.StructFields(narg); ferr == nil { + for _, fld := range flds { + if tv, ok := fld.Field.Tag.Lookup("logger"); ok && tv == "omit" { + fld.Value.Set(reflect.Zero(fld.Value.Type())) } } } + nargs = append(nargs, narg) } return nargs diff --git a/meter/generate.go b/meter/generate.go index 30dba1db..875ed1a1 100644 --- a/meter/generate.go +++ b/meter/generate.go @@ -3,6 +3,10 @@ package meter //go:generate sh -c "protoc -I./handler -I../ -I$(go list -f '{{ .Dir }}' -m github.com/unistack-org/micro-proto) --go-micro_out='components=micro|http|server',standalone=false,debug=true,paths=source_relative:./handler handler/handler.proto" import ( + + // import required packages _ "github.com/unistack-org/micro-proto/api" + + // import required packages _ "github.com/unistack-org/micro-proto/openapiv2" ) diff --git a/meter/handler/handler_micro.pb.go b/meter/handler/handler_micro.pb.go index 513ffbb7..3e04404a 100644 --- a/meter/handler/handler_micro.pb.go +++ b/meter/handler/handler_micro.pb.go @@ -6,6 +6,7 @@ package handler import ( context "context" + api "github.com/unistack-org/micro/v3/api" codec "github.com/unistack-org/micro/v3/codec" ) diff --git a/meter/handler/handler_micro_http.pb.go b/meter/handler/handler_micro_http.pb.go index 2e9c3b73..873017de 100644 --- a/meter/handler/handler_micro_http.pb.go +++ b/meter/handler/handler_micro_http.pb.go @@ -6,6 +6,7 @@ package handler import ( context "context" + api "github.com/unistack-org/micro/v3/api" codec "github.com/unistack-org/micro/v3/codec" server "github.com/unistack-org/micro/v3/server" diff --git a/meter/meter_test.go b/meter/meter_test.go index c379e94a..df4f01b4 100644 --- a/meter/meter_test.go +++ b/meter/meter_test.go @@ -33,7 +33,7 @@ func TestBuildLabels(t *testing.T) { } data := []testData{ - testData{ + { src: []string{"zerolabel", "value3", "firstlabel", "value2"}, dst: []string{"firstlabel", "value2", "zerolabel", "value3"}, }, @@ -48,15 +48,15 @@ func TestBuildLabels(t *testing.T) { func TestBuildName(t *testing.T) { data := map[string][]string{ - `my_metric{firstlabel="value2",zerolabel="value3"}`: []string{ + `my_metric{firstlabel="value2",zerolabel="value3"}`: { "my_metric", "zerolabel", "value3", "firstlabel", "value2", }, - `my_metric{broker="broker2",register="mdns",server="tcp"}`: []string{ + `my_metric{broker="broker2",register="mdns",server="tcp"}`: { "my_metric", "broker", "broker1", "broker", "broker2", "server", "http", "server", "tcp", "register", "mdns", }, - `my_metric{aaa="aaa"}`: []string{ + `my_metric{aaa="aaa"}`: { "my_metric", "aaa", "aaa", }, diff --git a/network/tunnel/broker/broker.go b/network/tunnel/broker/broker.go index 9fd27e09..ddbe5a4d 100644 --- a/network/tunnel/broker/broker.go +++ b/network/tunnel/broker/broker.go @@ -82,7 +82,7 @@ func (t *tunBroker) BatchPublish(ctx context.Context, msgs []*broker.Message, op topic, _ := msg.Header.Get(metadata.HeaderTopic) c, ok := topicMap[topic] if !ok { - c, err := t.tunnel.Dial(ctx, topic, tunnel.DialMode(tunnel.Multicast)) + c, err = t.tunnel.Dial(ctx, topic, tunnel.DialMode(tunnel.Multicast)) if err != nil { return err } diff --git a/profiler/pprof/pprof.go b/profiler/pprof/pprof.go index 83592e69..febd60ef 100644 --- a/profiler/pprof/pprof.go +++ b/profiler/pprof/pprof.go @@ -31,7 +31,7 @@ func (p *profiler) writeHeap(f *os.File) { select { case <-t.C: runtime.GC() - pprof.WriteHeapProfile(f) + _ = pprof.WriteHeapProfile(f) case <-p.exit: return } diff --git a/router/dns.go b/router/dns.go index 4f535dd4..19f21723 100644 --- a/router/dns.go +++ b/router/dns.go @@ -40,8 +40,9 @@ func (d *dns) Lookup(opts ...QueryOption) ([]Route, error) { // check to see if we have the port provided in the service, e.g. go-micro-srv-foo:8000 host, port, err := net.SplitHostPort(options.Service) if err == nil { + var ips []string // lookup the service using A records - ips, err := net.LookupHost(host) + ips, err = net.LookupHost(host) if err != nil { return nil, err } diff --git a/server/generate.go b/server/generate.go index ceeb64cf..11499a70 100644 --- a/server/generate.go +++ b/server/generate.go @@ -3,6 +3,10 @@ package server //go:generate sh -c "protoc -I./health -I../ -I$(go list -f '{{ .Dir }}' -m github.com/unistack-org/micro-proto) --go-micro_out='components=micro|http|server',standalone=false,debug=true,paths=source_relative:./health health/health.proto" import ( + + // import required packages _ "github.com/unistack-org/micro-proto/api" + + // import required packages _ "github.com/unistack-org/micro-proto/openapiv2" ) diff --git a/server/health/health_micro.pb.go b/server/health/health_micro.pb.go index abc56529..98a075fa 100644 --- a/server/health/health_micro.pb.go +++ b/server/health/health_micro.pb.go @@ -6,6 +6,7 @@ package health import ( context "context" + api "github.com/unistack-org/micro/v3/api" codec "github.com/unistack-org/micro/v3/codec" ) diff --git a/server/health/health_micro_http.pb.go b/server/health/health_micro_http.pb.go index 809f166a..cd5b7dcc 100644 --- a/server/health/health_micro_http.pb.go +++ b/server/health/health_micro_http.pb.go @@ -6,6 +6,7 @@ package health import ( context "context" + api "github.com/unistack-org/micro/v3/api" codec "github.com/unistack-org/micro/v3/codec" server "github.com/unistack-org/micro/v3/server" diff --git a/server/noop.go b/server/noop.go index 425b6239..458ea9f6 100644 --- a/server/noop.go +++ b/server/noop.go @@ -190,7 +190,7 @@ func (n *noopServer) Register() error { } // register the service - if err := DefaultRegisterFunc(service, config); err != nil { + if err = DefaultRegisterFunc(service, config); err != nil { return err } diff --git a/server/noop_test.go b/server/noop_test.go index 56b4877c..7b6ea3d3 100644 --- a/server/noop_test.go +++ b/server/noop_test.go @@ -20,12 +20,8 @@ type TestMessage struct { Name string } -var ( - numMsg int = 8 -) - func (h *TestHandler) SingleSubHandler(ctx context.Context, msg *codec.Frame) error { - //fmt.Printf("msg %s\n", msg.Data) + // fmt.Printf("msg %s\n", msg.Data) return nil } diff --git a/server/subscriber.go b/server/subscriber.go index 2db65d8c..06bd3ae3 100644 --- a/server/subscriber.go +++ b/server/subscriber.go @@ -11,6 +11,7 @@ import ( "unicode/utf8" "github.com/unistack-org/micro/v3/broker" + "github.com/unistack-org/micro/v3/codec" "github.com/unistack-org/micro/v3/errors" "github.com/unistack-org/micro/v3/logger" "github.com/unistack-org/micro/v3/metadata" @@ -72,7 +73,7 @@ func ValidateSubscriber(sub Subscriber) error { if argType.Kind() != reflect.Slice { return fmt.Errorf("subscriber %v dont have required signature %s", name, batchSubSig) } - if strings.Compare(fmt.Sprintf("%s", argType), "[]interface{}") == 0 { + if strings.Compare(fmt.Sprintf("%v", argType), "[]interface{}") == 0 { return fmt.Errorf("subscriber %v dont have required signaure %s", name, batchSubSig) } } @@ -244,9 +245,9 @@ func (n *noopServer) newBatchSubHandler(sb *subscriber, opts Options) broker.Bat } reqType := handler.reqType - + var cf codec.Codec for _, msg := range msgs { - cf, err := n.newCodec(msg.ContentType()) + cf, err = n.newCodec(msg.ContentType()) if err != nil { return err } diff --git a/store/options.go b/store/options.go index 80011998..26ef2fc1 100644 --- a/store/options.go +++ b/store/options.go @@ -32,8 +32,8 @@ type Options struct { Namespace string // Addrs contains store address Addrs []string - //Wrappers store wrapper that called before actual functions - //Wrappers []Wrapper + // Wrappers store wrapper that called before actual functions + // Wrappers []Wrapper } // NewOptions creates options struct diff --git a/store/wrapper.go b/store/wrapper.go index 44c2550e..bbd53dec 100644 --- a/store/wrapper.go +++ b/store/wrapper.go @@ -5,21 +5,19 @@ import ( ) // LogfFunc function used for Logf method -//type LogfFunc func(ctx context.Context, level Level, msg string, args ...interface{}) - -//type Wrapper interface { -// Logf logs message with needed level -//Logf(LogfFunc) LogfFunc -//} +// type LogfFunc func(ctx context.Context, level Level, msg string, args ...interface{}) +// type Wrapper interface { +// Logf logs message with needed level +// Logf(LogfFunc) LogfFunc +// } +// NamespaceStore wrap store with namespace type NamespaceStore struct { s Store ns string } -var ( - _ Store = &NamespaceStore{} -) +var _ Store = &NamespaceStore{} func NewNamespaceStore(s Store, ns string) Store { return &NamespaceStore{s: s, ns: ns} @@ -69,7 +67,7 @@ func (w *NamespaceStore) String() string { return w.s.String() } -//type NamespaceWrapper struct{} +// type NamespaceWrapper struct{} //func NewNamespaceWrapper() Wrapper { // return &NamespaceWrapper{} diff --git a/util/http/http_test.go b/util/http/http_test.go index 941978b5..8af11f58 100644 --- a/util/http/http_test.go +++ b/util/http/http_test.go @@ -3,6 +3,7 @@ package http import ( + "io" "net" "net/http" "testing" @@ -80,5 +81,4 @@ func TestRoundTripper(t *testing.T) { if string(b) != "hello world" { t.Fatal("response is", string(b)) } - } diff --git a/util/http/trie.go b/util/http/trie.go index 05cee6a0..d5523bca 100644 --- a/util/http/trie.go +++ b/util/http/trie.go @@ -8,9 +8,9 @@ import ( // Tree is a trie tree. type Trie struct { - rmu sync.RWMutex node *node rcache map[string]*regexp.Regexp + rmu sync.RWMutex } // node is a node of tree diff --git a/util/http/trie_test.go b/util/http/trie_test.go index 4f301681..c6cfc95c 100644 --- a/util/http/trie_test.go +++ b/util/http/trie_test.go @@ -5,6 +5,26 @@ import ( "testing" ) +func TestTrieContentType(t *testing.T) { + type handler struct { + name string + } + tr := NewTrie() + tr.Insert([]string{"application/json"}, "/v1/create/{id}", &handler{name: "test"}) + + h, _, ok := tr.Search("application/json", "/v1/create/12") + if !ok { + t.Fatalf("must be found error") + } + if h.(*handler).name != "test" { + t.Fatalf("invalid handler %v", h) + } + _, _, ok = tr.Search("text/xml", "/v1/create/12") + if ok { + t.Fatalf("must be not found error") + } +} + func TestTrieNoMatchMethod(t *testing.T) { tr := NewTrie() tr.Insert([]string{http.MethodPut}, "/v1/create/{id}", nil) diff --git a/util/reflect/struct.go b/util/reflect/struct.go index b95046c8..438d1ac2 100644 --- a/util/reflect/struct.go +++ b/util/reflect/struct.go @@ -12,10 +12,9 @@ import ( // ErrInvalidParam specifies invalid url query params var ErrInvalidParam = errors.New("invalid url query param provided") +// var timeKind = reflect.ValueOf(time.Time{}).Kind() var bracketSplitter = regexp.MustCompile(`\[|\]`) -//var timeKind = reflect.ValueOf(time.Time{}).Kind() - type StructField struct { Field reflect.StructField Value reflect.Value @@ -149,9 +148,9 @@ func StructFields(src interface{}) ([]StructField, error) { } switch val.Kind() { - //case timeKind: - //fmt.Printf("GGG\n") - //fields = append(fields, StructField{Field: fld, Value: val, Path: fld.Name}) + // case timeKind: + // fmt.Printf("GGG\n") + // fields = append(fields, StructField{Field: fld, Value: val, Path: fld.Name}) case reflect.Struct: infields, err := StructFields(val.Interface()) if err != nil { diff --git a/util/reflect/struct_test.go b/util/reflect/struct_test.go index a72f1508..413fdcd2 100644 --- a/util/reflect/struct_test.go +++ b/util/reflect/struct_test.go @@ -2,7 +2,7 @@ package reflect import ( "net/url" - "reflect" + rfl "reflect" rfl "reflect" "testing" ) diff --git a/util/token/basic/basic.go b/util/token/basic/basic.go index b0c002fd..68d3d2c7 100644 --- a/util/token/basic/basic.go +++ b/util/token/basic/basic.go @@ -45,10 +45,10 @@ func (b *Basic) Generate(acc *auth.Account, opts ...token.GenerateOption) (*toke // write to the store key, err := id.New() - if err !=nil { + if err != nil { return nil, err } - + err = b.store.Write(context.Background(), fmt.Sprintf("%v%v", StorePrefix, key), bytes, store.WriteTTL(options.Expiry)) if err != nil { return nil, err diff --git a/util/token/jwt/jwt.go b/util/token/jwt/jwt.go index f1154d43..3e567d08 100644 --- a/util/token/jwt/jwt.go +++ b/util/token/jwt/jwt.go @@ -13,7 +13,7 @@ import ( // authClaims to be encoded in the JWT type authClaims struct { Metadata metadata.Metadata `json:"metadata"` - jwt.StandardClaims + jwt.RegisteredClaims Type string `json:"type"` Scopes []string `json:"scopes"` } @@ -50,10 +50,10 @@ func (j *JWT) Generate(acc *auth.Account, opts ...token.GenerateOption) (*token. // generate the JWT expiry := time.Now().Add(options.Expiry) t := jwt.NewWithClaims(jwt.SigningMethodRS256, authClaims{ - Type: acc.Type, Scopes: acc.Scopes, Metadata: acc.Metadata, StandardClaims: jwt.StandardClaims{ + Type: acc.Type, Scopes: acc.Scopes, Metadata: acc.Metadata, RegisteredClaims: jwt.RegisteredClaims{ Subject: acc.ID, Issuer: acc.Issuer, - ExpiresAt: expiry.Unix(), + ExpiresAt: jwt.NewNumericDate(expiry), }, }) tok, err := t.SignedString(key)