28 lines
629 B
Go
28 lines
629 B
Go
package micro
|
|
|
|
import (
|
|
"context"
|
|
|
|
"go.unistack.org/micro/v3/client"
|
|
)
|
|
|
|
// Event is used to publish messages to a topic
|
|
type Event interface {
|
|
// Publish publishes a message to the event topic
|
|
Publish(ctx context.Context, msg interface{}, opts ...client.PublishOption) error
|
|
}
|
|
|
|
type event struct {
|
|
c client.Client
|
|
topic string
|
|
}
|
|
|
|
// NewEvent creates a new event publisher
|
|
func NewEvent(topic string, c client.Client) Event {
|
|
return &event{c, topic}
|
|
}
|
|
|
|
func (e *event) Publish(ctx context.Context, msg interface{}, opts ...client.PublishOption) error {
|
|
return e.c.Publish(ctx, e.c.NewMessage(e.topic, msg), opts...)
|
|
}
|