summaryrefslogtreecommitdiffstats
path: root/service
diff options
context:
space:
mode:
authorBernhard Posselt <dev@bernhard-posselt.com>2015-03-21 11:18:20 +0100
committerBernhard Posselt <dev@bernhard-posselt.com>2015-03-21 13:36:50 +0100
commitf6bf8ce402ed43c6a42354e64dda7b3cc081196f (patch)
tree8d3a7dd298d456d51516688824f2b08b4dc682cf /service
parent35550fe42e36868be1a3ac471bea6dc89b8b6200 (diff)
add migrate command, fix #185
Diffstat (limited to 'service')
-rw-r--r--service/itemservice.php40
1 files changed, 33 insertions, 7 deletions
diff --git a/service/itemservice.php b/service/itemservice.php
index 692eff916..6f454dbf5 100644
--- a/service/itemservice.php
+++ b/service/itemservice.php
@@ -13,13 +13,14 @@
namespace OCA\News\Service;
-use \OCP\AppFramework\Db\DoesNotExistException;
-use \OCP\AppFramework\Utility\ITimeFactory;
+use OCP\IConfig;
+use OCP\AppFramework\Db\DoesNotExistException;
+use OCP\AppFramework\Utility\ITimeFactory;
-use \OCA\News\Db\ItemMapper;
-use \OCA\News\Db\StatusFlag;
-use \OCA\News\Db\FeedType;
-use \OCA\News\Config\Config;
+use OCA\News\Db\ItemMapper;
+use OCA\News\Db\StatusFlag;
+use OCA\News\Db\FeedType;
+use OCA\News\Config\Config;
class ItemService extends Service {
@@ -28,16 +29,19 @@ class ItemService extends Service {
private $config;
private $timeFactory;
private $itemMapper;
+ private $systemConfig;
public function __construct(ItemMapper $itemMapper,
StatusFlag $statusFlag,
ITimeFactory $timeFactory,
- Config $config){
+ Config $config,
+ IConfig $systemConfig){
parent::__construct($itemMapper);
$this->statusFlag = $statusFlag;
$this->config = $config;
$this->timeFactory = $timeFactory;
$this->itemMapper = $itemMapper;
+ $this->systemConfig = $systemConfig;
}
@@ -252,4 +256,26 @@ class ItemService extends Service {
}
+ /**
+ * Regenerates the search index for all items
+ */
+ public function generateSearchIndicies($progressbar) {
+ $this->systemConfig->setSystemValue('maintenance', true);
+
+ $rows = $this->itemMapper->findAllItemIdsAndUsers();
+ $progressbar = $progressbar(count($rows));
+ $progressbar->setFormat('verbose');
+
+ foreach ($rows as $row) {
+ $item = $this->find($row['id'], $row['user_id']);
+ $item->generateSearchIndex();
+ $this->itemMapper->update($item);
+ $progressbar->advance();
+ }
+
+ $progressbar->finish();
+
+ $this->systemConfig->setSystemValue('maintenance', false);
+ }
+
}