chore: custom error

This commit is contained in:
2026-03-02 13:39:34 +01:00
parent abfddca518
commit 19b9532f21
21 changed files with 364 additions and 61 deletions
+30
View File
@@ -0,0 +1,30 @@
package resthome
import (
"net/http"
"git.schreifuchs.ch/schreifuchs/schreifuchs.ch/web/layouts"
"git.schreifuchs.ch/schreifuchs/schreifuchs.ch/web/pages"
)
func (h *Handler) home(w http.ResponseWriter, r *http.Request) {
pageHeaders, err := h.src.GetPages(r.Context())
if err != nil {
w.WriteHeader(http.StatusInternalServerError)
return
}
layouts.Render(r.Context(), w, r, pages.Home(pageHeaders))
}
func (h *Handler) page(w http.ResponseWriter, r *http.Request) {
uid := r.PathValue("uid")
page, err := h.src.GetPage(r.Context(), uid)
if err != nil {
w.WriteHeader(http.StatusInternalServerError)
return
}
layouts.Render(r.Context(), w, r, pages.ContentPage(page))
}
+27
View File
@@ -0,0 +1,27 @@
package resthome
import (
"context"
"net/http"
"git.schreifuchs.ch/schreifuchs/schreifuchs.ch/internal/components/page"
)
type Handler struct {
src pageService
}
func New(mux *http.ServeMux, srv pageService) *Handler {
h := &Handler{
src: srv,
}
mux.HandleFunc("GET /{$}", h.home)
mux.HandleFunc("GET /{uid}", h.page)
return h
}
type pageService interface {
GetPages(ctx context.Context) ([]page.PageHeader, error)
GetPage(ctx context.Context, uid string) (page.Page, error)
}