summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBernhard Posselt <nukeawhale@gmail.com>2013-03-22 21:49:36 +0100
committerBernhard Posselt <nukeawhale@gmail.com>2013-03-22 21:49:36 +0100
commit452d91ee39c72e83d69fb5c462435cc245bcff73 (patch)
tree235f8484aa4e9f3129e184b21bec84bd6a51550d
parentf9107664b01ba6f9cb3283a08a9ae4baf6026215 (diff)
slim down select queries
-rw-r--r--db/itemmapper.php21
-rw-r--r--tests/db/ItemMapperTest.php22
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);