summaryrefslogtreecommitdiffstats
path: root/db
diff options
context:
space:
mode:
authorBernhard Posselt <nukeawhale@gmail.com>2013-03-26 18:04:02 +0100
committerBernhard Posselt <nukeawhale@gmail.com>2013-03-26 18:04:02 +0100
commitc8d3f8fb4681f6993f1c9389e507df0724f56579 (patch)
tree312b48cdbc17c23d1e7aac6513f40e0a5813fdbf /db
parent8e1e0f5281c1ee49fe7f6d84ba8f2b709ebf7f40 (diff)
added casting information for data objects
Diffstat (limited to 'db')
-rw-r--r--db/feed.php7
-rw-r--r--db/feedmapper.php37
-rw-r--r--db/folder.php5
-rw-r--r--db/item.php9
-rw-r--r--db/itemmapper.php6
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);
}