package handlers import ( "fmt" "net/http" "git.soup.land/soup/lookbook/internal/data/image" ) func HandleGetImage(rc *RequestContext, w http.ResponseWriter, r *http.Request) error { id, err := parseID(r.PathValue("id")) if err != nil { http.Error(w, "Invalid ID", http.StatusBadRequest) return nil } row, err := image.QFindByID(r.Context(), rc.DB, id) if err != nil { return fmt.Errorf("find image: %w", err) } if row == nil { http.NotFound(w, r) return nil } if row.ContentType != "" { w.Header().Set("Content-Type", row.ContentType) } w.Header().Set("Cache-Control", "public, max-age=604800") _, _ = w.Write(row.Bytes) return nil }