Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 18 |
1 files changed, 18 insertions, 0 deletions
@@ -11,6 +11,7 @@ import ( "github.com/SayaAndy/saya-today-web/config" "github.com/SayaAndy/saya-today-web/internal/b2" + "github.com/SayaAndy/saya-today-web/internal/blogtrigger" "github.com/SayaAndy/saya-today-web/internal/factgiver" "github.com/SayaAndy/saya-today-web/internal/glightbox" "github.com/SayaAndy/saya-today-web/internal/mailer" @@ -152,10 +153,24 @@ func main() { os.Exit(1) } + router.BlogTrigger, err = blogtrigger.NewBlogTriggerScheduler(b2Client, cfg.AvailableLanguages, cfg.Mail.Trigger.OnNewPost, func(bp []*b2.BlogPage) error { + for _, post := range bp { + if err := router.Mailer.NewPost(post); err != nil { + return err + } + } + return nil + }) + if err != nil { + slog.Error("fail to initialize blog trigger", slog.String("error", err.Error())) + os.Exit(1) + } + app.Get("/", router.Api_V1_GeneralPage(localization, availableLanguages)) app.Get("/:lang<len(2)>", router.Api_V1_GeneralPage(localization, availableLanguages)) app.Get("/:lang/map", router.Lang_Map(localization, availableLanguages, b2Client)) app.Get("/:lang/user", router.Api_V1_GeneralPage(localization, availableLanguages)) + app.Get("/:lang/user/unsubscribe", router.Lang_User_Unsubscribe(localization, availableLanguages)) app.Get("/:lang/blog", router.Api_V1_GeneralPage(localization, availableLanguages)) app.Get("/:lang/blog/:title", router.Api_V1_GeneralPage(localization, availableLanguages)) @@ -187,6 +202,9 @@ func main() { <-sigChan slog.Info("gracefully shutting down...") + if err = router.BlogTrigger.Close(); err != nil { + slog.Error("fail to shutdown blog trigger scheduler", slog.String("error", err.Error())) + } if err = app.Shutdown(); err != nil { slog.Error("fail to shutdown fiber server", slog.String("error", err.Error())) } |