2019-11-16 15:06:34 +00:00
|
|
|
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)
|
2019-11-16 22:55:56 +00:00
|
|
|
Publish("notify.error", Data{"msg": msg})
|
2019-11-16 15:06:34 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func Success(msg string) {
|
|
|
|
log.Info(msg)
|
2019-11-16 22:55:56 +00:00
|
|
|
Publish("notify.success", Data{"msg": msg})
|
2019-11-16 15:06:34 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func Info(msg string) {
|
|
|
|
log.Info(msg)
|
2019-11-16 22:55:56 +00:00
|
|
|
Publish("notify.info", Data{"msg": msg})
|
2019-11-16 15:06:34 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func Warning(msg string) {
|
|
|
|
log.Warn(msg)
|
2019-11-16 22:55:56 +00:00
|
|
|
Publish("notify.warning", Data{"msg": msg})
|
2019-11-16 15:06:34 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
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)
|
|
|
|
}
|