This repository has been archived on 2025-08-09. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
web-app-template/handler/index_and_404.go
Tim Wundenberg 9e8e595258
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
fix: extract html rendering
2024-12-04 21:12:01 +01:00

49 lines
949 B
Go

package handler
import (
"me-fit/service"
"me-fit/template"
"me-fit/utils"
"net/http"
"github.com/a-h/templ"
)
type IndexHandler interface {
Handle(router *http.ServeMux)
}
type IndexHandlerImpl struct {
service service.AuthService
render *Render
}
func NewIndexHandler(service service.AuthService, render *Render) IndexHandler {
return IndexHandlerImpl{
service: service,
render: render,
}
}
func (handler IndexHandlerImpl) Handle(router *http.ServeMux) {
router.Handle("/", handler.handleIndexAnd404())
}
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
if r.URL.Path != "/" {
comp = template.NotFound()
w.WriteHeader(http.StatusNotFound)
} else {
comp = template.Index()
}
handler.render.RenderLayout(r, w, comp, user)
}
}