Redmage/server/routes/www/www.go

42 lines
1.1 KiB
Go
Raw Normal View History

2024-04-07 23:41:00 +07:00
package www
import (
"context"
"net/http"
"os"
2024-04-07 23:41:00 +07:00
"github.com/go-chi/chi/v5"
chimiddleware "github.com/go-chi/chi/v5/middleware"
"github.com/tigorlazuardi/redmage/config"
2024-04-07 23:41:00 +07:00
"github.com/tigorlazuardi/redmage/db/queries/subreddits"
"github.com/tigorlazuardi/redmage/pkg/log"
"github.com/tigorlazuardi/redmage/server/routes/middleware"
2024-04-07 23:41:00 +07:00
)
var PublicFS = os.DirFS("public")
2024-04-07 23:41:00 +07:00
type WWW struct {
Subreddits *subreddits.Queries
Config *config.Config
2024-04-07 23:41:00 +07:00
}
2024-04-08 16:59:42 +07:00
func (www *WWW) Register(router chi.Router) {
router.Use(chimiddleware.RequestID)
router.Use(chimiddleware.RealIP)
router.
With(chimiddleware.RequestLogger(middleware.ChiSimpleLogger{})).
Mount("/public", http.StripPrefix("/public", http.FileServer(http.FS(PublicFS))))
if www.Config.Bool("http.hotreload") {
log.New(context.Background()).Debug("enabled hot reload")
router.
With(chimiddleware.RequestLogger(middleware.ChiSimpleLogger{})).
Get("/hot_reload", www.CreateHotReloadRoute())
}
router.Group(func(r chi.Router) {
r.Use(chimiddleware.RequestLogger(middleware.ChiLogger{}))
r.Get("/", www.Home)
})
2024-04-08 16:59:42 +07:00
}