sojuboy/internal/notifier/pushover.go

40 lines
818 B
Go
Raw Normal View History

package notifier
import (
"context"
"strings"
"github.com/gregdel/pushover"
)
type PushoverNotifier struct {
app *pushover.Pushover
userKey string
}
func NewPushover(userKey, apiToken string) *PushoverNotifier {
return &PushoverNotifier{
app: pushover.New(apiToken),
userKey: userKey,
}
}
func (p *PushoverNotifier) Notify(ctx context.Context, title, message string) error {
if p == nil || p.app == nil || p.userKey == "" {
return nil
}
if len(message) > 1024 {
message = message[:1024]
}
title = strings.TrimSpace(title)
msg := &pushover.Message{
Title: title,
Message: message,
}
recipient := pushover.NewRecipient(p.userKey)
_, err := p.app.SendMessage(msg, recipient)
return err
}