41 lines
826 B
Go
41 lines
826 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
telegramBotApi "github.com/go-telegram-bot-api/telegram-bot-api"
|
|
)
|
|
|
|
type NotificationService interface {
|
|
Post(message string)
|
|
}
|
|
|
|
type NotificationServices []NotificationService
|
|
|
|
// Post to all Notification Services
|
|
func (notificationServices *NotificationServices) Post(message string) {
|
|
for _, notificationService := range *notificationServices {
|
|
notificationService.Post(message)
|
|
}
|
|
}
|
|
|
|
// Telegram
|
|
type Telegram struct {
|
|
userId int64
|
|
botToken string
|
|
}
|
|
|
|
func (t *Telegram) Post(message string) {
|
|
bot, err := telegramBotApi.NewBotAPI(t.botToken)
|
|
if err != nil {
|
|
fmt.Println("Failed to setup Telegram bot")
|
|
return
|
|
}
|
|
msg := telegramBotApi.NewMessage(t.userId, message)
|
|
_, err = bot.Send(msg)
|
|
if err != nil {
|
|
fmt.Println("Failed to send Telegram message")
|
|
return
|
|
}
|
|
return
|
|
}
|