mirror of
https://github.com/foomo/sesamy-go.git
synced 2025-10-16 12:35:43 +00:00
feat: add metadata func option
This commit is contained in:
parent
3a414aba79
commit
70b8a970c5
@ -18,11 +18,12 @@ import (
|
|||||||
|
|
||||||
type (
|
type (
|
||||||
Subscriber struct {
|
Subscriber struct {
|
||||||
l *zap.Logger
|
l *zap.Logger
|
||||||
uuidFunc func() string
|
uuidFunc func() string
|
||||||
messages chan *message.Message
|
messages chan *message.Message
|
||||||
middlewares []SubscriberMiddleware
|
metadataFunc func(r *http.Request) map[string]string
|
||||||
closed bool
|
middlewares []SubscriberMiddleware
|
||||||
|
closed bool
|
||||||
}
|
}
|
||||||
SubscriberOption func(*Subscriber)
|
SubscriberOption func(*Subscriber)
|
||||||
SubscriberHandler func(l *zap.Logger, r *http.Request, payload *gtag.Payload) error
|
SubscriberHandler func(l *zap.Logger, r *http.Request, payload *gtag.Payload) error
|
||||||
@ -39,6 +40,12 @@ func SubscriberWithUUIDFunc(v func() string) SubscriberOption {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func SubscriberWithMetadataFunc(v func(r *http.Request) map[string]string) SubscriberOption {
|
||||||
|
return func(o *Subscriber) {
|
||||||
|
o.metadataFunc = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func SubscriberWithMiddlewares(v ...SubscriberMiddleware) SubscriberOption {
|
func SubscriberWithMiddlewares(v ...SubscriberMiddleware) SubscriberOption {
|
||||||
return func(o *Subscriber) {
|
return func(o *Subscriber) {
|
||||||
o.middlewares = append(o.middlewares, v...)
|
o.middlewares = append(o.middlewares, v...)
|
||||||
@ -141,6 +148,12 @@ func (s *Subscriber) handle(l *zap.Logger, r *http.Request, payload *gtag.Payloa
|
|||||||
msg.Metadata.Set(name, strings.Join(headers, ","))
|
msg.Metadata.Set(name, strings.Join(headers, ","))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if s.metadataFunc != nil {
|
||||||
|
for k, v := range s.metadataFunc(r) {
|
||||||
|
msg.Metadata.Set(k, v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for k, v := range msg.Metadata {
|
for k, v := range msg.Metadata {
|
||||||
l = l.With(zap.String(k, v))
|
l = l.With(zap.String(k, v))
|
||||||
}
|
}
|
||||||
|
|||||||
@ -15,11 +15,12 @@ import (
|
|||||||
|
|
||||||
type (
|
type (
|
||||||
Subscriber struct {
|
Subscriber struct {
|
||||||
l *zap.Logger
|
l *zap.Logger
|
||||||
uuidFunc func() string
|
uuidFunc func() string
|
||||||
messages chan *message.Message
|
messages chan *message.Message
|
||||||
middlewares []SubscriberMiddleware
|
metadataFunc func(r *http.Request) map[string]string
|
||||||
closed bool
|
middlewares []SubscriberMiddleware
|
||||||
|
closed bool
|
||||||
}
|
}
|
||||||
SubscriberOption func(*Subscriber)
|
SubscriberOption func(*Subscriber)
|
||||||
SubscriberHandler func(l *zap.Logger, r *http.Request, payload *mpv2.Payload[any]) error
|
SubscriberHandler func(l *zap.Logger, r *http.Request, payload *mpv2.Payload[any]) error
|
||||||
@ -36,6 +37,11 @@ func SubscriberWithUUIDFunc(v func() string) SubscriberOption {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func SubscriberWithMetadataFunc(v func(r *http.Request) map[string]string) SubscriberOption {
|
||||||
|
return func(o *Subscriber) {
|
||||||
|
o.metadataFunc = v
|
||||||
|
}
|
||||||
|
}
|
||||||
func SubscriberWithMiddlewares(v ...SubscriberMiddleware) SubscriberOption {
|
func SubscriberWithMiddlewares(v ...SubscriberMiddleware) SubscriberOption {
|
||||||
return func(o *Subscriber) {
|
return func(o *Subscriber) {
|
||||||
o.middlewares = append(o.middlewares, v...)
|
o.middlewares = append(o.middlewares, v...)
|
||||||
@ -116,6 +122,12 @@ func (s *Subscriber) handle(l *zap.Logger, r *http.Request, payload *mpv2.Payloa
|
|||||||
msg.Metadata.Set(name, strings.Join(headers, ","))
|
msg.Metadata.Set(name, strings.Join(headers, ","))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if s.metadataFunc != nil {
|
||||||
|
for k, v := range s.metadataFunc(r) {
|
||||||
|
msg.Metadata.Set(k, v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for k, v := range msg.Metadata {
|
for k, v := range msg.Metadata {
|
||||||
l = l.With(zap.String(k, v))
|
l = l.With(zap.String(k, v))
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user