2024-01-11 20:07:47 -08:00
|
|
|
package web
|
|
|
|
|
|
|
|
import (
|
|
|
|
"net/http"
|
2024-01-12 16:34:26 -08:00
|
|
|
"html/template"
|
2024-01-11 20:07:47 -08:00
|
|
|
|
2024-01-12 15:48:31 -08:00
|
|
|
"context"
|
|
|
|
|
2024-01-11 20:07:47 -08:00
|
|
|
"github.com/go-chi/chi/v5"
|
2024-01-12 15:48:31 -08:00
|
|
|
"github.com/rs/zerolog"
|
|
|
|
"github.com/rs/zerolog/log"
|
2024-01-11 20:07:47 -08:00
|
|
|
)
|
|
|
|
|
2024-01-12 16:34:26 -08:00
|
|
|
const TemplateDir = "./web/templates/"
|
|
|
|
|
|
|
|
type IndexData struct {
|
|
|
|
Title string
|
|
|
|
}
|
|
|
|
|
2024-01-12 15:48:31 -08:00
|
|
|
func SetLogLevel(level zerolog.Level) {
|
|
|
|
zerolog.SetGlobalLevel(level)
|
|
|
|
}
|
|
|
|
|
2024-01-11 20:07:47 -08:00
|
|
|
func WebRouter() http.Handler {
|
|
|
|
r := chi.NewRouter()
|
|
|
|
r.Get("/", getIndex)
|
2024-01-12 16:34:26 -08:00
|
|
|
r.Get("/hello", getHello)
|
2024-01-12 20:50:41 -08:00
|
|
|
r.Handle("/static/*", http.StripPrefix("/static/", http.FileServer(http.Dir("web/static/"))))
|
2024-01-11 20:07:47 -08:00
|
|
|
return r
|
|
|
|
}
|
|
|
|
|
|
|
|
func getIndex(w http.ResponseWriter, req *http.Request) {
|
2024-01-12 16:34:26 -08:00
|
|
|
index, err := template.ParseFiles(TemplateDir + "index.html")
|
|
|
|
if err != nil {
|
|
|
|
log.Fatal().
|
|
|
|
Err(err).
|
|
|
|
Msg("Fatal error reading index template")
|
|
|
|
}
|
|
|
|
|
|
|
|
err = index.Execute(w, IndexData{Title: "thetitle"})
|
|
|
|
}
|
|
|
|
|
|
|
|
func getHello(w http.ResponseWriter, req *http.Request) {
|
2024-01-12 15:48:31 -08:00
|
|
|
log.Debug().Msg("Got index")
|
|
|
|
component := hello("Nick")
|
|
|
|
component.Render(context.Background(), w)
|
2024-01-11 20:07:47 -08:00
|
|
|
}
|