diff options
Diffstat (limited to 'internal/router/handlers/root.go')
| -rw-r--r-- | internal/router/handlers/root.go | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/internal/router/handlers/root.go b/internal/router/handlers/root.go new file mode 100644 index 0000000..c8c4cd4 --- /dev/null +++ b/internal/router/handlers/root.go @@ -0,0 +1,47 @@ +package handlers + +import ( + "time" + + "github.com/SayaAndy/saya-today-web/internal/router" + "github.com/gofiber/fiber/v2" +) + +func init() { + router.Routes = append(router.Routes, &RootHandler{}) +} + +type RootHandler struct { + router.BasicHandler +} + +func (r *RootHandler) Filter() (method string, path string) { + return "GET", "/" +} + +func (r *RootHandler) IsTemplated() bool { + return true +} + +func (r *RootHandler) TemplatesToInject() []string { + return []string{"views/pages/language-pick.html"} +} + +func (r *RootHandler) ToCache() router.CacheSetting { + return router.ByUrlOnly +} + +func (r *RootHandler) CacheDuration() time.Duration { + return 24 * time.Hour +} + +func (r *RootHandler) RenderBody(c *fiber.Ctx, supplements *router.Supplements, _ string, templateMap fiber.Map) (statusCode int, err error) { + templateMap["Title"] = "Choose Your Language" + templateMap["AvailableLanguages"] = supplements.AvailableLanguages + return fiber.StatusOK, nil +} + +func (r *RootHandler) RenderHeader(c *fiber.Ctx, supplements *router.Supplements, _ string, templateMap fiber.Map) (statusCode int, err error) { + templateMap["Title"] = "Choose Your Language" + return fiber.StatusOK, nil +} |