/** * @brief Delete the folder and all its feeds from the database * @param folder the folder to be deleted (an instance of OCA\News\Folder) * @returns true if the folder has been deleted, false if an error occurred */ public function deleteById($folderid) { if ($folderid == null) { return false; } // delete child folders $stmt = \OCP\DB::prepare('SELECT id FROM ' . self::tableName . ' WHERE parent_id = ? AND user_id = ?'); $result = $stmt->execute(array($folderid, $this->userid)); while ($row = $result->fetchRow()) { if (!self::deleteById($row['id'])) { return false; } } $stmt = \OCP\DB::prepare('DELETE FROM ' . self::tableName . ' WHERE id = ? AND user_id = ?'); $result = $stmt->execute(array($folderid, $this->userid)); $feedMapper = new FeedMapper($this->userid); //TODO: handle the value that the execute returns if (!$feedMapper->deleteAll($folderid)) { return false; } return true; }