diff options
author | Bernhard Posselt <nukeawhale@gmail.com> | 2013-03-21 16:18:43 +0100 |
---|---|---|
committer | Bernhard Posselt <nukeawhale@gmail.com> | 2013-03-21 16:18:43 +0100 |
commit | f475d882d0a76908400e9857f7e8a4ae8ad8a752 (patch) | |
tree | 58b6bfafbf7d2d01e992ebd95990ddaa610180e8 | |
parent | 2452dfa4015ed2a6fc9b70d897ba6ca7da009193 (diff) |
also get unread count when fetching feeds from a user
-rw-r--r-- | db/feedmapper.php | 10 | ||||
-rw-r--r-- | tests/controller/FolderControllerTest.php | 2 | ||||
-rw-r--r-- | tests/db/FeedMapperTest.php | 9 |
3 files changed, 15 insertions, 6 deletions
diff --git a/db/feedmapper.php b/db/feedmapper.php index fbadb989a..2f5a3d036 100644 --- a/db/feedmapper.php +++ b/db/feedmapper.php @@ -35,7 +35,6 @@ class FeedMapper extends NewsMapper { parent::__construct($api, 'news_feeds'); } - // TODO: add unread_count! public function find($id, $userId){ $sql = 'SELECT * FROM `*dbprefix*news_feeds` ' . @@ -65,8 +64,13 @@ class FeedMapper extends NewsMapper { public function findAllFromUser($userId){ - $sql = 'SELECT * FROM `*dbprefix*news_feeds` ' . - 'AND `user_id` = ?'; + $sql = 'SELECT `feeds`.*, COUNT(`items`.`id`) AS unread_count ' . + 'FROM `*dbprefix*news_feeds` `feeds` ' . + 'LEFT OUTER JOIN `*dbprefix*news_items` `items` ' . + 'ON `feeds`.`id` = `items`.`feed_id` ' . + 'WHERE (`items`.`status` & ?) > 0 ' . + 'AND `feeds`.`user_id` = ? ' . + 'GROUP BY `items`.`feed_id`'; $params = array($userId); return $this->findAllRows($sql, $params); diff --git a/tests/controller/FolderControllerTest.php b/tests/controller/FolderControllerTest.php index 531584ddc..346ddbd6e 100644 --- a/tests/controller/FolderControllerTest.php +++ b/tests/controller/FolderControllerTest.php @@ -60,7 +60,7 @@ class FolderControllerTest extends ControllerTestUtility { /** - * getAll + * folders */ public function testFoldersCalled(){ $this->folderBl->expects($this->once()) diff --git a/tests/db/FeedMapperTest.php b/tests/db/FeedMapperTest.php index 34747e0d9..8a0c2b733 100644 --- a/tests/db/FeedMapperTest.php +++ b/tests/db/FeedMapperTest.php @@ -120,8 +120,13 @@ class FeedMapperTest extends \OCA\AppFramework\Utility\MapperTestUtility { array('id' => $this->feeds[0]->getId()), array('id' => $this->feeds[1]->getId()) ); - $sql = 'SELECT * FROM `*dbprefix*news_feeds` ' . - 'AND `user_id` = ?'; + $sql = 'SELECT `feeds`.*, COUNT(`items`.`id`) AS unread_count ' . + 'FROM `*dbprefix*news_feeds` `feeds` ' . + 'LEFT OUTER JOIN `*dbprefix*news_items` `items` ' . + 'ON `feeds`.`id` = `items`.`feed_id` ' . + 'WHERE (`items`.`status` & ?) > 0 ' . + 'AND `feeds`.`user_id` = ? ' . + 'GROUP BY `items`.`feed_id`'; $this->setMapperResult($sql, array($userId), $rows); |