photoprism/internal/event/hub.go
Michael Mayer 2c3d6070cc Code clean-up: Rename alert to notify
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2019-11-16 23:55:56 +01:00

62 lines
1 KiB
Go

package event
import (
"github.com/leandro-lugaresi/hub"
"github.com/sirupsen/logrus"
)
type Hub = hub.Hub
type Data = hub.Fields
type Message = hub.Message
var log *logrus.Logger
var channelCap = 10
var sharedHub = NewHub()
func init() {
log = logrus.StandardLogger()
}
func NewHub () *Hub {
return hub.New()
}
func SharedHub() *Hub {
return sharedHub
}
func Error(msg string) {
log.Error(msg)
Publish("notify.error", Data{"msg": msg})
}
func Success(msg string) {
log.Info(msg)
Publish("notify.success", Data{"msg": msg})
}
func Info(msg string) {
log.Info(msg)
Publish("notify.info", Data{"msg": msg})
}
func Warning(msg string) {
log.Warn(msg)
Publish("notify.warning", Data{"msg": msg})
}
func Publish (event string, data Data) {
log.Infof("publish %s: %v", event, data)
SharedHub().Publish(Message{
Name: event,
Fields: data,
})
}
func Subscribe(topics ...string) hub.Subscription {
return SharedHub().Subscribe(channelCap, topics...)
}
func Unsubscribe(s hub.Subscription) {
SharedHub().Unsubscribe(s)
}