diff --git a/go-backend/database.go b/go-backend/database.go index 2420674..023aeb7 100644 --- a/go-backend/database.go +++ b/go-backend/database.go @@ -352,16 +352,23 @@ func getSearch(db *sql.DB, q string, limit, offset int) (ActiveSearch, error) { } func getArtists(db *sql.DB, q string, limit, offset int) ([]string, error) { - rows, err := db.Query("SELECT Artist FROM Songs WHERE Title LIKE ? OR Artist LIKE ? LIMIT ? OFFSET ?", "%"+q+"%", "%"+q+"%", limit, offset) + rows, err := db.Query("SELECT Artist FROM Beatmap WHERE Artist LIKE ? OR Title LIKE ? GROUP BY Artist LIMIT ? OFFSET ?", "%"+q+"%", "%"+q+"%", limit, offset) if err != nil { return []string{}, err } defer rows.Close() - _, err = scanSongs(rows) - if err != nil { - return []string{}, err + + var artist []string + for rows.Next() { + var a string + err := rows.Scan(&a) + if err != nil { + return []string{}, err + } + artist = append(artist, a) } - return []string{}, nil + + return artist, nil } func getFavorites(db *sql.DB, q string, limit, offset int) ([]Song, error) { diff --git a/go-backend/handlers.go b/go-backend/handlers.go index d1411fb..5d0779d 100644 --- a/go-backend/handlers.go +++ b/go-backend/handlers.go @@ -283,13 +283,13 @@ func (s *Server) artistSearch(w http.ResponseWriter, r *http.Request) { //TODO limit, offset := pagination(r) - recent, err := getArtists(s.Db, q, limit, offset) + a, err := getArtists(s.Db, q, limit, offset) if err != nil { fmt.Println(err) http.Error(w, err.Error(), http.StatusInternalServerError) return } - writeJSON(w, recent, http.StatusOK) + writeJSON(w, a, http.StatusOK) } // @Summary Retrieves a song file by its encoded path