diff options
Diffstat (limited to 'lib/Cron/UpdaterJob.php')
-rw-r--r-- | lib/Cron/UpdaterJob.php | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/lib/Cron/UpdaterJob.php b/lib/Cron/UpdaterJob.php new file mode 100644 index 000000000..d2dbde149 --- /dev/null +++ b/lib/Cron/UpdaterJob.php @@ -0,0 +1,71 @@ +<?php +/** + * Nextcloud - News + * + * This file is licensed under the Affero General Public License version 3 or + * later. See the COPYING file. + * + * @author Bernhard Posselt <dev@bernhard-posselt.com> + * @copyright 2012-2014 Bernhard Posselt + */ + +namespace OCA\News\Cron; + +use OC\BackgroundJob\TimedJob; + +use OCA\News\AppInfo\Application; +use OCA\News\Service\StatusService; +use OCA\News\Service\UpdaterService; +use OCP\IConfig; + +class UpdaterJob extends TimedJob +{ + + /** + * @var IConfig + */ + private $config; + /** + * @var StatusService + */ + private $statusService; + /** + * @var UpdaterService + */ + private $updaterService; + + public function __construct( + IConfig $config, + StatusService $status, + UpdaterService $updaterService + ) { + $this->config = $config; + $this->statusService = $status; + $this->updaterService = $updaterService; + + $interval = $this->config->getAppValue( + Application::NAME, + 'updateInterval', + Application::DEFAULT_SETTINGS['updateInterval'] + ); + + parent::setInterval($interval); + } + + protected function run($argument) + { + $uses_cron = $this->config->getAppValue( + Application::NAME, + 'useCronUpdates', + Application::DEFAULT_SETTINGS['useCronUpdates'] + ); + + if (!$uses_cron || !$this->statusService->isProperlyConfigured()) { + return; + } + + $this->updaterService->beforeUpdate(); + $this->updaterService->update(); + $this->updaterService->afterUpdate(); + } +} |