diff options
author | Bernhard Posselt <nukeawhale@gmail.com> | 2013-03-22 21:49:36 +0100 |
---|---|---|
committer | Bernhard Posselt <nukeawhale@gmail.com> | 2013-03-22 21:49:36 +0100 |
commit | 452d91ee39c72e83d69fb5c462435cc245bcff73 (patch) | |
tree | 235f8484aa4e9f3129e184b21bec84bd6a51550d | |
parent | f9107664b01ba6f9cb3283a08a9ae4baf6026215 (diff) |
slim down select queries
-rw-r--r-- | db/itemmapper.php | 21 | ||||
-rw-r--r-- | tests/db/ItemMapperTest.php | 22 |
2 files changed, 26 insertions, 17 deletions
diff --git a/db/itemmapper.php b/db/itemmapper.php index f7d27ab23..7d0279264 100644 --- a/db/itemmapper.php +++ b/db/itemmapper.php @@ -49,15 +49,24 @@ class ItemMapper extends Mapper implements IMapper { return $items; } + + protected function makeSelectQuery($prependTo){ + return 'SELECT `*PREFIX*news_items`.* FROM `*PREFIX*news_items` ' . + 'JOIN `*PREFIX*news_feeds` ' . + 'ON `*PREFIX*news_feeds`.`id` = `*PREFIX*news_items`.`feed_id` '. + 'AND `*PREFIX*news_feeds`.`user_id` = ? ' . $prependTo; + } + + protected function makeFindAllFromFolderQuery($prependTo) { + return $this->makeSelectQuery( + 'WHERE ((`*PREFIX*news_items`.`status` & ?) > 0) ' . + $prependTo + ); + } public function find($id, $userId){ - $sql = 'SELECT `*PREFIX*news_items`.* FROM `*PREFIX*news_items` ' . - 'JOIN `*PREFIX*news_feeds` ' . - 'ON `*PREFIX*news_feeds`.`id` = `*PREFIX*news_items`.`feed_id` ' . - 'AND `*PREFIX*news_feeds`.`user_id` = ? ' . - 'WHERE `*PREFIX*news_items`.`id` = ? '; - + $sql = $this->makeSelectQuery('WHERE `*PREFIX*news_items`.`id` = ? '); $row = $this->findOneQuery($sql, array($id, $userId)); $item = new Item(); diff --git a/tests/db/ItemMapperTest.php b/tests/db/ItemMapperTest.php index d5c30cb1c..80a138d08 100644 --- a/tests/db/ItemMapperTest.php +++ b/tests/db/ItemMapperTest.php @@ -65,23 +65,23 @@ class ItemMapperTest extends \OCA\AppFramework\Utility\MapperTestUtility { } - private function makeFindAllFromFolderQuery($custom) { + private function makeSelectQuery($prependTo){ return 'SELECT `*PREFIX*news_items`.* FROM `*PREFIX*news_items` ' . 'JOIN `*PREFIX*news_feeds` ' . - 'ON `*PREFIX*news_feeds`.`id` = `*PREFIX*news_items`.`feed_id` ' . - 'AND `*PREFIX*news_feeds`.`folder_id` = ? ' . - 'WHERE `*PREFIX*news_feeds`.`user_id` = ? ' . - 'AND ((`*PREFIX*news_items`.`status` & ?) > 0) ' . - $custom; + 'ON `*PREFIX*news_feeds`.`id` = `*PREFIX*news_items`.`feed_id` '. + 'AND `*PREFIX*news_feeds`.`user_id` = ? ' . $prependTo; + } + + private function makeFindAllFromFolderQuery($prependTo) { + return $this->makeSelectQuery( + 'WHERE ((`*PREFIX*news_items`.`status` & ?) > 0) ' . + $prependTo + ); } public function testFind(){ - $sql = 'SELECT `*PREFIX*news_items`.* FROM `*PREFIX*news_items` ' . - 'JOIN `*PREFIX*news_feeds` ' . - 'ON `*PREFIX*news_feeds`.`id` = `*PREFIX*news_items`.`feed_id` ' . - 'AND `*PREFIX*news_feeds`.`user_id` = ? ' . - 'WHERE `*PREFIX*news_items`.`id` = ? '; + $sql = $this->makeSelectQuery('WHERE `*PREFIX*news_items`.`id` = ? '); $this->setMapperResult($sql, array($this->id, $this->userId), $this->row); |