mirror of
https://github.com/foomo/sesamy-go.git
synced 2025-10-16 12:35:43 +00:00
24 lines
576 B
Go
24 lines
576 B
Go
package mpv2
|
|
|
|
import (
|
|
"encoding/json"
|
|
|
|
"github.com/ThreeDotsLabs/watermill/message"
|
|
"github.com/foomo/sesamy-go/pkg/encoding/mpv2"
|
|
"github.com/pkg/errors"
|
|
)
|
|
|
|
func NoPublishMessageHandler(handler func(payload *mpv2.Payload[any], msg *message.Message) error) message.NoPublishHandlerFunc {
|
|
return func(msg *message.Message) error {
|
|
var payload *mpv2.Payload[any]
|
|
|
|
// unmarshal payload
|
|
if err := json.Unmarshal(msg.Payload, &payload); err != nil {
|
|
return errors.Wrap(err, "failed to unmarshal payload")
|
|
}
|
|
|
|
// handle payload
|
|
return handler(payload, msg)
|
|
}
|
|
}
|