summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--db/feedmapper.php14
-rw-r--r--doc/mapper spec.md7
-rw-r--r--tests/db/FeedMapperTest.php17
3 files changed, 30 insertions, 8 deletions
diff --git a/db/feedmapper.php b/db/feedmapper.php
index 2a84574df..a2d0f8fc7 100644
--- a/db/feedmapper.php
+++ b/db/feedmapper.php
@@ -57,7 +57,7 @@ class FeedMapper extends NewsMapper {
$feed = new Feed();
$feed->fromRow($row);
array_push($feeds, $feed);
- }
+ }
return $feeds;
}
@@ -78,4 +78,16 @@ class FeedMapper extends NewsMapper {
return $this->findAllRows($sql);
}
+
+ public function getStarredCount($userId){
+ $sql = 'SELECT COUNT(*) AS size FROM `*dbprefix*news_feeds` ' .
+ 'AND `user_id` = ? ' .
+ 'AND ((`status` & ?) > 0)';
+ $params = array($userId, StatusFlag::STARRED);
+
+ $result = $this->execute($sql, $params)->fetchRow();
+
+ return $result['size'];
+ }
+
} \ No newline at end of file
diff --git a/doc/mapper spec.md b/doc/mapper spec.md
index db77da5db..1080884db 100644
--- a/doc/mapper spec.md
+++ b/doc/mapper spec.md
@@ -43,10 +43,3 @@ foldermapper
find($feedId, $userId)
findAllFromUser($userId)
-
-feedmapper
-
-find($feedId, $userId)
-findAll()
-findAllFromUser($userId)
-getStarredCount($userId)
diff --git a/tests/db/FeedMapperTest.php b/tests/db/FeedMapperTest.php
index c2dd6eced..90ad07626 100644
--- a/tests/db/FeedMapperTest.php
+++ b/tests/db/FeedMapperTest.php
@@ -129,4 +129,21 @@ class FeedMapperTest extends \OCA\AppFramework\Utility\MapperTestUtility {
$this->assertEquals($this->feeds, $result);
}
+
+
+ public function testGetStarredCount(){
+ $userId = 'john';
+ $row = array(
+ array('size' => 9)
+ );
+ $sql = 'SELECT COUNT(*) AS size FROM `*dbprefix*news_feeds` ' .
+ 'AND `user_id` = ? ' .
+ 'AND ((`status` & ?) > 0)';
+
+ $this->setMapperResult($sql, array($userId, StatusFlag::STARRED), $row);
+
+ $result = $this->feedMapper->getStarredCount($userId);
+ $this->assertEquals($row[0]['size'], $result);
+ }
+
} \ No newline at end of file