View datapoint values

This commit is contained in:
Magnus Åhall 2024-05-05 20:16:28 +02:00
parent 5f6a48e7e0
commit d72694a8b4
14 changed files with 288 additions and 28 deletions

View file

@ -13,7 +13,7 @@ type Service interface {
SetLogger(*slog.Logger)
GetPrio() int
GetType() string
Send(string, []byte) error
Send(int, []byte) error
}
type Manager struct {
@ -40,20 +40,22 @@ func (nm *Manager) AddService(service Service) {
})
}
func (nm *Manager) Send(uuid string, msg []byte) (err error) {
for _, service := range nm.services {
func (nm *Manager) Send(problemID int, msg []byte, fn func(*Service, error)) (err error) {
for i, service := range nm.services {
nm.logger.Info("notification", "service", service.GetType(), "prio", service.GetPrio())
if err = service.Send(uuid, msg); err == nil {
if err = service.Send(problemID, msg); err == nil {
fn(&nm.services[i], nil)
break
} else {
data := struct {
UUID string
ProblemID int
Msg []byte
}{
uuid,
problemID,
msg,
}
werr.Wrap(err).WithData(data).Log()
fn(&nm.services[i], err)
}
}