diff options
Diffstat (limited to 'db')
-rw-r--r-- | db/feedmapper.php | 12 | ||||
-rw-r--r-- | db/foldermapper.php | 17 |
2 files changed, 29 insertions, 0 deletions
diff --git a/db/feedmapper.php b/db/feedmapper.php index 22f71d7a3..05fa729b4 100644 --- a/db/feedmapper.php +++ b/db/feedmapper.php @@ -27,6 +27,8 @@ namespace OCA\News\Db; use \OCA\AppFramework\Core\API; use \OCA\AppFramework\Db\Mapper; +use \OCA\AppFramework\Db\Entity; + class FeedMapper extends Mapper implements IMapper { @@ -95,7 +97,17 @@ class FeedMapper extends Mapper implements IMapper { $feed->fromRow($row); return $feed; + } + + + public function delete(Entity $entity){ + parent::delete($entity); + // someone please slap me for doing this manually :P + // we needz CASCADE + FKs please + $sql = 'DELETE FROM `*PREFIX*news_items` WHERE `feed_id` = ?'; + $params = array($entity->getId()); + $this->execute($sql, $params); } }
\ No newline at end of file diff --git a/db/foldermapper.php b/db/foldermapper.php index 82739df1b..8978bb45b 100644 --- a/db/foldermapper.php +++ b/db/foldermapper.php @@ -27,6 +27,7 @@ namespace OCA\News\Db; use \OCA\AppFramework\Core\API; use \OCA\AppFramework\Db\Mapper; +use \OCA\AppFramework\Db\Entity; class FolderMapper extends Mapper implements IMapper { @@ -79,4 +80,20 @@ class FolderMapper extends Mapper implements IMapper { return $this->findAllRows($sql, $params); } + + + public function delete(Entity $entity){ + parent::delete($entity); + + // someone please slap me for doing this manually :P + // we needz CASCADE + FKs please + $sql = 'DELETE FROM `*PREFIX*news_feeds` WHERE `folder_id` = ?; '. + 'DELETE `items` FROM `*PREFIX*news_items` `items` '. + 'LEFT JOIN `*PREFIX*news_feeds` `feeds` ON '. + '`items`.`feed_id` = `feed`.`id` WHERE `feeds`.`id` IS NULL;'; + $params = array($entity->getId()); + $this->execute($sql, $params); + } + + }
\ No newline at end of file |