Files
flagger/pkg/notifier/factory.go
2020-02-10 18:23:34 +02:00

33 lines
694 B
Go

package notifier
import "fmt"
type Factory struct {
URL string
Username string
Channel string
}
func NewFactory(URL string, username string, channel string) *Factory {
return &Factory{
URL: URL,
Channel: channel,
Username: username,
}
}
func (f Factory) Notifier(provider string) (Interface, error) {
switch {
case provider == "slack":
return NewSlack(f.URL, f.Username, f.Channel)
case provider == "discord":
return NewDiscord(f.URL, f.Username, f.Channel)
case provider == "rocket":
return NewRocket(f.URL, f.Username, f.Channel)
case provider == "msteams":
return NewMSTeams(f.URL)
}
return nil, fmt.Errorf("provider %s not supported", provider)
}