You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
package de.fd.fh.server.game;
import com.mongodb.MongoClient; import de.fd.fh.server.user.UserId; import dev.morphia.Datastore; import dev.morphia.Key; import dev.morphia.Morphia; import dev.morphia.query.Query;
import java.util.List;
public class GameRepository { private final Datastore datastore;
public GameRepository() { System.out.println("GameRepo"); final Morphia morphia = new Morphia();
morphia.mapPackage("de.fd.fh.server.game");
this.datastore = morphia.createDatastore(new MongoClient(), "smartwarfare"); datastore.ensureIndexes(); }
GameRepository(final Datastore datastore) { this.datastore = datastore; }
public Key<Game> save(final Game access) { return datastore.save(access); }
Game findByGameId(final GameId gameId) { return datastore.createQuery(Game.class) .field("id.identifier").equal(gameId.getIdentifier()).first(); }
List<Game> findRunningGamesOfPlayer(final UserId userId) { final Query<Game> query = datastore.createQuery(Game.class); query.or( query.criteria("whitePlayer.identifier").equal(userId.getIdentifier()), query.criteria("blackPlayer.identifier").equal(userId.getIdentifier())); query.and(query.criteria("winner").doesNotExist());
return query.find().toList(); } }
|