summaryrefslogtreecommitdiffstats
path: root/db
diff options
context:
space:
mode:
authorBernhard Posselt <nukeawhale@gmail.com>2013-03-20 19:05:56 +0100
committerBernhard Posselt <nukeawhale@gmail.com>2013-03-20 19:06:17 +0100
commit8f215ec03ba57e51dbbfef004069fb1e63c8fca1 (patch)
tree21bc3a85b59d05054f5834714b5ce80ab01745dc /db
parenteacd2a1755137d3016dad7177c06dc57ca033ccb (diff)
tests
Diffstat (limited to 'db')
-rw-r--r--db/entity.php~36
-rw-r--r--db/feedmapper.php270
-rw-r--r--db/item.php~84
-rw-r--r--db/itemmapper.php~493
-rw-r--r--db/newsmapper.php4
-rw-r--r--db/newsmapper.php~53
6 files changed, 31 insertions, 909 deletions
diff --git a/db/entity.php~ b/db/entity.php~
deleted file mode 100644
index 9adab3b7f..000000000
--- a/db/entity.php~
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-/**
-* ownCloud - News
-*
-* @author Alessandro Copyright
-* @author Bernhard Posselt
-* @copyright 2012 Alessandro Cosentino cosenal@gmail.com
-* @copyright 2012 Bernhard Posselt nukeawhale@gmail.com
-*
-* This library is free software; you can redistribute it and/or
-* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
-* License as published by the Free Software Foundation; either
-* version 3 of the License, or any later version.
-*
-* This library is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
-*
-* You should have received a copy of the GNU Affero General Public
-* License along with this library. If not, see <http://www.gnu.org/licenses/>.
-*
-*/
-
-namespace OCA\News\Db;
-
-abstract class Entity {
-
- public function fromRow($row){
- foreach($row as $key => $value){
- $this->$key = $value;
- }
- }
-
-} \ No newline at end of file
diff --git a/db/feedmapper.php b/db/feedmapper.php
index 62a7d41f5..9eb85c3fe 100644
--- a/db/feedmapper.php
+++ b/db/feedmapper.php
@@ -1,264 +1,48 @@
<?php
+
/**
-* ownCloud - News app
+* ownCloud - News
*
* @author Alessandro Cosentino
-* Copyright (c) 2012 - Alessandro Cosentino <cosenal@gmail.com>
+* @author Bernhard Posselt
+* @copyright 2012 Alessandro Cosentino cosenal@gmail.com
+* @copyright 2012 Bernhard Posselt nukeawhale@gmail.com
+*
+* This library is free software; you can redistribute it and/or
+* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+* License as published by the Free Software Foundation; either
+* version 3 of the License, or any later version.
+*
+* This library is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
*
-* This file is licensed under the Affero General Public License version 3 or later.
-* See the COPYING-README file
+* You should have received a copy of the GNU Affero General Public
+* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*
*/
-namespace OCA\News;
-
-/**
- * This class maps a feed to an entry in the feeds table of the database.
- */
-class FeedMapper {
-
- const tableName = '*PREFIX*news_feeds';
- private $userid;
-
- public function __construct($userid = null) {
- if ($userid !== null) {
- $this->userid = $userid;
- }
- else {
- $this->userid = \OCP\USER::getUser();
- }
- }
-
- /**
- * @brief
- * @param row a row from the feeds table of the database
- * @returns an object of the class OCA\News\Feed
- */
- public function fromRow($row) {
- $url = $row['url'];
- $title = $row['title'];
- $id = $row['id'];
- $folderid = $row['folder_id'];
- $feed = new Feed($url, $title, null, $id);
- $favicon = $row['favicon_link'];
- $feed->setFavicon($favicon);
- $feed->setFolderId($folderid);
-
- return $feed;
- }
-
- /**
- * @brief
- * @returns
- */
- public function findAll() {
- $query = 'SELECT * FROM ' . self::tableName . ' WHERE user_id = ?';
- $stmt = \OCP\DB::prepare($query);
- $result = $stmt->execute(array($this->userid));
-
- $feeds = array();
- while($row = $result->fetchRow()){
- $feed = $this->fromRow($row);
- array_push($feeds, $feed);
- }
-
- return $feeds;
- }
-
- /**
- * @brief returns the number of feeds that a user has
- * @returns the number of feeds that a user has
- */
- public function feedCount() {
- $query = 'SELECT COUNT(*) AS size FROM ' . self::tableName . ' WHERE user_id = ?';
- $stmt = \OCP\DB::prepare($query);
- $result = $stmt->execute(array($this->userid))->fetchRow();
- return $result['size'];
- }
-
-
- /**
- * @brief Retrieve a feed from the database
- * @param id The id of the feed in the database table.
- * @returns
- */
- public function findById($id) {
- $stmt = \OCP\DB::prepare('SELECT * FROM ' . self::tableName . ' WHERE id = ?');
- $result = $stmt->execute(array($id));
- if(!$row = $result->fetchRow())
- return null;
- $feed = self::fromRow($row);
- return $feed;
- }
-
- /**
- * @brief Retrieve all the feeds contained in the folder $folderid
- * @param folderid The id of the folder in the database table.
- * @returns a list of feeds
- */
- public function findByFolderId($folderid) {
- $stmt = \OCP\DB::prepare('SELECT * FROM ' . self::tableName . ' WHERE user_id = ? AND folder_id = ?');
- $result = $stmt->execute(array($this->userid, $folderid));
- $feeds = array();
- while ($row = $result->fetchRow()) {
- $feed = self::fromRow($row);
- $feeds[] = $feed;
- }
- return $feeds;
- }
-
-
- /**
- * @brief Retrieve a feed and all its items from the database
- * @param id The id of the feed in the database table.
- * @returns an instance of OCA\News\Feed
- */
- public function findWithItems($id) {
- $stmt = \OCP\DB::prepare('SELECT * FROM ' . self::tableName . ' WHERE id = ?');
- $result = $stmt->execute(array($id));
- $row = $result->fetchRow();
+namespace OCA\News\Db;
- $feed = self::fromRow($row);
- $itemMapper = new ItemMapper();
- $items = $itemMapper->findById($id);
- $feed->setItems($items);
- return $feed;
- }
+class FeedMapper extends NewsMapper {
- /**
- * @brief Find the id of a feed and all its items from the database
- * @param url url of the feed
- * @return id of the feed corresponding to the url passed as parameters
- * null - if there is no such feed
- */
- public function findIdFromUrl($url) {
- $url_hash = md5($url);
- $stmt = \OCP\DB::prepare('SELECT * FROM ' . self::tableName . ' WHERE url_hash = ?');
- $result = $stmt->execute(array($url_hash));
- $row = $result->fetchRow();
- $id = null;
- if ($row != null) {
- $id = $row['id'];
- }
- return $id;
- }
- public function mostRecent() {
- //FIXME: does something like SELECT TOP 1 * exists in pear/mdb2 ??
- $stmt = \OCP\DB::prepare('SELECT * FROM ' . self::tableName . ' ORDER BY lastmodified');
- $result = $stmt->execute();
- $row = $result->fetchRow();
- $id = null;
- if ($row != null) {
- $id = $row['id'];
- }
- return $id;
+ public function __construct(API $api) {
+ parent::__construct($api, 'news_feeds');
}
- /**
- * @brief Save the feed and all its items into the database
- * @param feed the feed to be saved
- * @returns The id of the feed in the database table.
- */
- //TODO: handle error case
- public function save(Feed $feed, $folderid) {
- $url = $feed->getUrl();
- $url_hash = md5($url);
-
- $title = $feed->getTitle();
- if(empty($title)) {
- $l = \OC_L10N::get('news');
- $title = $l->t('no title');
- }
-
- $favicon = $feed->getFavicon();
-
- //FIXME: Detect when feed contains already a database id
- $feedid = $this->findIdFromUrl($url);
- if ($feedid === null) {
- $query = \OCP\DB::prepare("
- INSERT INTO " . self::tableName .
- "(url, url_hash, title, favicon_link, folder_id, user_id, added, lastmodified)
- VALUES (?, ?, ?, ?, ?, ?, UNIX_TIMESTAMP(), UNIX_TIMESTAMP())
- ");
-
- $params=array(
- $url,
- $url_hash,
- $title,
- $favicon,
- $folderid,
- $this->userid
- );
- $query->execute($params);
-
- $feedid = \OCP\DB::insertid(self::tableName);
- }
- else {
- //update the db. it needs to be done, since it might be the first save after a full fetch
- $stmt = \OCP\DB::prepare('
- UPDATE ' . self::tableName .
- ' SET title = ? , favicon_link = ? , lastmodified = UNIX_TIMESTAMP() , folder_id = ?
- WHERE id = ?
- ');
-
- $params=array(
- $title,
- $favicon,
- $folderid,
- $feedid
- );
- $stmt->execute($params);
- }
- $feed->setId($feedid);
- $itemMapper = new ItemMapper();
+ public function find($id, $userId){
+ $sql = 'SELECT * FROM `*dbprefix*news_feeds` ' .
+ 'WHERE `id` = ? ' .
+ 'AND `user_id` = ?';
- $items = $feed->getItems();
- if ($items !== null) {
- foreach($items as $item) {
- $itemMapper->save($item, $feedid);
- }
- }
-
- return $feedid;
- }
-
-
- public function deleteById($id) {
- if ($id == null) {
- return false;
- }
- $stmt = \OCP\DB::prepare('DELETE FROM ' . self::tableName .' WHERE id = ? AND user_id = ?');
-
- $result = $stmt->execute(array($id, $this->userid));
-
- $itemMapper = new ItemMapper();
- //TODO: handle the value that the execute returns
- $itemMapper->deleteAll($id);
-
- return true;
+ return $this->findRow($sql, $id, $userId);
}
- public function delete(Feed $feed) {
- $id = $feed->getId();
- return deleteById($id);
- }
- public function deleteAll($folderid) {
- if ($folderid == null) {
- return false;
- }
- $stmt = \OCP\DB::prepare('SELECT id FROM ' . self::tableName . ' WHERE folder_id = ? AND user_id = ?');
- $result = $stmt->execute(array($folderid, $this->userid));
- while ($row = $result->fetchRow()) {
- if(!self::deleteById($row['id']))
- return false;
- }
-
- return true;
- }
-}
+} \ No newline at end of file
diff --git a/db/item.php~ b/db/item.php~
deleted file mode 100644
index 8c4ef2b4a..000000000
--- a/db/item.php~
+++ /dev/null
@@ -1,84 +0,0 @@
-<?php
-
-/**
-* ownCloud - News
-*
-* @author Alessandro Cosentino
-* @author Bernhard Posselt
-* @copyright 2012 Alessandro Cosentino cosenal@gmail.com
-* @copyright 2012 Bernhard Posselt nukeawhale@gmail.com
-*
-* This library is free software; you can redistribute it and/or
-* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
-* License as published by the Free Software Foundation; either
-* version 3 of the License, or any later version.
-*
-* This library is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
-*
-* You should have received a copy of the GNU Affero General Public
-* License along with this library. If not, see <http://www.gnu.org/licenses/>.
-*
-*/
-
-namespace OCA\News\Db;
-
-use \OCA\AppFramework\Db\Entity;
-
-
-class Item extends Entity {
-
- public $guidHash;
- public $guid;
- public $url;
- public $title;
- public $author;
- public $pubDate;
- public $body;
- public $enclosureMime;
- public $enclosureLink;
- public $feedId;
- public $status;
- public $feedTitle;
- public $lastModified;
-
-======= public function setRead() {
- $this->markFieldUpdated('status');
- $this->status &= ~StatusFlag::UNREAD;
- }
-
- public function isRead() {
- return !(($this->status & StatusFlag::UNREAD) === StatusFlag::UNREAD);
- }
-
- public function setUnread() {
- $this->markFieldUpdated('status');
- $this->status |= StatusFlag::UNREAD;
- }
-
- public function isUnread() {
- return !$this->isRead();
- }
-
- public function setStarred() {
- $this->markFieldUpdated('status');
- $this->status |= StatusFlag::STARRED;
- }
-
- public function isStarred() {
- return ($this->status & StatusFlag::STARRED) === StatusFlag::STARRED;
- }
-
- public function setUnstarred() {
- $this->markFieldUpdated('status');
- $this->status &= ~StatusFlag::STARRED;
- }
-
- public function isUnstarred() {
- return !$this->isStarred();
- }
-
-}
-
diff --git a/db/itemmapper.php~ b/db/itemmapper.php~
deleted file mode 100644
index 0bf9b4d87..000000000
--- a/db/itemmapper.php~
+++ /dev/null
@@ -1,493 +0,0 @@
-<?php
-/**
-* ownCloud - News app
-*
-* @author Alessandro Cosentino
-* Copyright (c) 2012 - Alessandro Cosentino <cosenal@gmail.com>
-*
-* This file is licensed under the Affero General Public License version 3 or later.
-* See the COPYING-README file
-*
-*/
-
-namespace OCA\News\Db;
-
-use \OCA\AppFramework\Db\DoesNotExistException;
-use \OCA\AppFramework\Db\MultipleObjectsReturnedException;
-use \OCA\AppFramework\Db\Mapper;
-use \OCA\AppFramework\Core\API;
-
-class ItemMapper extends NewsMapper {
-
- public function __construct(API $api){
- parent::__construct($api, 'news_items');
- }
-
- protected function findAllRows($sql, $params) {
- $result = $this->execute($sql, $params);
- $items = array();
-
- while($row = $result->fetchRow()){
- $item = new Item();
- $item->fromRow($row);
-
- array_push($items, $item);
- }
-
- return $items;
- }
-
- public function findAllFromFeed($feedId, $userId){
- $sql = 'SELECT * FROM `*PREFIX*news_items` ' .
- 'WHERE user_id = ? ' .
- 'AND feed_id = ?';
-
- $params = array($feedId, $userId);
- return $this->findAllRows($sql, $params);
-
-
- }
- /*
- request: get all items of a folder of a user (unread and read)
- SELECT * FROM items
- JOIN feeds
- ON feed.id = feed_id
- WHERE user_id = ? AND status = ? AND feed.folder_id = ?
- (AND id < ? LIMIT ?)
- (AND items.lastmodified >= ?)
- */
-
-
-
- public function find($id, $userId){
- $sql = 'SELECT `*dbprefix*news_items`.* FROM `*dbprefix*news_items` ' .
- 'JOIN `*dbprefix*news_feeds` ' .
- 'ON `*dbprefix*news_feeds`.`id` = `*dbprefix*news_items`.`feed_id` ' .
- 'WHERE `*dbprefix*news_items`.`id` = ? ' .
- 'AND `*dbprefix*news_feeds`.`user_id` = ? ';
-
- $row = $this->findRow($sql, $id, $userId);
-
- $item = new Item();
- $item->fromRow($row);
-
- return $item;
- }
-
- public function findAllFromFolder($status, $feedId, $userId){
-
- }
-
-}
-
-
-/**
- * This class maps an item to a row of the items table in the database.
- * It follows the Data Mapper pattern (see http://martinfowler.com/eaaCatalog/dataMapper.html).
- */
-/*
-class ItemMapper {
-
- const tableName = '*PREFIX*news_items';
- private $userid;
-
- public function __construct($userid = null) {
- if ($userid !== null) {
- $this->userid = $userid;
- }
- else {
- $this->userid = \OCP\USER::getUser();
- }
- }
-
-
- * @brief
- * @param row a row from the items table of the database
- * @returns an object of the class OC_News_Item
- *
- public function fromRow($row) {
- $url = $row['url'];
- $title = $row['title'];
- $guid = $row['guid'];
- $body = $row['body'];
- $id = $row['id'];
-
- $item = new Item($url, $title, $guid, $body, $id);
- $item->setStatus($row['status']);
- $item->setAuthor($row['author']);
- $item->setFeedId($row['feed_id']);
- $item->setDate(Utils::dbtimestampToUnixtime($row['pub_date']));
-
- $feedmapper = new FeedMapper($this->userid);
- $feed = $feedmapper->findById($row['feed_id']);
- $item->setFeedTitle($feed->getTitle());
-
- if($row['enclosure_mime'] !== null && $row['enclosure_link'] !== null) {
- $enclosure = new Enclosure();
- $enclosure->setMimeType($row['enclosure_mime']);
- $enclosure->setLink($row['enclosure_link']);
- $item->setEnclosure($enclosure);
- }
-
- return $item;
- }
-
- /**
- * @brief Retrieve all the item corresponding to a feed from the database
- * @param feedid The id of the feed in the database table.
- *
- public function findByFeedId($feedid) {
- $stmt = \OCP\DB::prepare('SELECT * FROM ' . self::tableName . ' WHERE feed_id = ? ORDER BY pub_date DESC');
- $result = $stmt->execute(array($feedid));
-
- $items = array();
- while ($row = $result->fetchRow()) {
- $item = $this->fromRow($row);
- $items[] = $item;
- }
-
- return $items;
- }
-
-
- /**
- * @brief Retrieve all the items corresponding to a feed from the database with a particular status
- * @param feedid The id of the feed in the database table.
- * @param status one of the constants defined in OCA\News\StatusFlag
- *
- public function findAllStatus($feedid, $status) {
- $stmt = \OCP\DB::prepare('SELECT * FROM ' . self::tableName . '
- WHERE feed_id = ?
- AND ((status & ?) > 0)
- ORDER BY pub_date DESC');
- $result = $stmt->execute(array($feedid, $status));
-
- $items = array();
- while ($row = $result->fetchRow()) {
- $item = $this->fromRow($row);
- $items[] = $item;
- }
-
- return $items;
- }
-
- /*
- * @brief Retrieve all the items from the database with a particular status
- * @param status one of the constants defined in OCA\News\StatusFlag
- *
- public function findEveryItemByStatus($status) {
- $stmt = \OCP\DB::prepare('SELECT ' . self::tableName . '.* FROM ' . self::tableName . '
- JOIN '. FeedMapper::tableName .' ON
- '. FeedMapper::tableName .'.id = ' . self::tableName . '.feed_id
- WHERE '. FeedMapper::tableName .'.user_id = ?
- AND ((' . self::tableName . '.status & ?) > 0)
- ORDER BY ' . self::tableName . '.pub_date DESC');
- $result = $stmt->execute(array($this->userid, $status));
-
- $items = array();
- while ($row = $result->fetchRow()) {
- $item = $this->fromRow($row);
- $items[] = $item;
- }
-
- return $items;
- }
-
- public function countAllStatus($feedid, $status) {
- $stmt = \OCP\DB::prepare('SELECT COUNT(*) as size FROM ' . self::tableName . '
- WHERE feed_id = ?
- AND ((status & ?) > 0)');
- $result=$stmt->execute(array($feedid, $status))->fetchRow();
- return $result['size'];
- }
-
- /**
- * @brief Count all the items from the database with a particular status
- * @param status one of the constants defined in OCA\News\StatusFlag
- *
- public function countEveryItemByStatus($status) {
- $stmt = \OCP\DB::prepare('SELECT COUNT(*) as size FROM ' . self::tableName . '
- JOIN '. FeedMapper::tableName .' ON
- '. FeedMapper::tableName .'.id = ' . self::tableName . '.feed_id
- WHERE '. FeedMapper::tableName .'.user_id = ?
- AND ((' . self::tableName . '.status & ?) > 0)');
- $result = $stmt->execute(array($this->userid, $status))->fetchRow();;
-
- return $result['size'];
- }
-
- public function findIdFromGuid($guid_hash, $guid, $feedid) {
- $stmt = \OCP\DB::prepare('
- SELECT * FROM ' . self::tableName . '
- WHERE guid_hash = ?
- AND feed_id = ?
- ');
- $result = $stmt->execute(array($guid_hash, $feedid));
- //TODO: if there is more than one row, falling back to comparing $guid
- $row = $result->fetchRow();
- $id = null;
- if ($row != null) {
- $id = $row['id'];
- }
- return $id;
- }
-
-
- /**
- * @brief marks all items read
- * @param int $feedId: the id of the feed
- * @param int $mostRecentItemId: every item with the same or lower id will
- * be marked read
- *
- public function markAllRead($feedId, $mostRecentItemId){
- if($mostRecentItemId === 0){
- $stmt = \OCP\DB::prepare('
- UPDATE ' . self::tableName .
- ' SET status = status & ?
- WHERE
- feed_id = ?');
-
- $params = array(
- ~StatusFlag::UNREAD,
- $feedId
- );
- } else {
- $stmt = \OCP\DB::prepare('
- UPDATE ' . self::tableName .
- ' SET status = status & ?
- WHERE
- feed_id = ?
- AND
- id <= ?');
-
- $params = array(
- ~StatusFlag::UNREAD,
- $feedId,
- $mostRecentItemId
- );
- }
-
- $stmt->execute($params);
- }
-
-
- /**
- * @brief Update the item after its status has changed
- * @returns The item whose status has changed.
- *
- public function update(Item $item) {
-
- $itemid = $item->getId();
- $status = $item->getStatus();
-
- $stmt = \OCP\DB::prepare('
- UPDATE ' . self::tableName .
- ' SET status = ?
- WHERE id = ?
- ');
-
- $params=array(
- $status,
- $itemid
- );
-
- $result = $stmt->execute($params);
-
-
- return true;
- }
-
- /**
- * @brief Save the feed and all its items into the database
- * @returns The id of the feed in the database table.
- *
- public function save(Item $item, $feedid) {
- $guid = $item->getGuid();
- $guid_hash = md5($guid);
-
- $status = $item->getStatus();
-
- $itemid = $this->findIdFromGuid($guid_hash, $guid, $feedid);
-
- if ($itemid == null) {
- $title = $item->getTitle();
- $body = $item->getBody();
- $author = $item->getAuthor();
- $enclosure_mime = null;
- $enclosure_link = null;
-
- if($enclosure = $item->getEnclosure()) {
- $enclosure_mime = $enclosure->getMimeType();
- $enclosure_link = $enclosure->getLink();
- }
-
- $stmt = \OCP\DB::prepare('
- INSERT INTO ' . self::tableName .
- '(url, title, body, author, guid, guid_hash, pub_date, enclosure_mime, enclosure_link, feed_id, status)
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
- ');
-
- if(empty($title)) {
- $l = \OC_L10N::get('news');
- $title = $l->t('no title');
- }
-
- if(empty($body)) {
- $l = \OC_L10N::get('news');
- $body = $l->t('no body');
- }
-
- $pub_date = Utils::unixtimeToDbtimestamp($item->getDate());
-
- $params=array(
- $item->getUrl(),
- $title,
- $body,
- $author,
- $guid,
- $guid_hash,
- $pub_date,
- $enclosure_mime,
- $enclosure_link,
- $feedid,
- $status
- );
-
- $stmt->execute($params);
-
- $itemid = \OCP\DB::insertid(self::tableName);
- }
- else {
- $this->update($item);
- }
- $item->setId($itemid);
- return $itemid;
- }
-
- /**
- * @brief Retrieve an item from the database
- * @param id The id of the item in the database table.
- *
- public function findById($id) {
-
- $stmt = \OCP\DB::prepare('SELECT ' . self::tableName . '.id AS id, ' . self::tableName .
- '.url AS url, ' . self::tableName . '.title AS title, guid, body, status, author, feed_id, pub_date, enclosure_mime, enclosure_link' .
- ' FROM ' . self::tableName . ' JOIN ' . FeedMapper::tableName .
- ' ON ' . self::tableName . '.feed_id = ' . FeedMapper::tableName . '.id WHERE (' . self::tableName .
- '.id = ? AND ' . FeedMapper::tableName . '.user_id = ? )');
- $result = $stmt->execute(array($id, $this->userid));
-
- /*
- $stmt = \OCP\DB::prepare('SELECT * FROM ' . self::tableName . ' WHERE id = ?');
- $result = $stmt->execute(array($id));
- *
- $row = $result->fetchRow();
-
- $item = $this->fromRow($row);
-
- return $item;
-
- }
-
-
- /**
- * @brief Permanently delete all items belonging to a feed from the database
- * @param feedid The id of the feed that we wish to delete
- * @return
- *
- public function deleteAll($feedid) {
- if ($feedid == null) {
- return false;
- }
- $stmt = \OCP\DB::prepare('DELETE FROM ' . self::tableName .' WHERE feed_id = ?');
-
- $result = $stmt->execute(array($feedid));
-
- return $result;
- }
-
- /**
- * Returns the unread count
- * @param $feedType the type of the feed
- * @param $feedId the id of the feed or folder
- * @return the unread count
- *
- public function getUnreadCount($feedType, $feedId){
- $unreadCount = 0;
-
- switch ($feedType) {
- case FeedType::STARRED:
- $unreadCount = $this->countEveryItemByStatus(StatusFlag::IMPORTANT);
- break;
-
- case FeedType::SUBSCRIPTIONS:
- $unreadCount = $this->countEveryItemByStatus(StatusFlag::UNREAD);
- break;
-
- case FeedType::FOLDER:
- $feedMapper = new FeedMapper($this->userid);
- $feeds = $feedMapper->findByFolderId($feedId);
- foreach($feeds as $feed){
- $unreadCount += $this->countAllStatus($feed->getId(), StatusFlag::UNREAD);
- }
- break;
-
- case FeedType::FEED:
- $unreadCount = $this->countAllStatus($feedId, StatusFlag::UNREAD);
- break;
- }
-
- return (int)$unreadCount;
- }
-
-
- /**
- * Returns all items
- * @param $feedType the type of the feed
- * @param $feedId the id of the feed or folder
- * @param $showAll if true, it will also include unread items
- * @return an array with all items
- *
- public function getItems($feedType, $feedId, $showAll){
- $items = array();
-
- // starred or subscriptions
- if ($feedType === FeedType::STARRED || $feedType === FeedType::SUBSCRIPTIONS) {
-
- if($feedType === FeedType::STARRED){
- $statusFlag = StatusFlag::IMPORTANT;
- }
-
- if($feedType === FeedType::SUBSCRIPTIONS){
- $statusFlag = StatusFlag::UNREAD;
- }
-
- $items = $this->findEveryItemByStatus($statusFlag);
-
- // feed
- } elseif ($feedType === FeedType::FEED){
-
- if($showAll) {
- $items = $this->findByFeedId($feedId);
- } else {
- $items = $this->findAllStatus($feedId, StatusFlag::UNREAD);
- }
-
- // folder
- } elseif ($feedType === FeedType::FOLDER){
- $feedMapper = new FeedMapper($this->userid);
- $feeds = $feedMapper->findByFolderId($feedId);
-
- foreach($feeds as $feed){
- if($showAll) {
- $items = array_merge($items, $this->findByFeedId($feed->getId()));
- } else {
- $items = array_merge($items,
- $this->findAllStatus($feed->getId(), StatusFlag::UNREAD));
- }
- }
- }
- return $items;
- }
-}
-*/ \ No newline at end of file
diff --git a/db/newsmapper.php b/db/newsmapper.php
index da928bd67..bc2cf5679 100644
--- a/db/newsmapper.php
+++ b/db/newsmapper.php
@@ -32,10 +32,12 @@ use \OCA\AppFramework\Core\API;
abstract class NewsMapper extends Mapper {
+
public function __construct(API $api, $tableName) {
parent::__construct($api, $tableName);
}
+
protected function findRow($sql, $id, $userId){
$result = $this->execute($sql, array($id, $userId));
@@ -50,4 +52,6 @@ abstract class NewsMapper extends Mapper {
return $row;
}
}
+
+
} \ No newline at end of file
diff --git a/db/newsmapper.php~ b/db/newsmapper.php~
deleted file mode 100644
index acf07c290..000000000
--- a/db/newsmapper.php~
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-
-/**
- * ownCloud - App Framework
- *
- * @author Bernhard Posselt
- * @copyright 2012 Bernhard Posselt nukeawhale@gmail.com
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
- *
- * You should have received a copy of the GNU Affero General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-
-namespace OCA\News\Db;
-
-use \OCA\AppFramework\Db\DoesNotExistException;
-use \OCA\AppFramework\Db\MultipleObjectsReturnedException;
-use \OCA\AppFramework\Db\Mapper;
-use \OCA\AppFramework\Core\API;
-
-
-abstract class NewsMapper extends Mapper {
-
- public function __construct(API $api, $tableName) {
- parent::__construct($api, $tableName);
- }
-
- protected function findRow($sqlStmt, $id, $userId){
-
- $result = $this->execute($sqlStmt, array($id, $userId));
-
- $row = $result->fetchRow();
-
- if($row === false){
- throw new DoesNotExistException('Item does not exist!');
- } elseif($result->fetchRow() !== false) {
- throw new MultipleObjectsReturnedException('More than one result for Item with id ' . $id . '!');
- } else {
- return $row;
- }
- }
-} \ No newline at end of file