Files
schreifuchs.ch/internal/handlers/resthome/resource.go
T
schreifuchs 812891a205
release.yaml / publish (push) Successful in 3m51s
fix(gallery): use component template
2026-09-29 10:46:45 +02:00

38 lines
739 B
Go

package resthome
import (
"context"
"io"
"net/http"
"git.schreifuchs.ch/schreifuchs/schreifuchs.ch/internal/components/page"
"github.com/a-h/templ"
)
type Handler struct {
http.Handler
src pageService
r renderer
}
func New(renderer renderer, srv pageService) *Handler {
mux := http.NewServeMux()
h := &Handler{
Handler: mux,
src: srv,
r: renderer,
}
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)
}
type renderer interface {
RenderPage(ctx context.Context, w io.Writer, r *http.Request, component templ.Component)
}