package restgallery import ( "fmt" "log/slog" "net/http" "git.schreifuchs.ch/schreifuchs/schreifuchs.ch/internal/handlers/rest" "git.schreifuchs.ch/schreifuchs/schreifuchs.ch/internal/pkg/templer" "git.schreifuchs.ch/schreifuchs/schreifuchs.ch/web/pages" ) const preloadCount = 6 func (h *Handler) gallery(w http.ResponseWriter, r *http.Request) { imgs, err := h.srv.GetGallerySet(r.Context()) if err != nil { slog.Error("could not get gallery set", "err", err) rest.SendErr(w, err) return } ctx := r.Context() for i, image := range imgs.LG.Images { if i > preloadCount { break } ctx = templer.AppendHeader(ctx, fmt.Sprintf(``, image.URL())) } h.r.RenderPage(ctx, w, r, pages.GallerySet(imgs)) } func (h *Handler) image(w http.ResponseWriter, r *http.Request) { uid := r.PathValue("image_uid") slog.Debug("image from gallery", "uid", uid) prev, next, err := h.srv.GetPrevAndNext(r.Context(), uid) if err != nil { slog.Error("could not get gallery", "err", err) rest.SendErr(w, err) return } h.r.RenderComponent(r.Context(), w, r, pages.GalleryImage(uid, next, prev)) }