implemented search of players serverside

This commit is contained in:
2025-05-08 15:33:39 +02:00
parent 0ddf35bc26
commit 018974266e
3 changed files with 56 additions and 5 deletions

View File

@@ -35,6 +35,9 @@ type Repo interface {
// Get all players
GetPlayers() ([]*model.Player, error)
// Search players by a query
SearchPlayer(string) ([]*model.Player, error)
// Get all games
GetGames() ([]*model.Game, error)
}

View File

@@ -277,3 +277,30 @@ func (s *SQLRepo) GetGames() ([]*model.Game, error) {
return rtn, nil
}
func (s *SQLRepo) SearchPlayer(query string) ([]*model.Player, error) {
rows, err := s.db.Query(`
SELECT id, name, elo
FROM Players
WHERE name LIKE ?
`, query+"%")
if err != nil {
return nil, err
}
rtn := []*model.Player{}
for rows.Next() {
var player model.Player
err = rows.Scan(&player.ID, &player.Name, &player.Elo)
if err != nil {
return nil, err
}
rtn = append(rtn, &player)
}
return rtn, nil
}