diff options
author | Bernhard Posselt <dev@bernhard-posselt.com> | 2015-03-21 11:18:20 +0100 |
---|---|---|
committer | Bernhard Posselt <dev@bernhard-posselt.com> | 2015-03-21 13:36:50 +0100 |
commit | f6bf8ce402ed43c6a42354e64dda7b3cc081196f (patch) | |
tree | 8d3a7dd298d456d51516688824f2b08b4dc682cf /service | |
parent | 35550fe42e36868be1a3ac471bea6dc89b8b6200 (diff) |
add migrate command, fix #185
Diffstat (limited to 'service')
-rw-r--r-- | service/itemservice.php | 40 |
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); + } + } |