package handlers import ( "io/fs" "net/http" "git.tijl.dev/tijl/tijl.dev-core/internal/config" "git.tijl.dev/tijl/tijl.dev-core/internal/oidc" "git.tijl.dev/tijl/tijl.dev-core/modules/i18n" "git.tijl.dev/tijl/tijl.dev-core/modules/web" webf "git.tijl.dev/tijl/tijl.dev-core/web" "github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2/middleware/filesystem" ) func Setup() { LoadPosts() web.RegisterAppSetupFunc(routes, 100) web.RegisterAppSetupFunc(last, 0) } func routes(app *fiber.App) { app.Get("/", func(c *fiber.Ctx) error { data := *web.Common(c) data["Title"] = i18n.Translate(c, "home") return c.Render("index", data, "layouts/base") }) app.Get("/blog", blogIndexHandler) app.Get("/blog/:post", blogHandler) app.Get("/projects", func(c *fiber.Ctx) error { data := *web.Common(c) data["Title"] = i18n.Translate(c, "projects") return c.Render("projects", data, "layouts/base") }) app.Get("/about", func(c *fiber.Ctx) error { data := *web.Common(c) data["Title"] = i18n.Translate(c, "about") return c.Render("about", data, "layouts/base") }) app.Get("/services", servicesHandler) app.Get("/service/:service", serviceHandler) app.Get("/service/:service/info", serviceInfoHandler) app.Get("/login", loginHandler) app.Get("/loggedin", loggedinHandler) app.Get("/account", accountHandler) app.Get("/logout", logoutHandler) app.Get("/stats", stats) app.Get("/settings", settingsHandler) app.Get("/auth", authHandler) app.Get(config.Config.Oidc.CallbackUrl, oidc.HandleCallback) /* Static */ static, _ := fs.Sub(webf.StaticEmbed, "static") app.Use("/static/", filesystem.New(filesystem.Config{ Root: http.FS(static), })) /* Robots */ app.Get("/robots.txt", func(c *fiber.Ctx) error { return c.SendString(`User-agent: *`) }) } // last function with low priority for 404 handler func last(app *fiber.App) { /* 404 */ app.Use(func(c *fiber.Ctx) error { data := *web.Common(c) return c.Render("404", data, "layouts/base") }) }