diff --git a/notifiers/statping_emailer.go b/notifiers/statping_emailer.go deleted file mode 100644 index c6026c0e..00000000 --- a/notifiers/statping_emailer.go +++ /dev/null @@ -1,106 +0,0 @@ -package notifiers - -import ( - "bytes" - "encoding/json" - "github.com/statping-ng/statping-ng/types/core" - "github.com/statping-ng/statping-ng/types/failures" - "github.com/statping-ng/statping-ng/types/notifications" - "github.com/statping-ng/statping-ng/types/notifier" - "github.com/statping-ng/statping-ng/types/services" - "github.com/statping-ng/statping-ng/utils" - "time" -) - -var _ notifier.Notifier = (*statpingEmailer)(nil) - -const ( - statpingEmailerName = "statping_emailer" - statpingEmailerHost = "https://news.statping.com" -) - -type statpingEmailer struct { - *notifications.Notification -} - -func (s *statpingEmailer) Select() *notifications.Notification { - return s.Notification -} - -func (s *statpingEmailer) Valid(values notifications.Values) error { - return nil -} - -var statpingMailer = &statpingEmailer{¬ifications.Notification{ - Method: statpingEmailerName, - Title: "Email", - Description: "Send an email when a service becomes offline or back online using Statping's email service. You will need to verify your email address.", - Author: "Hunter Long", - AuthorUrl: "https://github.com/hunterlong", - Delay: time.Duration(10 * time.Second), - Icon: "fas envelope-square", - Limits: 60, - Form: []notifications.NotificationForm{{ - Type: "email", - Title: "Send to Email Address", - Placeholder: "info@statping.com", - DbField: "Host", - Required: true, - }}}, -} - -// Send will send a HTTP Post to the slack webhooker API. It accepts type: string -func (s *statpingEmailer) sendStatpingEmail(msg statpingMail) (string, error) { - data, _ := json.Marshal(msg) - resp, _, err := utils.HttpRequest(statpingEmailerHost+"/notifier", "POST", "application/json", nil, bytes.NewBuffer(data), time.Duration(10*time.Second), true, nil) - if err != nil { - return "", err - } - return string(resp), nil -} - -func (s *statpingEmailer) OnTest() (string, error) { - return "", nil -} - -type statpingMail struct { - Email string `json:"email"` - Core core.Core `json:"core,omitempty"` - Service services.Service `json:"service,omitempty"` - Failure failures.Failure `json:"failure,omitempty"` -} - -// OnFailure will trigger failing service -func (s *statpingEmailer) OnFailure(srv services.Service, f failures.Failure) (string, error) { - ee := statpingMail{ - Email: s.Host.String, - Core: *core.App, - Service: srv, - Failure: f, - } - return s.sendStatpingEmail(ee) -} - -// OnSuccess will trigger successful service -func (s *statpingEmailer) OnSuccess(srv services.Service) (string, error) { - ee := statpingMail{ - Email: s.Host.String, - Core: *core.App, - Service: srv, - Failure: failures.Failure{}, - } - return s.sendStatpingEmail(ee) -} - -// OnSave will trigger when this notifier is saved -func (s *statpingEmailer) OnSave() (string, error) { - ee := statpingMail{ - Email: s.Host.String, - Core: *core.App, - Service: services.Service{}, - Failure: failures.Failure{}, - } - out, err := s.sendStatpingEmail(ee) - log.Println("statping emailer response", out) - return out, err -}