package main
import (
"log"
"strconv"
"time"
notification "imuslab.com/arozos/mod/notification"
"imuslab.com/arozos/mod/notification/agents/smtpn"
)
var notificationQueue *notification.NotificationQueue
func notificationInit() {
//Create a new notification agent
notificationQueue = notification.NewNotificationQueue()
//Register the notification agents
//SMTP Mail Sender
//Load configuration from database
//Load username and their email from authAgent
userEmailmap := map[string]string{}
allRecords := registerHandler.ListAllUserEmails()
for _, userRercord := range allRecords {
if userRercord[2].(bool) {
userEmailmap[userRercord[0].(string)] = userRercord[1].(string)
}
}
log.Println(userEmailmap)
smtpAgent := smtpn.Agent{
Hostname: *host_name,
SMTPSender: "noreply@arozos.com",
SMTPPassword: "noreplypassword",
SMTPDomain: "mail.gandi.net",
SMTPPort: 587,
UsernameToEmailMap: userEmailmap,
}
notificationQueue.RegisterNotificationAgent(smtpAgent)
//Create and register other notification agents
go func() {
time.Sleep(10 * time.Second)
return
notificationQueue.BroadcastNotification(¬ification.NotificationPayload{
ID: strconv.Itoa(int(time.Now().Unix())),
Title: "Disk SMART Error",
Message: "This is a testing notification for showcasing a sample email when DISK SMART error was scanned and discovered.
Please visit here for more information.",
Receiver: []string{"TC"},
Sender: "SMART Nightly Scanner",
ReciverAgents: []string{"smtpn"},
})
}()
}