allow to override Struct on Save #126

Merged
vtolstov merged 1 commits from fix into v3 2023-03-15 00:03:56 +03:00

View File

@ -157,13 +157,18 @@ func (c *consulConfig) Save(ctx context.Context, opts ...config.SaveOption) erro
path := c.path path := c.path
dst := c.opts.Struct
if options.Struct != nil {
dst = options.Struct
}
if options.Context != nil { if options.Context != nil {
if v, ok := options.Context.Value(pathKey{}).(string); ok && v != "" { if v, ok := options.Context.Value(pathKey{}).(string); ok && v != "" {
path = v path = v
} }
} }
buf, err := c.opts.Codec.Marshal(c.opts.Struct) buf, err := c.opts.Codec.Marshal(dst)
if err == nil { if err == nil {
_, err = c.cli.KV().Put(&api.KVPair{Key: path, Value: buf}, nil) _, err = c.cli.KV().Put(&api.KVPair{Key: path, Value: buf}, nil)
} }