From 4a107b3d53c4fe651ac704251b99e04a53cd587f Mon Sep 17 00:00:00 2001 From: Sean Molenaar Date: Tue, 16 Feb 2021 21:17:10 +0100 Subject: General: Fix folder query Signed-off-by: Sean Molenaar --- lib/Controller/FeedController.php | 8 ++++---- lib/Controller/ItemApiController.php | 10 +++++----- lib/Controller/ItemController.php | 10 +++++----- lib/Controller/PageController.php | 4 ++-- lib/Db/ItemMapperV2.php | 15 ++++++++++----- lib/Db/ListType.php | 16 ++++++++-------- lib/Service/ItemServiceV2.php | 4 ++-- 7 files changed, 36 insertions(+), 31 deletions(-) (limited to 'lib') diff --git a/lib/Controller/FeedController.php b/lib/Controller/FeedController.php index 681dda4bc..c80a5c327 100644 --- a/lib/Controller/FeedController.php +++ b/lib/Controller/FeedController.php @@ -24,7 +24,7 @@ use OCP\IRequest; use OCP\IConfig; use OCP\AppFramework\Http; -use OCA\News\Db\FeedType; +use OCA\News\Db\ListType; use OCP\IUserSession; class FeedController extends Controller @@ -122,10 +122,10 @@ class FeedController extends Controller $feedType = intval($feedType); switch ($feedType) { - case FeedType::FOLDER: + case ListType::FOLDER: $this->folderService->find($this->getUserId(), $feedId); break; - case FeedType::FEED: + case ListType::FEED: $this->feedService->find($this->getUserId(), $feedId); break; default: @@ -133,7 +133,7 @@ class FeedController extends Controller } } catch (ServiceNotFoundException $ex) { $feedId = 0; - $feedType = FeedType::SUBSCRIPTIONS; + $feedType = ListType::ALL_ITEMS; } return [ diff --git a/lib/Controller/ItemApiController.php b/lib/Controller/ItemApiController.php index 003c61fa2..5f9da73a6 100644 --- a/lib/Controller/ItemApiController.php +++ b/lib/Controller/ItemApiController.php @@ -15,7 +15,7 @@ namespace OCA\News\Controller; -use OCA\News\Db\FeedType; +use OCA\News\Db\ListType; use OCA\News\Service\Exceptions\ServiceConflictException; use OCA\News\Service\Exceptions\ServiceValidationException; use OCA\News\Service\ItemServiceV2; @@ -73,7 +73,7 @@ class ItemApiController extends ApiController bool $oldestFirst = false ): array { switch ($type) { - case FeedType::FEED: + case ListType::FEED: $items = $this->itemService->findAllInFeedWithFilters( $this->getUserId(), $id, @@ -83,7 +83,7 @@ class ItemApiController extends ApiController $oldestFirst ); break; - case FeedType::FOLDER: + case ListType::FOLDER: $items = $this->itemService->findAllInFolderWithFilters( $this->getUserId(), $id, @@ -130,10 +130,10 @@ class ItemApiController extends ApiController } switch ($type) { - case FeedType::FEED: + case ListType::FEED: $items = $this->itemService->findAllInFeedAfter($this->getUserId(), $id, $paddedLastModified, false); break; - case FeedType::FOLDER: + case ListType::FOLDER: $items = $this->itemService->findAllInFolderAfter($this->getUserId(), $id, $paddedLastModified, false); break; default: diff --git a/lib/Controller/ItemController.php b/lib/Controller/ItemController.php index 02a308d87..85f67ef7a 100644 --- a/lib/Controller/ItemController.php +++ b/lib/Controller/ItemController.php @@ -13,7 +13,7 @@ namespace OCA\News\Controller; -use OCA\News\Db\FeedType; +use OCA\News\Db\ListType; use OCA\News\Service\Exceptions\ServiceConflictException; use OCA\News\Service\FeedServiceV2; use OCP\AppFramework\Http\JSONResponse; @@ -136,7 +136,7 @@ class ItemController extends Controller } switch ($type) { - case FeedType::FEED: + case ListType::FEED: $items = $this->itemService->findAllInFeedWithFilters( $this->getUserId(), $id, @@ -147,7 +147,7 @@ class ItemController extends Controller $search_items ); break; - case FeedType::FOLDER: + case ListType::FOLDER: $items = $this->itemService->findAllInFolderWithFilters( $this->getUserId(), $id, @@ -201,7 +201,7 @@ class ItemController extends Controller try { switch ($type) { - case FeedType::FEED: + case ListType::FEED: $items = $this->itemService->findAllInFeedAfter( $this->getUserId(), $id, @@ -209,7 +209,7 @@ class ItemController extends Controller !$showAll ); break; - case FeedType::FOLDER: + case ListType::FOLDER: $items = $this->itemService->findAllInFolderAfter( $this->getUserId(), $id, diff --git a/lib/Controller/PageController.php b/lib/Controller/PageController.php index 87ed91c73..9f17f5690 100644 --- a/lib/Controller/PageController.php +++ b/lib/Controller/PageController.php @@ -25,7 +25,7 @@ use OCP\AppFramework\Http\ContentSecurityPolicy; use OCA\News\Service\StatusService; use OCA\News\Explore\RecommendedSites; -use OCA\News\Db\FeedType; +use OCA\News\Db\ListType; use OCP\IUserSession; class PageController extends Controller @@ -204,7 +204,7 @@ class PageController extends Controller $this->getUserId(), $this->appName, 'lastViewedFeedType', - FeedType::EXPLORE + ListType::EXPLORE ); try { diff --git a/lib/Db/ItemMapperV2.php b/lib/Db/ItemMapperV2.php index cfd30b75e..1ef9da244 100644 --- a/lib/Db/ItemMapperV2.php +++ b/lib/Db/ItemMapperV2.php @@ -12,6 +12,7 @@ namespace OCA\News\Db; +use OC\DB\QueryBuilder\Literal; use OCA\News\Service\Exceptions\ServiceValidationException; use Doctrine\DBAL\FetchMode; use OCA\News\Utility\Time; @@ -386,12 +387,14 @@ class ItemMapperV2 extends NewsMapperV2 ->addOrderBy('items.id', 'DESC'); switch ($feedType) { - case FeedType::STARRED: + case ListType::STARRED: $builder->andWhere('items.starred = 1'); break; - case FeedType::UNREAD: + case ListType::UNREAD: $builder->andWhere('items.unread = 1'); break; + case ListType::ALL_ITEMS: + break; default: throw new ServiceValidationException('Unexpected Feed type in call'); } @@ -473,7 +476,7 @@ class ItemMapperV2 extends NewsMapperV2 if ($folderId === null) { $folderWhere = $builder->expr()->isNull('feeds.folder_id'); } else { - $folderWhere = $builder->expr()->eq('feeds.folder_id', $folderId); + $folderWhere = $builder->expr()->eq('feeds.folder_id', new Literal($folderId), IQueryBuilder::PARAM_INT); } $builder->select('items.*') @@ -542,12 +545,14 @@ class ItemMapperV2 extends NewsMapperV2 } switch ($type) { - case FeedType::STARRED: + case ListType::STARRED: $builder->andWhere('items.starred = 1'); break; - case FeedType::UNREAD: + case ListType::UNREAD: $builder->andWhere('items.unread = 1'); break; + case ListType::ALL_ITEMS: + break; default: throw new ServiceValidationException('Unexpected Feed type in call'); } diff --git a/lib/Db/ListType.php b/lib/Db/ListType.php index 1ccd592a8..e96e29ed6 100644 --- a/lib/Db/ListType.php +++ b/lib/Db/ListType.php @@ -18,13 +18,13 @@ namespace OCA\News\Db; * * @package OCA\News\Db */ -class FeedType +class ListType { - const FEED = 0; - const FOLDER = 1; - const STARRED = 2; - const SUBSCRIPTIONS = 3; - const SHARED = 4; - const EXPLORE = 5; - const UNREAD = 6; + const FEED = 0; + const FOLDER = 1; + const STARRED = 2; + const ALL_ITEMS = 3; + const SHARED = 4; + const EXPLORE = 5; + const UNREAD = 6; } diff --git a/lib/Service/ItemServiceV2.php b/lib/Service/ItemServiceV2.php index 8a518b5bd..da675450f 100644 --- a/lib/Service/ItemServiceV2.php +++ b/lib/Service/ItemServiceV2.php @@ -14,7 +14,7 @@ namespace OCA\News\Service; use OCA\News\AppInfo\Application; use OCA\News\Db\Feed; -use OCA\News\Db\FeedType; +use OCA\News\Db\ListType; use OCA\News\Db\Item; use OCA\News\Db\ItemMapperV2; use OCA\News\Service\Exceptions\ServiceConflictException; @@ -307,7 +307,7 @@ class ItemServiceV2 extends Service */ public function findAllAfter(string $userId, int $feedType, int $updatedSince): array { - if (!in_array($feedType, [FeedType::STARRED, FeedType::UNREAD])) { + if (!in_array($feedType, [ListType::STARRED, ListType::UNREAD, ListType::ALL_ITEMS])) { throw new ServiceValidationException('Trying to find in unknown type'); } -- cgit v1.2.3