34 lines
824 B
Go
34 lines
824 B
Go
package service
|
|
|
|
import (
|
|
"database/sql"
|
|
"me-fit/template"
|
|
"me-fit/types"
|
|
"me-fit/utils"
|
|
"net/http"
|
|
|
|
"github.com/a-h/templ"
|
|
)
|
|
|
|
func HandleIndexAnd404(db *sql.DB, serverSettings *types.ServerSettings) http.HandlerFunc {
|
|
return func(w http.ResponseWriter, r *http.Request) {
|
|
user := utils.GetUserFromSession(db, r)
|
|
|
|
var comp templ.Component = nil
|
|
userComp := UserInfoComp(user)
|
|
|
|
if r.URL.Path != "/" {
|
|
comp = template.Layout(template.NotFound(), userComp, serverSettings.Environment)
|
|
w.WriteHeader(http.StatusNotFound)
|
|
} else {
|
|
comp = template.Layout(template.Index(), userComp, serverSettings.Environment)
|
|
}
|
|
|
|
err := comp.Render(r.Context(), w)
|
|
if err != nil {
|
|
utils.LogError("Failed to render index", err)
|
|
http.Error(w, "Failed to render index", http.StatusInternalServerError)
|
|
}
|
|
}
|
|
}
|