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
|
||
|
}
|