Move to query builder (pt.2)

Signed-off-by: Julius Härtl <jus@bitgrid.net>
This commit is contained in:
Julius Härtl
2020-08-24 17:30:22 +02:00
parent 7bbf50b9cf
commit b5862b482a

View File

@@ -159,8 +159,8 @@ class CardMapper extends QBMapper implements IPermissionMapper {
public function findDeleted($boardId, $limit = null, $offset = null) { public function findDeleted($boardId, $limit = null, $offset = null) {
$qb = $this->queryCardsByBoard($boardId); $qb = $this->queryCardsByBoard($boardId);
$qb->andWhere($qb->expr()->neq('c.archived', false)) $qb->andWhere($qb->expr()->neq('c.archived', $qb->createNamedParameter(false, IQueryBuilder::PARAM_BOOL)))
->andWhere($qb->expr()->neq('c.deleted_at', false)) ->andWhere($qb->expr()->neq('c.deleted_at', $qb->createNamedParameter(false, IQueryBuilder::PARAM_BOOL)))
->setMaxResults($limit) ->setMaxResults($limit)
->setFirstResult($offset) ->setFirstResult($offset)
->orderBy('order') ->orderBy('order')
@@ -173,8 +173,8 @@ class CardMapper extends QBMapper implements IPermissionMapper {
$qb->select('*') $qb->select('*')
->from('deck_cards') ->from('deck_cards')
->where($qb->expr()->eq('stack_id', $qb->createNamedParameter($stackId, IQueryBuilder::PARAM_INT))) ->where($qb->expr()->eq('stack_id', $qb->createNamedParameter($stackId, IQueryBuilder::PARAM_INT)))
->andWhere($qb->expr()->eq('archived', true)) ->andWhere($qb->expr()->eq('archived', $qb->createNamedParameter(true, IQueryBuilder::PARAM_BOOL)))
->andWhere($qb->expr()->eq('deleted_at', 0)) ->andWhere($qb->expr()->eq('deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT)))
->setMaxResults($limit) ->setMaxResults($limit)
->setFirstResult($offset) ->setFirstResult($offset)
->orderBy('last_modified'); ->orderBy('last_modified');
@@ -194,20 +194,36 @@ class CardMapper extends QBMapper implements IPermissionMapper {
} }
public function findAllWithDue($boardId) { public function findAllWithDue($boardId) {
$sql = 'SELECT c.* FROM `*PREFIX*deck_cards` c $qb = $this->db->getQueryBuilder();
INNER JOIN `*PREFIX*deck_stacks` s ON s.id = c.stack_id $qb->select('c.*')
INNER JOIN `*PREFIX*deck_boards` b ON b.id = s.board_id ->from('deck_cards', 'c')
WHERE `s`.`board_id` = ? AND duedate IS NOT NULL AND NOT c.archived AND c.deleted_at = 0 AND s.deleted_at = 0 AND NOT b.archived AND b.deleted_at = 0'; ->innerJoin('c', 'deck_stacks', 's', 's.id = c.stack_id')
return $this->findEntities($sql, [$boardId]); ->innerJoin('s', 'deck_boards', 'b', 'b.id = s.board_id')
->where($qb->expr()->eq('s.board_id', $qb->createNamedParameter($boardId, IQueryBuilder::PARAM_INT)))
->andWhere($qb->expr()->isNotNull('c.duedate'))
->andWhere($qb->expr()->eq('c.archived', $qb->createNamedParameter(false, IQueryBuilder::PARAM_BOOL)))
->andWhere($qb->expr()->eq('c.deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT)))
->andWhere($qb->expr()->eq('b.archived', $qb->createNamedParameter(false, IQueryBuilder::PARAM_BOOL)))
->andWhere($qb->expr()->eq('b.deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT)));
return $this->findEntities($qb);
} }
public function findAssignedCards($boardId, $username) { public function findAssignedCards($boardId, $username) {
$sql = 'SELECT c.* FROM `*PREFIX*deck_cards` c $qb = $this->db->getQueryBuilder();
INNER JOIN `*PREFIX*deck_stacks` s ON s.id = c.stack_id $qb->select('c.*')
INNER JOIN `*PREFIX*deck_boards` b ON b.id = s.board_id ->from('deck_cards', 'c')
INNER JOIN `*PREFIX*deck_assigned_users` u ON c.id = card_id ->innerJoin('c', 'deck_stacks', 's', 's.id = c.stack_id')
WHERE `s`.`board_id` = ? AND participant = ? AND NOT c.archived AND c.deleted_at = 0 AND s.deleted_at = 0 AND NOT b.archived AND b.deleted_at = 0'; ->innerJoin('s', 'deck_boards', 'b', 'b.id = s.board_id')
return $this->findEntities($sql, [$boardId, $username]); ->innerJoin('c', 'deck_assigned_users', 'u', 'c.id = u.card_id')
->where($qb->expr()->eq('s.board_id', $qb->createNamedParameter($boardId, IQueryBuilder::PARAM_INT)))
->andWhere($qb->expr()->eq('u.participant', $qb->createNamedParameter($username, IQueryBuilder::PARAM_STR)))
->andWhere($qb->expr()->eq('u.type', $qb->createNamedParameter(Acl::PERMISSION_TYPE_USER, IQueryBuilder::PARAM_INT)))
// Filter out archived/deleted cards and board
->andWhere($qb->expr()->eq('c.archived', $qb->createNamedParameter(false, IQueryBuilder::PARAM_BOOL)))
->andWhere($qb->expr()->eq('c.deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT)))
->andWhere($qb->expr()->eq('b.archived', $qb->createNamedParameter(false, IQueryBuilder::PARAM_BOOL)))
->andWhere($qb->expr()->eq('b.deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT)));
return $this->findEntities($qb);
} }
public function findOverdue() { public function findOverdue() {