2024-08-21 23:43:54 +02:00
|
|
|
package handlers
|
|
|
|
|
|
|
|
import (
|
|
|
|
"io/fs"
|
|
|
|
"net/http"
|
|
|
|
|
2024-08-22 15:15:16 +02:00
|
|
|
"git.tijl.dev/tijl/tijl.dev-core/internal/config"
|
|
|
|
"git.tijl.dev/tijl/tijl.dev-core/internal/oidc"
|
2024-08-24 17:48:14 +02:00
|
|
|
"git.tijl.dev/tijl/tijl.dev-core/modules/i18n"
|
2024-08-22 15:15:16 +02:00
|
|
|
"git.tijl.dev/tijl/tijl.dev-core/modules/web"
|
|
|
|
webf "git.tijl.dev/tijl/tijl.dev-core/web"
|
2024-08-21 23:43:54 +02:00
|
|
|
"github.com/gofiber/fiber/v2"
|
|
|
|
"github.com/gofiber/fiber/v2/middleware/filesystem"
|
|
|
|
)
|
|
|
|
|
|
|
|
func Setup() {
|
2024-08-22 18:04:08 +02:00
|
|
|
LoadPosts()
|
2024-08-25 17:43:55 +02:00
|
|
|
web.RegisterAppSetupFunc(routes, 100)
|
|
|
|
web.RegisterAppSetupFunc(last, 0)
|
2024-08-21 23:43:54 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
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")
|
|
|
|
})
|
2024-08-22 18:04:08 +02:00
|
|
|
app.Get("/blog", blogIndexHandler)
|
2024-08-22 20:28:21 +02:00
|
|
|
app.Get("/blog/:post", blogHandler)
|
2024-08-21 23:43:54 +02:00
|
|
|
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")
|
|
|
|
})
|
2024-08-31 17:42:51 +02:00
|
|
|
app.Get("/services", servicesHandler)
|
|
|
|
app.Get("/service/:service", serviceHandler)
|
|
|
|
app.Get("/service/:service/info", serviceInfoHandler)
|
2024-08-22 12:57:38 +02:00
|
|
|
app.Get("/login", loginHandler)
|
2024-08-22 13:47:16 +02:00
|
|
|
app.Get("/loggedin", loggedinHandler)
|
2024-08-22 12:57:38 +02:00
|
|
|
app.Get("/account", accountHandler)
|
|
|
|
app.Get("/logout", logoutHandler)
|
2024-08-26 21:49:37 +02:00
|
|
|
app.Get("/stats", stats)
|
2024-08-21 23:43:54 +02:00
|
|
|
|
|
|
|
app.Get("/settings", settingsHandler)
|
2024-08-22 12:57:38 +02:00
|
|
|
app.Get("/auth", authHandler)
|
2024-08-21 23:43:54 +02:00
|
|
|
app.Get(config.Config.Oidc.CallbackUrl, oidc.HandleCallback)
|
|
|
|
|
|
|
|
/*
|
|
|
|
Static
|
|
|
|
*/
|
2024-08-22 12:57:38 +02:00
|
|
|
static, _ := fs.Sub(webf.StaticEmbed, "static")
|
2024-08-21 23:43:54 +02:00
|
|
|
app.Use("/static/", filesystem.New(filesystem.Config{
|
|
|
|
Root: http.FS(static),
|
|
|
|
}))
|
2024-09-01 13:15:56 +02:00
|
|
|
|
|
|
|
/*
|
|
|
|
Robots
|
|
|
|
*/
|
|
|
|
app.Get("/robots.txt", func(c *fiber.Ctx) error {
|
|
|
|
return c.SendString(`User-agent: *`)
|
|
|
|
})
|
2024-08-25 17:43:55 +02:00
|
|
|
}
|
2024-08-21 23:43:54 +02:00
|
|
|
|
2024-08-25 17:43:55 +02:00
|
|
|
// last function with low priority for 404 handler
|
|
|
|
func last(app *fiber.App) {
|
2024-08-21 23:43:54 +02:00
|
|
|
/*
|
|
|
|
404
|
|
|
|
*/
|
|
|
|
app.Use(func(c *fiber.Ctx) error {
|
|
|
|
data := *web.Common(c)
|
|
|
|
return c.Render("404", data, "layouts/base")
|
|
|
|
})
|
|
|
|
}
|