diff options
author | Marco Nassabain <marco.nassabain@hotmail.com> | 2021-03-03 22:34:28 +0100 |
---|---|---|
committer | Sean Molenaar <SMillerDev@users.noreply.github.com> | 2021-04-08 22:31:21 +0200 |
commit | 9bd27da9bac99a7780df8eb3845df566fb23b02a (patch) | |
tree | cd831abd0fa7b14c1a0bce1023599354f22f4e2f /lib | |
parent | d2e831fbaa02699516749d5d8fe455259eebf912 (diff) |
🔥 Remove old share item logic & functions
Signed-off-by: Marco Nassabain <marco.nassabain@hotmail.com>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Controller/FeedController.php | 3 | ||||
-rw-r--r-- | lib/Controller/ItemController.php | 20 | ||||
-rw-r--r-- | lib/Db/ItemMapperV2.php | 117 | ||||
-rw-r--r-- | lib/Service/ItemServiceV2.php | 52 |
4 files changed, 15 insertions, 177 deletions
diff --git a/lib/Controller/FeedController.php b/lib/Controller/FeedController.php index 02fbbc625..f071ade0f 100644 --- a/lib/Controller/FeedController.php +++ b/lib/Controller/FeedController.php @@ -81,8 +81,7 @@ class FeedController extends Controller // item id which will be used for marking feeds read $params = [ 'feeds' => $this->feedService->findAllForUser($this->getUserId()), - 'starred' => count($this->itemService->starred($this->getUserId())), - 'shared' => count($this->itemService->sharedWithUser($this->getUserId())) + 'starred' => count($this->itemService->starred($this->getUserId())) ]; try { diff --git a/lib/Controller/ItemController.php b/lib/Controller/ItemController.php index 6243142ab..4a01fb23c 100644 --- a/lib/Controller/ItemController.php +++ b/lib/Controller/ItemController.php @@ -133,7 +133,6 @@ class ItemController extends Controller $return['newestItemId'] = $this->itemService->newest($this->getUserId())->getId(); $return['feeds'] = $this->feedService->findAllForUser($this->getUserId()); $return['starred'] = count($this->itemService->starred($this->getUserId())); - $return['shared'] = count($this->itemService->sharedWithUser($this->getUserId())); } switch ($type) { @@ -159,17 +158,6 @@ class ItemController extends Controller $search_items ); break; - case ListType::SHARED: - $items = $this->itemService->findAllSharedWithUserWithFilters( - $this->getUserId(), - $limit, - $offset, - !$showAll, - $oldestFirst, - $search_items - ); - break; - default: $items = $this->itemService->findAllWithFilters( $this->getUserId(), @@ -229,13 +217,6 @@ class ItemController extends Controller !$showAll ); break; - case ListType::SHARED: - $items = $this->itemService->findAllSharedAfter( - $this->getUserId(), - $lastModified, - !$showAll - ); - break; default: $items = $this->itemService->findAllAfter( $this->getUserId(), @@ -248,7 +229,6 @@ class ItemController extends Controller $return['newestItemId'] = $this->itemService->newest($this->getUserId())->getId(); $return['feeds'] = $this->feedService->findAllForUser($this->getUserId()); $return['starred'] = count($this->itemService->starred($this->getUserId())); - $return['shared'] = count($this->itemService->sharedWithUser($this->getUserId())); $return['items'] = $items; // this gets thrown if there are no items diff --git a/lib/Db/ItemMapperV2.php b/lib/Db/ItemMapperV2.php index c283ca4fd..44d1740cd 100644 --- a/lib/Db/ItemMapperV2.php +++ b/lib/Db/ItemMapperV2.php @@ -57,10 +57,9 @@ 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 AND items.shared_by = \'\') OR items.shared_with = :shared_with') + ->where('feeds.user_id = :user_id') ->andWhere('feeds.deleted_at = 0') - ->setParameter('user_id', $userId, IQueryBuilder::PARAM_STR) - ->setParameter('shared_with', $userId, IQueryBuilder::PARAM_STR); + ->setParameter('user_id', $userId, IQueryBuilder::PARAM_STR); foreach ($params as $key => $value) { $builder->andWhere("${key} = " . $builder->createNamedParameter($value)); @@ -94,11 +93,10 @@ 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 AND items.shared_by = \'\') OR items.shared_with = :shared_with') + ->where('feeds.user_id = :user_id') ->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); @@ -146,11 +144,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 = :user_id AND items.shared_by = \'\') OR items.shared_with = :shared_with') + ->andWhere('feeds.user_id = :user_id') ->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); @@ -304,9 +301,8 @@ 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 = :userId AND items.shared_by = \'\') OR items.shared_with = :sharedWith') + ->where('feeds.user_id = :userId') ->setParameter('userId', $userId) - ->setParameter('sharedWith', $userId) ->orderBy('items.last_modified', 'DESC') ->addOrderBy('items.id', 'DESC') ->setMaxResults(1); @@ -334,7 +330,6 @@ class ItemMapperV2 extends NewsMapperV2 ->from($this->tableName, 'items') ->innerJoin('items', FeedMapperV2::TABLE_NAME, 'feeds', 'items.feed_id = feeds.id') ->andWhere('items.last_modified >= :updatedSince') - ->andWhere('items.shared_by = \'\'') ->andWhere('feeds.user_id = :userId') ->andWhere('feeds.id = :feedId') ->andWhere('feeds.deleted_at = 0') @@ -375,7 +370,6 @@ class ItemMapperV2 extends NewsMapperV2 ->innerJoin('items', FeedMapperV2::TABLE_NAME, 'feeds', 'items.feed_id = feeds.id') ->innerJoin('feeds', FolderMapperV2::TABLE_NAME, 'folders', 'feeds.folder_id = folders.id') ->andWhere('items.last_modified >= :updatedSince') - ->andWhere('items.shared_by = \'\'') ->andWhere('feeds.user_id = :userId') ->andWhere('feeds.deleted_at = 0') ->andWhere('folders.id = :folderId') @@ -392,36 +386,6 @@ class ItemMapperV2 extends NewsMapperV2 } /** - * @param string $userId - * @param int|null $folderId - * @param int $updatedSince - * @param bool $hideRead - * - * @return Item[] - */ - public function findAllSharedAfter( - string $userId, - int $updatedSince, - bool $hideRead - ): array { - $builder = $this->db->getQueryBuilder(); - - $builder->select('items.*') - ->from($this->tableName, 'items') - ->andWhere('items.last_modified >= :updatedSince') - ->andWhere('items.shared_with = :sharedWith') - ->setParameters(['updatedSince' => $updatedSince, 'sharedWith' => $userId]) - ->orderBy('items.last_modified', 'DESC') - ->addOrderBy('items.id', 'DESC'); - - if ($hideRead === true) { - $builder->andWhere('items.unread = 1'); - } - - return $this->findEntities($builder); - } - - /** * @param string $userId * @param int $updatedSince * @param int $feedType @@ -438,8 +402,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 AND items.shared_by = \'\') OR items.shared_with = :sharedWith') - ->setParameters(['updatedSince' => $updatedSince, 'userId' => $userId, 'sharedWith' => $userId]) + ->andWhere('feeds.user_id = :userId') + ->setParameters(['updatedSince' => $updatedSince, 'userId' => $userId]) ->orderBy('items.last_modified', 'DESC') ->addOrderBy('items.id', 'DESC'); @@ -505,7 +469,6 @@ class ItemMapperV2 extends NewsMapperV2 ->andWhere('feeds.deleted_at = 0') ->andWhere('feeds.user_id = :userId') ->andWhere('items.feed_id = :feedId') - ->andWhere('items.shared_by = \'\'') ->setParameter('userId', $userId) ->setParameter('feedId', $feedId) ->orderBy('items.last_modified', ($oldestFirst ? 'ASC' : 'DESC')) @@ -569,7 +532,6 @@ class ItemMapperV2 extends NewsMapperV2 ->innerJoin('items', FeedMapperV2::TABLE_NAME, 'feeds', 'items.feed_id = feeds.id') ->andWhere('feeds.user_id = :userId') ->andWhere('feeds.deleted_at = 0') - ->andWhere('items.shared_by = \'\'') ->andWhere($folderWhere) ->setParameter('userId', $userId) ->orderBy('items.last_modified', ($oldestFirst ? 'ASC' : 'DESC')) @@ -601,62 +563,12 @@ class ItemMapperV2 extends NewsMapperV2 } /** - * Returns all items shared with a user - * - * @param string $userId - * @param int $limit - * @param int $offset - * @param bool $hideRead - * @param bool $oldestFirst - * @param array $search - * - * @return Item[] - */ - public function findAllSharedWithUser( - string $userId, - int $limit, - int $offset, - bool $hideRead, - bool $oldestFirst, - array $search - ): array { - $builder = $this->db->getQueryBuilder(); - - $builder->select('items.*') - ->from($this->tableName, 'items') - ->andWhere('items.shared_with = :sharedWith') - ->setParameter('sharedWith', $userId) - ->setMaxResults($limit) - ->orderBy('items.last_modified', ($oldestFirst ? 'ASC' : 'DESC')) - ->addOrderBy('items.id', ($oldestFirst ? 'ASC' : 'DESC')); - - if ($search !== []) { - foreach ($search as $key => $term) { - $term = $this->db->escapeLikeParameter($term); - $builder->andWhere("items.search_index LIKE :term${key}") - ->setParameter("term${key}", "%$term%"); - } - } - - if ($offset !== 0) { - $builder->andWhere($this->offsetWhere($oldestFirst)) - ->setParameter('offset', $offset); - } - - if ($hideRead === true) { - $builder->andWhere('items.unread = 1'); - } - - return $this->findEntities($builder); - } - - /** - * @param string $userId - * @param int $type - * @param int $limit - * @param int $offset - * @param bool $oldestFirst - * @param array $search + * @param string $userId User identifier + * @param int $type Type of items to retrieve + * @param int $limit Max items to retrieve + * @param int $offset First item ID to retrieve + * @param bool $oldestFirst Chronological sort + * @param array $search Search terms * * @return Item[] * @throws ServiceValidationException @@ -674,10 +586,9 @@ 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 AND items.shared_by = \'\') OR items.shared_with = :sharedWith') + ->andWhere('feeds.user_id = :userId') ->andWhere('feeds.deleted_at = 0') ->setParameter('userId', $userId) - ->setParameter('sharedWith', $userId) ->orderBy('items.last_modified', ($oldestFirst ? 'ASC' : 'DESC')) ->addOrderBy('items.id', ($oldestFirst ? 'ASC' : 'DESC')); diff --git a/lib/Service/ItemServiceV2.php b/lib/Service/ItemServiceV2.php index 3dd1b04d7..d7955e265 100644 --- a/lib/Service/ItemServiceV2.php +++ b/lib/Service/ItemServiceV2.php @@ -295,18 +295,6 @@ class ItemServiceV2 extends Service return $this->mapper->findAllInFolderAfter($userId, $folderId, $updatedSince, $hideRead); } - /** - * Returns all new shared items - * @param string $userId the name of the user - * @param int $updatedSince a timestamp with the minimal modification date - * @param boolean $hideRead if unread items should also be returned - * - * @return array of items - */ - public function findAllSharedAfter(string $userId, int $updatedSince, bool $hideRead): array - { - return $this->mapper->findAllSharedAfter($userId, $updatedSince, $hideRead); - } /** * Returns all new items of a type @@ -382,31 +370,6 @@ class ItemServiceV2 extends Service return $this->mapper->findAllFolder($userId, $folderId, $limit, $offset, $hideRead, $oldestFirst, $search); } /** - * Returns all items shared with a user - * - * @param int|null $folderId the id of the folder - * @param int $limit how many items should be returned - * @param int $offset the offset - * @param boolean $hideRead if unread items should also be returned - * @param boolean $oldestFirst if it should be ordered by oldest first - * @param string $userId the name of the user - * @param string[] $search an array of keywords that the result should - * contain in either the author, title, link - * or body - * - * @return array of items - */ - public function findAllSharedWithUserWithFilters( - string $userId, - int $limit, - int $offset, - bool $hideRead, - bool $oldestFirst, - array $search = [] - ): array { - return $this->mapper->findAllSharedWithUser($userId, $limit, $offset, $hideRead, $oldestFirst, $search); - } - /** * Returns all items * * @param int $type the type of the feed @@ -486,19 +449,4 @@ class ItemServiceV2 extends Service return $this->mapper->insert($sharedItem); } - - /** - * Return all items shared with a given user - * - * @param string $userId - * - * @return Item[] - */ - public function sharedWithUser(string $userId): array - { - return $this->findAllForUser($userId, [ - 'shared_with' => $userId, - 'unread' => true - ]); - } } |