From 677949c8b8de3a8b2f1f0021ab09bdfc075f321e Mon Sep 17 00:00:00 2001 From: Vasiliy Tolstov Date: Thu, 30 Sep 2021 01:40:49 +0300 Subject: [PATCH] update for latest micro Signed-off-by: Vasiliy Tolstov --- env.go | 48 +++++++++++++++++++++--------------------------- go.mod | 2 +- go.sum | 13 +++++++------ 3 files changed, 29 insertions(+), 34 deletions(-) diff --git a/env.go b/env.go index d7e86db..cd5d476 100644 --- a/env.go +++ b/env.go @@ -13,9 +13,7 @@ import ( rutil "github.com/unistack-org/micro/v3/util/reflect" ) -var ( - DefaultStructTag = "env" -) +var DefaultStructTag = "env" type envConfig struct { opts config.Options @@ -33,10 +31,8 @@ func (c *envConfig) Init(opts ...config.Option) error { } func (c *envConfig) Load(ctx context.Context, opts ...config.LoadOption) error { - for _, fn := range c.opts.BeforeLoad { - if err := fn(ctx, c); err != nil && !c.opts.AllowFail { - return err - } + if err := config.DefaultBeforeLoad(ctx, c); err != nil { + return err } options := config.NewLoadOptions(opts...) @@ -50,23 +46,22 @@ func (c *envConfig) Load(ctx context.Context, opts ...config.LoadOption) error { src, err := rutil.Zero(c.opts.Struct) if err == nil { - err = fillValues(ctx, reflect.ValueOf(src), c.opts.StructTag) - } - if err != nil && !c.opts.AllowFail { - return err + if err = fillValues(ctx, reflect.ValueOf(src), c.opts.StructTag); err == nil { + err = mergo.Merge(c.opts.Struct, src, mopts...) + } } - err = mergo.Merge(c.opts.Struct, src, mopts...) - if err != nil && !c.opts.AllowFail { - return err - } - - for _, fn := range c.opts.AfterLoad { - if err := fn(ctx, c); err != nil && !c.opts.AllowFail { + if err != nil { + c.opts.Logger.Errorf(c.opts.Context, "env load err: %v", err) + if !c.opts.AllowFail { return err } } + if err := config.DefaultAfterLoad(ctx, c); err != nil { + return err + } + return nil } @@ -301,22 +296,21 @@ func fillValues(ctx context.Context, valueOf reflect.Value, structTag string) er } func (c *envConfig) Save(ctx context.Context, opts ...config.SaveOption) error { - for _, fn := range c.opts.BeforeSave { - if err := fn(ctx, c); err != nil && !c.opts.AllowFail { - return err - } - } - - if err := c.setValues(ctx, reflect.ValueOf(c.opts.Struct)); err != nil && !c.opts.AllowFail { + if err := config.DefaultBeforeSave(ctx, c); err != nil { return err } - for _, fn := range c.opts.AfterSave { - if err := fn(ctx, c); err != nil && !c.opts.AllowFail { + if err := c.setValues(ctx, reflect.ValueOf(c.opts.Struct)); err != nil { + c.opts.Logger.Errorf(c.opts.Context, "env save error: %v", err) + if !c.opts.AllowFail { return err } } + if err := config.DefaultAfterSave(ctx, c); err != nil { + return err + } + return nil } diff --git a/go.mod b/go.mod index 116aa5c..a76d008 100644 --- a/go.mod +++ b/go.mod @@ -4,5 +4,5 @@ go 1.16 require ( github.com/imdario/mergo v0.3.12 - github.com/unistack-org/micro/v3 v3.7.4 + github.com/unistack-org/micro/v3 v3.7.6 ) diff --git a/go.sum b/go.sum index 0b44a67..d9f62fe 100644 --- a/go.sum +++ b/go.sum @@ -1,24 +1,25 @@ github.com/ef-ds/deque v1.0.4/go.mod h1:gXDnTC3yqvBcHbq2lcExjtAcVrOnJCbMcZXmuj8Z4tg= -github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= +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= github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU= github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= -github.com/silas/dag v0.0.0-20210121180416-41cf55125c34/go.mod h1:7RTUFBdIRC9nZ7/3RyRNH1bdqIShrDejd1YbLwgPS+I= +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= -github.com/unistack-org/micro/v3 v3.7.4 h1:nRk7f58v0VsiW7aKL0UQaFCQxFoursHQLoWdeZ1RYbg= -github.com/unistack-org/micro/v3 v3.7.4/go.mod h1:78vy7ggElJD+ayx8ruhJsY+SkGUupfR32LXrg1UObvg= -golang.org/x/net v0.0.0-20210510120150-4163338589ed/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +github.com/unistack-org/micro/v3 v3.7.6 h1:cobNkaicZR+8nbDWRUmX3/CSLh6ZNSytK2zWth4s4IM= +github.com/unistack-org/micro/v3 v3.7.6/go.mod h1:Ke/8WJlNZi4ZYwL9HcsANAbQ66/HocTBEZM+od99/mM= +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= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=