1
0
mirror of https://github.com/StackExchange/dnscontrol.git synced 2024-05-11 05:55:12 +00:00

Simple notification framework (#297)

* bonfire notifications working

* make interface to make more extensible

* some docs

* typo

* rename typo
This commit is contained in:
Craig Peterson
2018-01-11 11:15:19 -05:00
committed by GitHub
parent 91e2cf67ef
commit 9dbd4a3066
6 changed files with 148 additions and 7 deletions

View File

@@ -0,0 +1,33 @@
package notifications
import (
"fmt"
"net/http"
"strings"
)
func init() {
initers = append(initers, func(cfg map[string]string) Notifier {
if url, ok := cfg["bonfire_url"]; ok {
return bonfireNotifier(url)
}
return nil
})
}
// bonfire notifier for stack exchange internal chat. String is just url with room and token in it
type bonfireNotifier string
func (b bonfireNotifier) Notify(domain, provider, msg string, err error, preview bool) {
var payload string
if preview {
payload = fmt.Sprintf(`**Preview: %s[%s] -** %s`, domain, provider, msg)
} else if err != nil {
payload = fmt.Sprintf(`**ERROR running correction on %s[%s] -** (%s) Error: %s`, domain, provider, msg, err)
} else {
payload = fmt.Sprintf(`Successfully ran correction for %s[%s] - %s`, domain, provider, msg)
}
http.Post(string(b), "text/markdown", strings.NewReader(payload))
}
func (b bonfireNotifier) Done() {}