api/pkg/audit/sink/generic_sink.go
Peter Kurfer 2d97beaf70
Refactor gRPC sink
- rename it to GenericSink
- add tests
- update dependencies
- improve test step to always get a report
- add NoOpSink for tests
2021-01-27 13:31:51 +01:00

33 lines
635 B
Go

package sink
import (
"gitlab.com/inetmock/inetmock/pkg/audit"
)
func NewNoOpSink(name string) audit.Sink {
return NewGenericSink(name, func(_ audit.Event) {})
}
func NewGenericSink(name string, consumer func(ev audit.Event)) audit.Sink {
return &genericSink{
name: name,
consumer: consumer,
}
}
type genericSink struct {
name string
consumer func(ev audit.Event)
}
func (g genericSink) Name() string {
return g.name
}
func (g genericSink) OnSubscribe(evs <-chan audit.Event) {
go func(consumer func(ev audit.Event), evs <-chan audit.Event) {
for ev := range evs {
consumer(ev)
}
}(g.consumer, evs)
}