diff options
Diffstat (limited to 'db')
-rw-r--r-- | db/feed.php | 2 | ||||
-rw-r--r-- | db/feedmapper.php | 16 | ||||
-rw-r--r-- | db/folder.php | 2 | ||||
-rw-r--r-- | db/foldermapper.php | 22 |
4 files changed, 40 insertions, 2 deletions
diff --git a/db/feed.php b/db/feed.php index 88879f8c4..22fbc359b 100644 --- a/db/feed.php +++ b/db/feed.php @@ -40,6 +40,7 @@ class Feed extends Entity implements IAPI { public $unreadCount; public $link; public $preventUpdate; + public $deletedAt; public function __construct(){ $this->addType('parentId', 'int'); @@ -47,6 +48,7 @@ class Feed extends Entity implements IAPI { $this->addType('folderId', 'int'); $this->addType('unreadCount', 'int'); $this->addType('preventUpdate', 'bool'); + $this->addType('deletedAt', 'int'); } diff --git a/db/feedmapper.php b/db/feedmapper.php index 9e371f1f0..438f2e78c 100644 --- a/db/feedmapper.php +++ b/db/feedmapper.php @@ -88,6 +88,7 @@ class FeedMapper extends Mapper implements IMapper { 'AND (`items`.`status` & ' . StatusFlag::UNREAD . ') = ' . StatusFlag::UNREAD . ' ' . 'WHERE `feeds`.`user_id` = ? ' . + 'AND `feeds`.`deleted_at` = 0 ' . 'GROUP BY `feeds`.`id`'; $params = array($userId); @@ -137,5 +138,20 @@ class FeedMapper extends Mapper implements IMapper { } + public function getToDelete($deleteOlderThan, $userId=null) { + $sql = 'SELECT * FROM `*PREFIX*news_feeds` ' . + 'WHERE `deleted_at` > 0 ' . + 'AND `deleted_at` < ?'; + $params = array($deleteOlderThan); + + // we need to sometimes only delete feeds of a user + if($userId !== null) { + $sql .= ' AND `user_id` = ?'; + array_push($params, $userId); + } + + return $this->findAllRows($sql, $params); + } + }
\ No newline at end of file diff --git a/db/folder.php b/db/folder.php index 24fa80000..7d1403c02 100644 --- a/db/folder.php +++ b/db/folder.php @@ -34,10 +34,12 @@ class Folder extends Entity implements IAPI { public $name; public $userId; public $opened; + public $deletedAt; public function __construct(){ $this->addType('parentId', 'int'); $this->addType('opened', 'bool'); + $this->addType('deletedAt', 'int'); } diff --git a/db/foldermapper.php b/db/foldermapper.php index 8978bb45b..f8d088cdb 100644 --- a/db/foldermapper.php +++ b/db/foldermapper.php @@ -65,7 +65,8 @@ class FolderMapper extends Mapper implements IMapper { public function findAllFromUser($userId){ $sql = 'SELECT * FROM `*PREFIX*news_folders` ' . - 'WHERE `user_id` = ?'; + 'WHERE `user_id` = ? ' . + 'AND `deleted_at` = 0'; $params = array($userId); return $this->findAllRows($sql, $params); @@ -74,7 +75,7 @@ class FolderMapper extends Mapper implements IMapper { public function findByName($folderName, $userId){ $sql = 'SELECT * FROM `*PREFIX*news_folders` ' . - 'WHERE `name` = ?' . + 'WHERE `name` = ? ' . 'AND `user_id` = ?'; $params = array($folderName, $userId); @@ -96,4 +97,21 @@ class FolderMapper extends Mapper implements IMapper { } + public function getToDelete($deleteOlderThan, $userId=null) { + $sql = 'SELECT * FROM `*PREFIX*news_folders` ' . + 'WHERE `deleted_at` > 0 ' . + 'AND `deleted_at` < ?'; + $params = array($deleteOlderThan); + + // we need to sometimes only delete feeds of a user + if($userId !== null) { + $sql .= ' AND `user_id` = ?'; + array_push($params, $userId); + } + + return $this->findAllRows($sql, $params); + } + + + }
\ No newline at end of file |