summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorSean Molenaar <sean@seanmolenaar.eu>2021-02-16 21:17:10 +0100
committerSean Molenaar <SMillerDev@users.noreply.github.com>2021-02-20 13:57:09 +0100
commit4a107b3d53c4fe651ac704251b99e04a53cd587f (patch)
tree9700c89992f1ad739023d73fcd434250c323089e /lib
parent01e1db329ced43323654990828744d577cac4ba8 (diff)
General: Fix folder query
Signed-off-by: Sean Molenaar <sean@seanmolenaar.eu>
Diffstat (limited to 'lib')
-rw-r--r--lib/Controller/FeedController.php8
-rw-r--r--lib/Controller/ItemApiController.php10
-rw-r--r--lib/Controller/ItemController.php10
-rw-r--r--lib/Controller/PageController.php4
-rw-r--r--lib/Db/ItemMapperV2.php15
-rw-r--r--lib/Db/ListType.php16
-rw-r--r--lib/Service/ItemServiceV2.php4
7 files changed, 36 insertions, 31 deletions
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');
}