33 lines
711 B
Go
33 lines
711 B
Go
package notification
|
|
|
|
import (
|
|
// External
|
|
werr "git.gibonuddevalla.se/go/wrappederror"
|
|
|
|
// Standard
|
|
"log/slog"
|
|
)
|
|
|
|
func ServiceFactory(t string, config []byte, prio int, ackURL string, logger *slog.Logger) (Service, error) {
|
|
switch t {
|
|
case "NTFY":
|
|
ntfy, err := NewNTFY(config, prio, ackURL)
|
|
if err != nil {
|
|
err = werr.Wrap(err).WithData(config)
|
|
return nil, err
|
|
}
|
|
ntfy.SetLogger(logger)
|
|
return ntfy, nil
|
|
case "SCRIPT":
|
|
script, err := NewScript(config, prio, ackURL)
|
|
if err != nil {
|
|
err = werr.Wrap(err).WithData(config)
|
|
return nil, err
|
|
}
|
|
script.SetLogger(logger)
|
|
return script, nil
|
|
}
|
|
|
|
return nil, werr.New("Unknown notification service, '%s'", t).WithCode("002-0000")
|
|
}
|