47 lines
1.3 KiB
Go
47 lines
1.3 KiB
Go
package http
|
|
|
|
import (
|
|
"trustcontact/internal/config"
|
|
httpmw "trustcontact/internal/http/middleware"
|
|
|
|
"github.com/gofiber/fiber/v2"
|
|
"github.com/gofiber/fiber/v2/middleware/session"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
func RegisterRoutes(app *fiber.App, store *session.Store, database *gorm.DB, _ *config.Config) {
|
|
app.Use(httpmw.SessionStoreMiddleware(store))
|
|
app.Use(httpmw.CurrentUserMiddleware(store, database))
|
|
app.Use(httpmw.ConsumeFlash())
|
|
|
|
app.Get("/healthz", func(c *fiber.Ctx) error {
|
|
return c.SendStatus(fiber.StatusOK)
|
|
})
|
|
|
|
app.Get("/", func(c *fiber.Ctx) error {
|
|
c.Locals("nav_section", "public")
|
|
httpmw.SetTemplateData(c, "NavSection", "public")
|
|
return c.SendString("public area")
|
|
})
|
|
|
|
app.Get("/login", func(c *fiber.Ctx) error {
|
|
c.Locals("nav_section", "public")
|
|
httpmw.SetTemplateData(c, "NavSection", "public")
|
|
return c.SendString("login page")
|
|
})
|
|
|
|
private := app.Group("/private", httpmw.RequireAuth())
|
|
private.Get("/", func(c *fiber.Ctx) error {
|
|
c.Locals("nav_section", "private")
|
|
httpmw.SetTemplateData(c, "NavSection", "private")
|
|
return c.SendString("private area")
|
|
})
|
|
|
|
admin := app.Group("/admin", httpmw.RequireAuth(), httpmw.RequireAdmin())
|
|
admin.Get("/", func(c *fiber.Ctx) error {
|
|
c.Locals("nav_section", "admin")
|
|
httpmw.SetTemplateData(c, "NavSection", "admin")
|
|
return c.SendString("admin area")
|
|
})
|
|
}
|