func Collections(w http.ResponseWriter, r *http.Request, enc encoding.Encoder, dtx *apicontext.DataContext) string { cols, err := products.GetAriesVehicleCollections() if err != nil { apierror.GenerateError(err.Error(), err, w, r) return "" } return encoding.Must(enc.Encode(cols)) }
//Hack version that slowly traverses all the collection and aggregates results func AllCollectionsLookup(w http.ResponseWriter, r *http.Request, enc encoding.Encoder, dtx *apicontext.DataContext) string { var v products.NoSqlVehicle //Get all collections cols, err := products.GetAriesVehicleCollections() if err != nil { apierror.GenerateError(err.Error(), err, w, r) return "" } // Get vehicle year v.Year = r.FormValue("year") delete(r.Form, "year") // Get vehicle make v.Make = r.FormValue("make") delete(r.Form, "make") // Get vehicle model v.Model = r.FormValue("model") delete(r.Form, "model") // Get vehicle submodel v.Style = r.FormValue("style") delete(r.Form, "style") var collectionVehicleArray []products.NoSqlLookup for _, col := range cols { noSqlLookup, err := products.FindVehiclesWithParts(v, col, dtx) if err != nil { apierror.GenerateError("Trouble finding vehicles.", err, w, r) return "" } collectionVehicleArray = append(collectionVehicleArray, noSqlLookup) } l := makeLookupFrommanyLookups(collectionVehicleArray) return encoding.Must(enc.Encode(l)) }