MAPG-235 queries with selected relations enabled; reduced size of some of the queries
This commit is contained in:
1 parent
7898c52328
commit
a7cfc3c19f
7 files changed
+67
-103
No files matched your search
@@ -7,6 +7,7 @@ use MapGuesser\PersistentData\Model\Guess;
|
||||
use MapGuesser\PersistentData\Model\User;
|
||||
use MapGuesser\PersistentData\Model\UserInChallenge;
|
||||
use MapGuesser\PersistentData\Model\Place;
|
||||
use MapGuesser\PersistentData\Model\PlaceInChallenge;
|
||||
use MapGuesser\PersistentData\PersistentDataManager;
|
||||
|
||||
class GuessRepository
|
||||
@@ -50,21 +51,31 @@ class GuessRepository
|
||||
yield from $this->pdm->selectMultipleFromDb($select, Guess::class);
|
||||
}
|
||||
|
||||
public function getAllInChallenge(Challenge $challenge): Generator
|
||||
public function getAllInChallenge(Challenge $challenge, array $withRelations = []): Generator
|
||||
{
|
||||
if (count($withRelations)) {
|
||||
$necessaryRelations = [PlaceInChallenge::class];
|
||||
$withRelations = array_unique(array_merge($withRelations, $necessaryRelations));
|
||||
}
|
||||
|
||||
$select = new Select(\Container::$dbConnection);
|
||||
$select->where('challenge_id', '=', $challenge->getId());
|
||||
$select->orderBy('round');
|
||||
|
||||
yield from $this->pdm->selectMultipleFromDb($select, Guess::class, true);
|
||||
yield from $this->pdm->selectMultipleFromDb($select, Guess::class, true, $withRelations);
|
||||
}
|
||||
|
||||
public function getAllInChallengeByRound(int $round, Challenge $challenge): Generator
|
||||
public function getAllInChallengeByRound(int $round, Challenge $challenge, array $withRelations = []): Generator
|
||||
{
|
||||
if (count($withRelations)) {
|
||||
$necessaryRelations = [PlaceInChallenge::class];
|
||||
$withRelations = array_unique(array_merge($withRelations, $necessaryRelations));
|
||||
}
|
||||
|
||||
$select = new Select(\Container::$dbConnection);
|
||||
$select->where('challenge_id', '=', $challenge->getId());
|
||||
$select->where('round', '=', $round);
|
||||
|
||||
yield from $this->pdm->selectMultipleFromDb($select, Guess::class, true);
|
||||
yield from $this->pdm->selectMultipleFromDb($select, Guess::class, true, $withRelations);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user