package api import ( "encoding/json" "fmt" "net/http" "strconv" "github.com/gorilla/mux" ) func (h APIHandler) GetCache(w http.ResponseWriter, r *http.Request) { vars := mux.Vars(r) cacheid := vars["cacheid"] d, err := h.cache.Get(cacheid) if err != nil { fmt.Println(err) w.WriteHeader(http.StatusNotFound) return } result := d if data, ok := d.([]any); ok { if limitsmin, ok := r.URL.Query()["limits.min"]; ok { min, _ := strconv.Atoi(limitsmin[0]) if limitsmax, ok := r.URL.Query()["limits.max"]; ok { max, _ := strconv.Atoi(limitsmax[0]) if max > len(data) { result = data[min:] } else { result = data[min:max] } } else { result = data[min:] } } } j, err := json.Marshal(result) if err != nil { w.WriteHeader(http.StatusNotFound) return } w.WriteHeader(http.StatusOK) w.Header().Set("Content-Type", "application/json") w.Write(j) }