package utils import ( "net/http" "strings" ) func GetCommentPreloads() map[string]bool { return map[string]bool{ "Author": true, "Track": true, "Replies": true, "Replies.Author": true, } } func GetGenrePreloads() map[string]bool { return map[string]bool{ "Parent": true, "SubGenres": true, "Tracks": true, } } func GetProjectPreloads() map[string]bool { return map[string]bool{ "Owner": true, } } func GetRatingPreloads() map[string]bool { return map[string]bool{ "Author": true, "Track": true, } } func GetTrackPreloads() map[string]bool { return map[string]bool{ "Owner": true, "Comments": true, "Ratings": true, "Genre": true, } } func GetUserPreloads() map[string]bool { return map[string]bool{ "PreferredGenres": true, "OwnedTracks": true, "Comments": true, } } func GetReqPreloads(r *http.Request, allowed map[string]bool) []string { preloadStr := r.URL.Query().Get("preload") if preloadStr == "" { return nil } var preloads []string for p := range strings.SplitSeq(preloadStr, ",") { p = strings.TrimSpace(p) if p != "" && allowed[p] { preloads = append(preloads, p) } } return preloads }