summaryrefslogtreecommitdiffstats
path: root/db
diff options
context:
space:
mode:
authorBernhard Posselt <nukeawhale@gmail.com>2013-03-22 13:47:45 +0100
committerBernhard Posselt <nukeawhale@gmail.com>2013-03-22 13:47:45 +0100
commit585667bdf4a06a7bcde1b7d2b9b42059135343dc (patch)
treef7b9b053e70a088280c83073d2fe72c9387bcefc /db
parent196177a0ca3fc0103d359eec44f46173be685413 (diff)
dont add feed twice
Diffstat (limited to 'db')
-rw-r--r--db/feedmapper.php18
-rw-r--r--db/itemmapper.php27
2 files changed, 21 insertions, 24 deletions
diff --git a/db/feedmapper.php b/db/feedmapper.php
index 0fc8d3114..131eb2090 100644
--- a/db/feedmapper.php
+++ b/db/feedmapper.php
@@ -84,16 +84,18 @@ class FeedMapper extends Mapper implements IMapper {
}
- public function getStarredCount($userId){
- $sql = 'SELECT COUNT(*) AS size FROM `*dbprefix*news_feeds` ' .
- 'AND `user_id` = ? ' .
- 'AND ((`status` & ?) > 0)';
- $params = array($userId, StatusFlag::STARRED);
+ public function findByUrlHash($hash, $userId){
+ $sql = 'SELECT * FROM `*dbprefix*news_feeds` ' .
+ 'WHERE `url_hash` = ? ' .
+ 'AND `user_id` = ?';
+ $params = array($hash, $userId);
- $result = $this->execute($sql, $params)->fetchRow();
+ $row = $this->findQuery($sql, $params);
+ $feed = new Feed();
+ $feed->fromRow($row);
- return $result['size'];
- }
+ return $feed;
+ }
} \ No newline at end of file
diff --git a/db/itemmapper.php b/db/itemmapper.php
index 2efa9b535..ee57e81e9 100644
--- a/db/itemmapper.php
+++ b/db/itemmapper.php
@@ -36,21 +36,6 @@ class ItemMapper extends Mapper implements IMapper {
}
- public function findByUrlHash($urlHash, $userId){
- $sql = 'SELECT `*dbprefix*news_items`.* FROM `*dbprefix*news_items` ' .
- 'JOIN `*dbprefix*news_feeds` ' .
- 'ON `*dbprefix*news_feeds`.`id` = `*dbprefix*news_items`.`feed_id` ' .
- 'WHERE `*dbprefix*news_items`.`url_hash` = ? ' .
- 'AND `*dbprefix*news_feeds`.`user_id` = ? ';
- $params = array($urlHash, $userId);
-
- $row = $this->findQuery($sql, $params);
- $item = new Item();
- $item->fromRow($row);
-
- return $item;
- }
-
protected function findAllRows($sql, $params, $limit=null, $offset=null) {
$result = $this->execute($sql, $params, $limit, $offset);
$items = array();
@@ -161,7 +146,17 @@ class ItemMapper extends Mapper implements IMapper {
public function starredCount($userId){
- // TODO
+ $sql = 'SELECT COUNT(*) AS size FROM `*dbprefix*news_feeds` `feeds` ' .
+ 'JOIN `*dbprefix*news_items` `items` ' .
+ 'ON `items`.`feed_id` = `feeds`.`id`' .
+ 'WHERE `feeds`.`user_id` = ? ' .
+ 'AND ((`items`.`status` & ?) > 0)';
+
+ $params = array($userId, StatusFlag::STARRED);
+
+ $result = $this->execute($sql, $params)->fetchRow();
+
+ return $result['size'];
}
}