void GameDB::update(Reference<Game> gameRef, const Game& newGame) { auto oldGame = *read(gameRef); DataStore::update(gameRef, newGame); // Remove our indexing of the old game auto teams = getTeams(oldGame); deleteGame(teamToGames[teams.first], teams.second, gameRef); deleteGame(teamToGames[teams.second], teams.first, gameRef); // Add indexing of the new game teams = getTeams(newGame); insertSingleGameEntry(teams.first, teams.second, gameRef); insertSingleGameEntry(teams.second, teams.first, gameRef); }
Reference<Game> GameDB::create(Game game) { auto gameRef = DataStore::create(game); auto teams = getTeams(game); insertSingleGameEntry(teams.first, teams.second, gameRef); insertSingleGameEntry(teams.second, teams.first, gameRef); return gameRef; }
void GameDB::destroy(Reference<Game> gameRef) { auto game = *read(gameRef); auto teams = getTeams(game); deleteGame(teamToGames[teams.first], teams.second, gameRef); deleteGame(teamToGames[teams.second], teams.first, gameRef); DataStore::destroy(gameRef); }
/* Retrieves teams for given team ID */ Team getTeam(std::string teamID) { std::vector<std::string> id; id.push_back(teamID); return getTeams(id)[teamID]; }