Skip to content

Commit

Permalink
lighten select for single circle
Browse files Browse the repository at this point in the history
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
  • Loading branch information
ArtificialOwl committed Dec 10, 2021
1 parent 0f103be commit 92f4d04
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 7 deletions.
4 changes: 2 additions & 2 deletions lib/Db/CircleRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -300,7 +300,7 @@ public function getFederatedUserBySingleId(string $singleId): FederatedUser {
* @throws RequestBuilderException
*/
public function getSingleCircle(IFederatedUser $initiator): Circle {
$qb = $this->getCircleSelectSql(CoreQueryBuilder::SINGLE);
$qb = $this->getCircleSelectSql(CoreQueryBuilder::SINGLE, true);

if ($initiator instanceof FederatedUser) {
$member = new Member();
Expand All @@ -311,7 +311,7 @@ public function getSingleCircle(IFederatedUser $initiator): Circle {
}

$qb->limitToDirectMembership(CoreQueryBuilder::SINGLE, $member);
$qb->limitToConfigFlag(Circle::CFG_SINGLE);
$qb->limitInt('config', Circle::CFG_SINGLE);

try {
return $this->getItemFromRequest($qb);
Expand Down
15 changes: 11 additions & 4 deletions lib/Db/CircleRequestBuilder.php
Original file line number Diff line number Diff line change
Expand Up @@ -68,14 +68,21 @@ protected function getCircleUpdateSql(): CoreQueryBuilder {

/**
* @param string $alias
* @param bool $single
*
* @return CoreQueryBuilder
*/
protected function getCircleSelectSql(string $alias = CoreQueryBuilder::CIRCLE): CoreQueryBuilder {
protected function getCircleSelectSql(
string $alias = CoreQueryBuilder::CIRCLE,
bool $single = false
): CoreQueryBuilder {
$qb = $this->getQueryBuilder();
$qb->generateSelect(self::TABLE_CIRCLE, self::$tables[self::TABLE_CIRCLE], $alias, true)
->generateGroupBy(self::$tables[self::TABLE_CIRCLE], $alias)
->orderBy($alias . '.creation', 'asc');
$qb->generateSelect(self::TABLE_CIRCLE, self::$tables[self::TABLE_CIRCLE], $alias, !$single)
->generateGroupBy(self::$tables[self::TABLE_CIRCLE], $alias);

if (!$single) {
$qb->orderBy($alias . '.creation', 'asc');
}

return $qb;
}
Expand Down
2 changes: 1 addition & 1 deletion lib/Db/CoreQueryBuilder.php
Original file line number Diff line number Diff line change
Expand Up @@ -639,7 +639,7 @@ public function limitToDirectMembership(string $alias, Member $member): void {
if ($getData) {
$this->generateMemberSelectAlias($aliasMember);
}
$this->leftJoin(
$this->innerJoin(
$this->getDefaultSelectAlias(), CoreRequestBuilder::TABLE_MEMBER, $aliasMember,
$expr->eq($aliasMember . '.circle_id', $alias . '.unique_id')
);
Expand Down

0 comments on commit 92f4d04

Please sign in to comment.