-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathevent.go
45 lines (42 loc) · 1.17 KB
/
event.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package watermill
import (
"github.com/ThreeDotsLabs/watermill"
"github.com/ThreeDotsLabs/watermill/components/cqrs"
"github.com/ThreeDotsLabs/watermill/message"
)
func newEventBus(
logger watermill.LoggerAdapter,
marshaler cqrs.CommandEventMarshaler,
publisher message.Publisher,
) (*cqrs.EventBus, error) {
return cqrs.NewEventBusWithConfig(
publisher,
cqrs.EventBusConfig{
Logger: logger,
Marshaler: marshaler,
GeneratePublishTopic: func(params cqrs.GenerateEventPublishTopicParams) (string, error) {
return params.EventName, nil
},
},
)
}
func newEventProcessor(
logger watermill.LoggerAdapter,
marshaler cqrs.CommandEventMarshaler,
router *message.Router,
subscriber message.Subscriber,
) (*cqrs.EventProcessor, error) {
return cqrs.NewEventProcessorWithConfig(
router,
cqrs.EventProcessorConfig{
Logger: logger,
Marshaler: marshaler,
GenerateSubscribeTopic: func(params cqrs.EventProcessorGenerateSubscribeTopicParams) (string, error) {
return params.EventName, nil
},
SubscriberConstructor: func(params cqrs.EventProcessorSubscriberConstructorParams) (message.Subscriber, error) {
return subscriber, nil
},
},
)
}