summaryrefslogtreecommitdiffstats
path: root/lib/feedmapper.php
diff options
context:
space:
mode:
authorGregor Tätzner <gregor@freenet.de>2012-08-04 10:31:57 +0200
committerGregor Tätzner <gregor@freenet.de>2012-08-04 10:31:57 +0200
commit91d194a5df74ba79e40fb1be8f87d79a506d2c85 (patch)
treef4c296584c7f06966ddc849c8d66bdf80aea1ddc /lib/feedmapper.php
parentb22c89c73ddc61eefa414e2e06e4802aa051d392 (diff)
Polish deleteAll functions. It's not necessary to use sql joins
Diffstat (limited to 'lib/feedmapper.php')
-rw-r--r--lib/feedmapper.php14
1 files changed, 3 insertions, 11 deletions
diff --git a/lib/feedmapper.php b/lib/feedmapper.php
index 4e3987a17..6461b6bf7 100644
--- a/lib/feedmapper.php
+++ b/lib/feedmapper.php
@@ -213,27 +213,19 @@ class OC_News_FeedMapper {
return deleteById($id);
}
- //it's more complicated tan this...recursive delete, or delete with a join
public function deleteAll($folderid){
if ($folderid == null) {
return false;
}
- // delete items
- $itemMapper = new OC_News_ItemMapper();
- $stmt = OCP\DB::prepare('SELECT ' . self::tableName . '.id FROM ' . self::tableName .' INNER JOIN ' . OC_News_ItemMapper::tableName .
- ' ON ' . self::tableName . '.id = ' . OC_News_ItemMapper::tableName . '.feed_id WHERE folder_id = ?');
+ $stmt = OCP\DB::prepare('SELECT id FROM ' . self::tableName . ' WHERE folder_id = ?');
$result = $stmt->execute(array($folderid));
while ($row = $result->fetchRow()) {
- $itemMapper->deleteAll($row['id']);
+ if(!self::deleteById($row['id']))
+ return false;
}
- // delete feeds
- $stmt = OCP\DB::prepare('DELETE FROM ' . self::tableName .' WHERE folder_id = ?');
- $result = $stmt->execute(array($folderid));
- //TODO: handle the value that the execute returns
-
return true;
}
} \ No newline at end of file