summaryrefslogtreecommitdiffstats
path: root/db
diff options
context:
space:
mode:
Diffstat (limited to 'db')
-rw-r--r--db/feedmapper.php12
-rw-r--r--db/foldermapper.php17
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