From 196177a0ca3fc0103d359eec44f46173be685413 Mon Sep 17 00:00:00 2001 From: Bernhard Posselt Date: Fri, 22 Mar 2013 13:20:24 +0100 Subject: removed mapper parent class and use the new mapper methods from the framework --- db/feedmapper.php | 6 +++--- db/foldermapper.php | 5 +++-- db/imapper.php | 29 +++++++++++++++++++++++++++ db/itemmapper.php | 20 +++++++++++++++++-- db/newsmapper.php | 57 ----------------------------------------------------- 5 files changed, 53 insertions(+), 64 deletions(-) create mode 100644 db/imapper.php delete mode 100644 db/newsmapper.php (limited to 'db') diff --git a/db/feedmapper.php b/db/feedmapper.php index cf434257c..0fc8d3114 100644 --- a/db/feedmapper.php +++ b/db/feedmapper.php @@ -26,9 +26,9 @@ namespace OCA\News\Db; use \OCA\AppFramework\Core\API; +use \OCA\AppFramework\Db\Mapper; - -class FeedMapper extends NewsMapper { +class FeedMapper extends Mapper implements IMapper { public function __construct(API $api) { @@ -41,7 +41,7 @@ class FeedMapper extends NewsMapper { 'WHERE `id` = ? ' . 'AND `user_id` = ?'; - $row = $this->findRow($sql, $id, $userId); + $row = $this->findQuery($sql, array($id, $userId)); $feed = new Feed(); $feed->fromRow($row); diff --git a/db/foldermapper.php b/db/foldermapper.php index 041b3ada4..ef2f31f2d 100644 --- a/db/foldermapper.php +++ b/db/foldermapper.php @@ -26,9 +26,10 @@ namespace OCA\News\Db; use \OCA\AppFramework\Core\API; +use \OCA\AppFramework\Db\Mapper; -class FolderMapper extends NewsMapper { +class FolderMapper extends Mapper implements IMapper { public function __construct(API $api) { parent::__construct($api, 'news_folders'); @@ -39,7 +40,7 @@ class FolderMapper extends NewsMapper { 'WHERE `id` = ? ' . 'AND `user_id` = ?'; - $row = $this->findRow($sql, $id, $userId); + $row = $this->findQuery($sql, array($id, $userId)); $folder = new Folder(); $folder->fromRow($row); diff --git a/db/imapper.php b/db/imapper.php new file mode 100644 index 000000000..056a4b479 --- /dev/null +++ b/db/imapper.php @@ -0,0 +1,29 @@ +. +* +*/ + +namespace OCA\News\Db; + +interface IMapper { + public function find($id, $userId); +} \ No newline at end of file diff --git a/db/itemmapper.php b/db/itemmapper.php index 04f073c36..2efa9b535 100644 --- a/db/itemmapper.php +++ b/db/itemmapper.php @@ -29,12 +29,28 @@ use \OCA\AppFramework\Db\MultipleObjectsReturnedException; use \OCA\AppFramework\Db\Mapper; use \OCA\AppFramework\Core\API; -class ItemMapper extends NewsMapper { +class ItemMapper extends Mapper implements IMapper { public function __construct(API $api){ parent::__construct($api, 'news_items'); } + + public function findByUrlHash($urlHash, $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`.`url_hash` = ? ' . + 'AND `*dbprefix*news_feeds`.`user_id` = ? '; + $params = array($urlHash, $userId); + + $row = $this->findQuery($sql, $params); + $item = new Item(); + $item->fromRow($row); + + return $item; + } + protected function findAllRows($sql, $params, $limit=null, $offset=null) { $result = $this->execute($sql, $params, $limit, $offset); $items = array(); @@ -130,7 +146,7 @@ class ItemMapper extends NewsMapper { 'WHERE `*dbprefix*news_items`.`id` = ? ' . 'AND `*dbprefix*news_feeds`.`user_id` = ? '; - $row = $this->findRow($sql, $id, $userId); + $row = $this->findQuery($sql, array($id, $userId)); $item = new Item(); $item->fromRow($row); diff --git a/db/newsmapper.php b/db/newsmapper.php deleted file mode 100644 index bc2cf5679..000000000 --- a/db/newsmapper.php +++ /dev/null @@ -1,57 +0,0 @@ -. - * - */ - - -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($sql, $id, $userId){ - - $result = $this->execute($sql, 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 -- cgit v1.2.3