adding PatchContext - this will create new context with original + patch metadata
This commit is contained in:
@@ -28,3 +28,17 @@ func FromContext(ctx context.Context) (Metadata, bool) {
|
||||
func NewContext(ctx context.Context, md Metadata) context.Context {
|
||||
return context.WithValue(ctx, metaKey{}, md)
|
||||
}
|
||||
|
||||
// PatchContext : will add/replace source metadata fields with given patch metadata fields
|
||||
func PatchContext(ctx context.Context, patchMd Metadata) context.Context {
|
||||
md, _ := ctx.Value(metaKey{}).(Metadata)
|
||||
cmd := make(Metadata)
|
||||
for k, v := range md {
|
||||
cmd[k] = v
|
||||
}
|
||||
for k, v := range patchMd {
|
||||
cmd[k] = v
|
||||
}
|
||||
return context.WithValue(ctx, metaKey{}, cmd)
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user