package main
import "github.com/Diarkis/diarkis/diarkisexec"
func main() {
logConfigPath := "/configs/shared/log.json"
meshConfigPath := ""
diarkisexec.SetupDiarkis(logConfigPath, meshConfigPath, &diarkisexec.Modules{
Notifier: &diarkisexec.Options{},
})
diarkisexec.SetupNotificationService("Notification", 60, handleNotification)
diarkisexec.SetupDiarkisUDPServer("/configs/udp/main.json")
diarkisexec.StartDiarkis()
}
func handleNotification() (*diarkisexec.Notification, error) {
// Retrieve notification data from a database by the current time
notificationData := someDatabase.GetNotificationDataByCurrentTime(year, month, date)
if notificationData == nil {
// No notification data to send out
return nil, nil
}
n := &diarkisexec.Notification{}
n.ID = notificationData.ID
n.Name = notificationData.Name
// Ver is used by the client to identify the message when received.
n.Ver = notificationData.Ver
// Cmd is used by the client to identify the message when received.
n.Cmd = notificationData.Cmd
n.Message = []byte("Notification message says 'Hello from the server'")
// TTL is in seconds to indicate the availability of the notification data.
// The notification will be available for the not-connected-clients for the duration of TTL and
// will be sent to the clients when they connect before TTL expires.
n.TTL = int64(60 * 60) // one hour
return n, nil
}