package restgallery import ( "context" "fmt" "io" "net/http" "net/url" "git.schreifuchs.ch/schreifuchs/schreifuchs.ch/internal/components/gallery" "git.schreifuchs.ch/schreifuchs/schreifuchs.ch/internal/components/images" "git.schreifuchs.ch/schreifuchs/schreifuchs.ch/internal/pkg/config" "github.com/a-h/templ" ) type Handler struct { http.Handler srv galleryService r renderer cfg *config.Gallery } func New(renderer renderer, srv galleryService, cfg *config.Gallery) *Handler { mux := http.NewServeMux() h := &Handler{ Handler: mux, srv: srv, r: renderer, cfg: cfg, } mux.HandleFunc(fmt.Sprintf("GET /%s", url.PathEscape(cfg.Path)), h.gallery) return h } type galleryService interface { GetImages(ctx context.Context) (imgs []images.Image, err error) GetGallery(ctx context.Context, width int) (gallery gallery.Gallery, err error) } type renderer interface { Render(ctx context.Context, w io.Writer, r *http.Request, component templ.Component) }