diff options
author | Bernhard Posselt <nukeawhale@gmail.com> | 2013-03-26 18:04:02 +0100 |
---|---|---|
committer | Bernhard Posselt <nukeawhale@gmail.com> | 2013-03-26 18:04:02 +0100 |
commit | c8d3f8fb4681f6993f1c9389e507df0724f56579 (patch) | |
tree | 312b48cdbc17c23d1e7aac6513f40e0a5813fdbf /db | |
parent | 8e1e0f5281c1ee49fe7f6d84ba8f2b709ebf7f40 (diff) |
added casting information for data objects
Diffstat (limited to 'db')
-rw-r--r-- | db/feed.php | 7 | ||||
-rw-r--r-- | db/feedmapper.php | 37 | ||||
-rw-r--r-- | db/folder.php | 5 | ||||
-rw-r--r-- | db/item.php | 9 | ||||
-rw-r--r-- | db/itemmapper.php | 6 |
5 files changed, 48 insertions, 16 deletions
diff --git a/db/feed.php b/db/feed.php index da2a2d904..f337448a4 100644 --- a/db/feed.php +++ b/db/feed.php @@ -39,4 +39,11 @@ class Feed extends Entity { public $folderId; public $unreadCount; + public function __construct(){ + $this->addType('parentId', 'int'); + $this->addType('added', 'int'); + $this->addType('folderId', 'int'); + $this->addType('unreadCount', 'int'); + } + }
\ No newline at end of file diff --git a/db/feedmapper.php b/db/feedmapper.php index 05fa729b4..d84cebad1 100644 --- a/db/feedmapper.php +++ b/db/feedmapper.php @@ -39,11 +39,17 @@ class FeedMapper extends Mapper implements IMapper { public function find($id, $userId){ - $sql = 'SELECT * FROM `*PREFIX*news_feeds` ' . - 'WHERE `id` = ? ' . - 'AND `user_id` = ?'; + $sql = 'SELECT `feeds`.*, COUNT(`items`.`id`) AS `unread_count` ' . + 'FROM `*PREFIX*news_feeds` `feeds` ' . + 'LEFT JOIN `*PREFIX*news_items` `items` ' . + 'ON `feeds`.`id` = `items`.`feed_id` ' . + 'AND (`items`.`status` & ?) > 0 ' . + 'WHERE `feeds`.`id` = ? ' . + 'AND `feeds`.`user_id` = ? ' . + 'GROUP BY `feeds`.`id`'; + $params = array(StatusFlag::UNREAD, $id, $userId); - $row = $this->findOneQuery($sql, array($id, $userId)); + $row = $this->findOneQuery($sql, $params); $feed = new Feed(); $feed->fromRow($row); @@ -68,12 +74,12 @@ class FeedMapper extends Mapper implements IMapper { public function findAllFromUser($userId){ $sql = 'SELECT `feeds`.*, COUNT(`items`.`id`) AS `unread_count` ' . 'FROM `*PREFIX*news_feeds` `feeds` ' . - 'LEFT OUTER JOIN `*PREFIX*news_items` `items` ' . + 'LEFT JOIN `*PREFIX*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); + 'AND (`items`.`status` & ?) > 0 ' . + 'WHERE `feeds`.`user_id` = ? ' . + 'GROUP BY `feeds`.`id`'; + $params = array(StatusFlag::UNREAD, $userId); return $this->findAllRows($sql, $params); } @@ -87,10 +93,15 @@ class FeedMapper extends Mapper implements IMapper { public function findByUrlHash($hash, $userId){ - $sql = 'SELECT * FROM `*PREFIX*news_feeds` ' . - 'WHERE `url_hash` = ? ' . - 'AND `user_id` = ?'; - $params = array($hash, $userId); + $sql = 'SELECT `feeds`.*, COUNT(`items`.`id`) AS `unread_count` ' . + 'FROM `*PREFIX*news_feeds` `feeds` ' . + 'LEFT JOIN `*PREFIX*news_items` `items` ' . + 'ON `feeds`.`id` = `items`.`feed_id` ' . + 'AND (`items`.`status` & ?) > 0 ' . + 'WHERE `feeds`.`url_hash` = ? ' . + 'AND `feeds`.`user_id` = ? ' . + 'GROUP BY `feeds`.`id`'; + $params = array(StatusFlag::UNREAD, $hash, $userId); $row = $this->findOneQuery($sql, $params); $feed = new Feed(); diff --git a/db/folder.php b/db/folder.php index aa5cf66a9..adc4a8572 100644 --- a/db/folder.php +++ b/db/folder.php @@ -35,4 +35,9 @@ class Folder extends Entity { public $userId; public $opened; + public function __construct(){ + $this->addType('parentId', 'int'); + $this->addType('opened', 'bool'); + } + }
\ No newline at end of file diff --git a/db/item.php b/db/item.php index 6050d0e9b..4a3bd9733 100644 --- a/db/item.php +++ b/db/item.php @@ -44,6 +44,15 @@ class Item extends Entity { public $feedTitle; public $lastModified; + + public function __construct(){ + $this->addType('pubDate', 'int'); + $this->addType('feedId', 'int'); + $this->addType('status', 'int'); + $this->addType('lastModified', 'int'); + } + + public function setRead() { $this->markFieldUpdated('status'); $this->status &= ~StatusFlag::UNREAD; diff --git a/db/itemmapper.php b/db/itemmapper.php index d54bbade1..0208472b3 100644 --- a/db/itemmapper.php +++ b/db/itemmapper.php @@ -107,7 +107,7 @@ class ItemMapper extends Mapper implements IMapper { public function findAllNewFeed($id, $updatedSince, $status, $userId){ $sql = 'AND `items`.`feed_id` = ? ' . - 'AND `items`.`lastmodified` >= ?'; + 'AND `items`.`last_modified` >= ?'; $sql = $this->makeSelectQueryStatus($sql); $params = array($userId, $status, $id, $updatedSince); return $this->findAllRows($sql, $params); @@ -116,7 +116,7 @@ class ItemMapper extends Mapper implements IMapper { public function findAllNewFolder($id, $updatedSince, $status, $userId){ $sql = 'AND `feeds`.`folder_id` = ? ' . - 'AND `items`.`lastmodified` >= ?'; + 'AND `items`.`last_modified` >= ?'; $sql = $this->makeSelectQueryStatus($sql); $params = array($userId, $status, $id, $updatedSince); return $this->findAllRows($sql, $params); @@ -124,7 +124,7 @@ class ItemMapper extends Mapper implements IMapper { public function findAllNew($updatedSince, $status, $userId){ - $sql = $this->makeSelectQueryStatus('AND `items`.`lastmodified` >= ?'); + $sql = $this->makeSelectQueryStatus('AND `items`.`last_modified` >= ?'); $params = array($userId, $status, $updatedSince); return $this->findAllRows($sql, $params); } |