clustvirt/router/htmx/routes.go
Matthew Stobbs 1113062d9e moving some modules to their own thing
- lib/log is now git.staur.ca/stobbsm/simplelog
- router is now git.staur.ca/stobbsm/simpleroute
2024-04-07 00:00:59 -06:00

80 lines
2.2 KiB
Go

package htmx
import (
"context"
"net/http"
"git.staur.ca/stobbsm/clustvirt/cluster"
"git.staur.ca/stobbsm/clustvirt/view"
log "git.staur.ca/stobbsm/simplelog"
router "git.staur.ca/stobbsm/simpleroute"
)
var Htmx = router.Routes{
{
Method: http.MethodGet,
Path: "/cluster",
Handler: func(c *cluster.Cluster) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
if err := view.ClusterInfo(c).Render(context.Background(), w); err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
log.Error("htmx.Handler").
Str("uri", r.RequestURI).
Err(err).
Int("statusCode", http.StatusBadRequest).Send()
}
}
},
},
{
Method: http.MethodGet,
Path: "/host/{hostname}",
Handler: func(c *cluster.Cluster) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
host, err := c.GetHost(r.PathValue("hostname"))
if err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
log.Error("htmx.Handler").
Str("uri", r.RequestURI).
Err(err).
Int("statusCode", http.StatusBadRequest).
Send()
}
if err = view.HostInfo(host).Render(context.Background(), w); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
log.Error("htmx.Handler").
Str("uri", r.RequestURI).
Err(err).
Int("statusCode", http.StatusInternalServerError).
Send()
}
}
},
},
{
Method: http.MethodGet,
Path: "/host/{hostname}/stats",
Handler: func(c *cluster.Cluster) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
host, err := c.GetHost(r.PathValue("hostname"))
if err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
log.Error("htmx.Handler").
Str("uri", r.RequestURI).
Err(err).
Int("statusCode", http.StatusBadRequest).
Send()
}
if err = view.HostStats(host).Render(context.Background(), w); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
log.Error("htmx.Handler").
Str("uri", r.RequestURI).
Err(err).
Int("statusCode", http.StatusInternalServerError).
Send()
}
}
},
},
}