fix: extract html rendering
All checks were successful
Build Docker Image / Build-Docker-Image (push) Successful in 42s
Build and Push Docker Image / Build-And-Push-Docker-Image (push) Successful in 49s

This commit was merged in pull request #291.
This commit is contained in:
2024-12-04 21:10:25 +01:00
parent 01ceb9eb33
commit 9e8e595258
6 changed files with 138 additions and 145 deletions

View File

@@ -3,7 +3,6 @@ package handler
import (
"me-fit/service"
"me-fit/template"
"me-fit/types"
"me-fit/utils"
"net/http"
@@ -16,14 +15,14 @@ type IndexHandler interface {
}
type IndexHandlerImpl struct {
service service.AuthService
serverSettings *types.ServerSettings
service service.AuthService
render *Render
}
func NewIndexHandler(service service.AuthService, serverSettings *types.ServerSettings) IndexHandler {
func NewIndexHandler(service service.AuthService, render *Render) IndexHandler {
return IndexHandlerImpl{
service: service,
serverSettings: serverSettings,
service: service,
render: render,
}
}
@@ -35,20 +34,15 @@ func (handler IndexHandlerImpl) handleIndexAnd404() http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
user, _ := handler.service.GetUserFromSessionId(utils.GetSessionID(r))
var comp templ.Component = nil
userComp := service.UserInfoComp(user)
var comp templ.Component
if r.URL.Path != "/" {
comp = template.Layout(template.NotFound(), userComp, handler.serverSettings.Environment)
comp = template.NotFound()
w.WriteHeader(http.StatusNotFound)
} else {
comp = template.Layout(template.Index(), userComp, handler.serverSettings.Environment)
comp = template.Index()
}
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)
}
handler.render.RenderLayout(r, w, comp, user)
}
}