summaryrefslogtreecommitdiffstats
path: root/db
diff options
context:
space:
mode:
authorBernhard Posselt <nukeawhale@gmail.com>2013-04-05 22:56:22 +0200
committerBernhard Posselt <nukeawhale@gmail.com>2013-04-05 22:56:22 +0200
commit2d8f76d28f47bc3992c0e86c194fe51427805b54 (patch)
treed6bac7603c37f24c0e0bdf549c778ba4eb5b640d /db
parent4560ab85567564e59647994331328d8949df6b5a (diff)
fix statusflag db query bugs and unittests
Diffstat (limited to 'db')
-rw-r--r--db/feedmapper.php15
-rw-r--r--db/itemmapper.php10
2 files changed, 17 insertions, 8 deletions
diff --git a/db/feedmapper.php b/db/feedmapper.php
index f2c3a8ada..3c931aabb 100644
--- a/db/feedmapper.php
+++ b/db/feedmapper.php
@@ -43,11 +43,12 @@ class FeedMapper extends Mapper implements IMapper {
'FROM `*PREFIX*news_feeds` `feeds` ' .
'LEFT JOIN `*PREFIX*news_items` `items` ' .
'ON `feeds`.`id` = `items`.`feed_id` ' .
- 'AND (`items`.`status` & ?) = ? ' .
+ 'AND (`items`.`status` & ' . StatusFlag::UNREAD . ') = ' .
+ StatusFlag::UNREAD . ' ' .
'WHERE `feeds`.`id` = ? ' .
'AND `feeds`.`user_id` = ? ' .
'GROUP BY `feeds`.`id`';
- $params = array(StatusFlag::UNREAD, StatusFlag::UNREAD, $id, $userId);
+ $params = array($id, $userId);
$row = $this->findOneQuery($sql, $params);
$feed = new Feed();
@@ -76,10 +77,11 @@ class FeedMapper extends Mapper implements IMapper {
'FROM `*PREFIX*news_feeds` `feeds` ' .
'LEFT JOIN `*PREFIX*news_items` `items` ' .
'ON `feeds`.`id` = `items`.`feed_id` ' .
- 'AND (`items`.`status` & ?) = ? ' .
+ 'AND (`items`.`status` & ' . StatusFlag::UNREAD . ') = ' .
+ StatusFlag::UNREAD . ' ' .
'WHERE `feeds`.`user_id` = ? ' .
'GROUP BY `feeds`.`id`';
- $params = array(StatusFlag::UNREAD, StatusFlag::UNREAD, $userId);
+ $params = array($userId);
return $this->findAllRows($sql, $params);
}
@@ -97,11 +99,12 @@ class FeedMapper extends Mapper implements IMapper {
'FROM `*PREFIX*news_feeds` `feeds` ' .
'LEFT JOIN `*PREFIX*news_items` `items` ' .
'ON `feeds`.`id` = `items`.`feed_id` ' .
- 'AND (`items`.`status` & ?) = ? ' .
+ 'AND (`items`.`status` & ' . StatusFlag::UNREAD . ') = ' .
+ StatusFlag::UNREAD . ' ' .
'WHERE `feeds`.`url_hash` = ? ' .
'AND `feeds`.`user_id` = ? ' .
'GROUP BY `feeds`.`id`';
- $params = array(StatusFlag::UNREAD, StatusFlag::UNREAD, $hash, $userId);
+ $params = array($hash, $userId);
$row = $this->findOneQuery($sql, $params);
$feed = new Feed();
diff --git a/db/itemmapper.php b/db/itemmapper.php
index ca93a8b2a..daff18466 100644
--- a/db/itemmapper.php
+++ b/db/itemmapper.php
@@ -65,6 +65,11 @@ class ItemMapper extends Mapper implements IMapper {
// code: we take them variables and we cast the shit out of them
$status = (int) $status;
+ // prepare for the unexpected
+ if(!is_numeric($status)) {
+ die(); die(); die('If you can read this something is terribly wrong');
+ }
+
// now im gonna slowly stick them in the query, be careful!
return $this->makeSelectQuery(
'AND ((`items`.`status` & ' . $status . ') = ' . $status . ') ' .
@@ -89,9 +94,10 @@ class ItemMapper extends Mapper implements IMapper {
'JOIN `*PREFIX*news_items` `items` ' .
'ON `items`.`feed_id` = `feeds`.`id` ' .
'AND `feeds`.`user_id` = ? ' .
- 'WHERE ((`items`.`status` & ?) = ?)';
+ 'WHERE ((`items`.`status` & ' . StatusFlag::STARRED . ') = ' .
+ StatusFlag::STARRED . ')';
- $params = array($userId, StatusFlag::STARRED, StatusFlag::STARRED);
+ $params = array($userId);
$result = $this->execute($sql, $params)->fetchRow();