diff options
author | Marco Nassabain <marco.nassabain@hotmail.com> | 2021-02-24 22:52:55 +0100 |
---|---|---|
committer | Sean Molenaar <SMillerDev@users.noreply.github.com> | 2021-04-08 22:31:21 +0200 |
commit | 26ae92bc7b0275cb732bef12f66471091134a5ca (patch) | |
tree | 0952eef898790fe31fbf844c0674a17bdf5d10fe /lib/Db | |
parent | 83bdbc08a07574fff9be8a2ca07a87248cdb5bc1 (diff) |
✨ ItemMapperV2: include shared in functions
updated the following functions to include shared items:
- findFromUser
- findForUserByGuidHash
- readAll
- findAllAfter
- findAllItems
Signed-off-by: Marco Nassabain <marco.nassabain@hotmail.com>
Diffstat (limited to 'lib/Db')
-rw-r--r-- | lib/Db/ItemMapperV2.php | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/lib/Db/ItemMapperV2.php b/lib/Db/ItemMapperV2.php index 1365121fe..b1a4e9015 100644 --- a/lib/Db/ItemMapperV2.php +++ b/lib/Db/ItemMapperV2.php @@ -94,10 +94,11 @@ class ItemMapperV2 extends NewsMapperV2 $builder->select('items.*') ->from($this->tableName, 'items') ->innerJoin('items', FeedMapperV2::TABLE_NAME, 'feeds', 'items.feed_id = feeds.id') - ->where('feeds.user_id = :user_id') + ->where('(feeds.user_id = :user_id AND items.shared_by = \'\') OR items.shared_with = :shared_with') ->andWhere('items.id = :item_id') ->andWhere('feeds.deleted_at = 0') ->setParameter('user_id', $userId, IQueryBuilder::PARAM_STR) + ->setParameter('shared_with', $userId, IQueryBuilder::PARAM_STR) ->setParameter('item_id', $id, IQueryBuilder::PARAM_INT); return $this->findEntity($builder); @@ -145,10 +146,11 @@ class ItemMapperV2 extends NewsMapperV2 $builder->select('items.*') ->from($this->tableName, 'items') ->innerJoin('items', FeedMapperV2::TABLE_NAME, 'feeds', 'items.feed_id = feeds.id') - ->andWhere('feeds.user_id = :user_id') + ->andWhere('(feeds.user_id = :user_id AND items.shared_by = \'\') OR items.shared_with = :shared_with') ->andWhere('feeds.id = :feed_id') ->andWhere('items.guid_hash = :guid_hash') ->setParameter('user_id', $userId, IQueryBuilder::PARAM_STR) + ->setParameter('shared_with', $userId, IQueryBuilder::PARAM_STR) ->setParameter('feed_id', $feedId, IQueryBuilder::PARAM_INT) ->setParameter('guid_hash', $guidHash, IQueryBuilder::PARAM_STR); @@ -404,8 +406,8 @@ class ItemMapperV2 extends NewsMapperV2 ->innerJoin('items', FeedMapperV2::TABLE_NAME, 'feeds', 'items.feed_id = feeds.id') ->andWhere('items.last_modified >= :updatedSince') ->andWhere('feeds.deleted_at = 0') - ->andWhere('feeds.user_id = :userId') - ->setParameters(['updatedSince' => $updatedSince, 'userId' => $userId]) + ->andWhere('(feeds.user_id = :userId AND items.shared_by = \'\') OR items.shared_with = :sharedWith') + ->setParameters(['updatedSince' => $updatedSince, 'userId' => $userId, 'sharedWith' => $userId]) ->orderBy('items.last_modified', 'DESC') ->addOrderBy('items.id', 'DESC'); @@ -566,7 +568,7 @@ class ItemMapperV2 extends NewsMapperV2 /** * Returns all items shared with a user - * + * * @param string $userId * @param int $limit * @param int $offset @@ -634,9 +636,10 @@ class ItemMapperV2 extends NewsMapperV2 $builder->select('items.*') ->from($this->tableName, 'items') ->innerJoin('items', FeedMapperV2::TABLE_NAME, 'feeds', 'items.feed_id = feeds.id') - ->andWhere('feeds.user_id = :userId') + ->andWhere('(feeds.user_id = :userId AND items.shared_by = \'\') OR items.shared_with = :sharedWith') ->andWhere('feeds.deleted_at = 0') ->setParameter('userId', $userId) + ->setParameter('sharedWith', $userId) ->orderBy('items.last_modified', ($oldestFirst ? 'ASC' : 'DESC')) ->addOrderBy('items.id', ($oldestFirst ? 'ASC' : 'DESC')); |