2020-08-31 13:23:01 +00:00
|
|
|
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 {
|
2020-10-21 05:42:27 +00:00
|
|
|
notifierLogger.WithError(err).Error("Could not connect to server: ")
|
2020-08-31 13:23:01 +00:00
|
|
|
return err
|
|
|
|
}
|
|
|
|
defer nc.Close()
|
|
|
|
c, _ := nats.NewEncodedConn(nc, nats.JSON_ENCODER)
|
|
|
|
defer c.Close()
|
|
|
|
|
|
|
|
return c.Publish("traingfellow.registrierung.neu", registrierung)
|
|
|
|
|
|
|
|
}
|