mirror of
https://github.com/SourceFellows/trainingfellow.git
synced 2024-10-22 13:47:12 +00:00
35 lines
739 B
Go
35 lines
739 B
Go
package nats
|
|
|
|
import (
|
|
log "github.com/sirupsen/logrus"
|
|
|
|
"github.com/nats-io/nats.go"
|
|
"training-fellow.de/registrierung"
|
|
)
|
|
|
|
func NewNotifier(url string) *notifier {
|
|
return ¬ifier{url}
|
|
}
|
|
|
|
type notifier struct {
|
|
url string
|
|
}
|
|
|
|
func (nn *notifier) InformAboutNewRegistrierung(registrierung *registrierung.Registrierung) error {
|
|
|
|
notifierLogger := log.WithField("Registrierung", registrierung)
|
|
notifierLogger.Info("Inform about new Registrierung")
|
|
|
|
nc, err := nats.Connect(nn.url)
|
|
if err != nil {
|
|
notifierLogger.Error("Could not connect to server: ", err)
|
|
return err
|
|
}
|
|
defer nc.Close()
|
|
c, _ := nats.NewEncodedConn(nc, nats.JSON_ENCODER)
|
|
defer c.Close()
|
|
|
|
return c.Publish("traingfellow.registrierung.neu", registrierung)
|
|
|
|
}
|