diff options
Diffstat (limited to 'apps/files_reminders/lib/BackgroundJob')
-rw-r--r-- | apps/files_reminders/lib/BackgroundJob/CleanUpReminders.php | 33 | ||||
-rw-r--r-- | apps/files_reminders/lib/BackgroundJob/ScheduledNotifications.php | 44 |
2 files changed, 77 insertions, 0 deletions
diff --git a/apps/files_reminders/lib/BackgroundJob/CleanUpReminders.php b/apps/files_reminders/lib/BackgroundJob/CleanUpReminders.php new file mode 100644 index 00000000000..35b72b190e8 --- /dev/null +++ b/apps/files_reminders/lib/BackgroundJob/CleanUpReminders.php @@ -0,0 +1,33 @@ +<?php + +declare(strict_types=1); + +/** + * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +namespace OCA\FilesReminders\BackgroundJob; + +use OCA\FilesReminders\Service\ReminderService; +use OCP\AppFramework\Utility\ITimeFactory; +use OCP\BackgroundJob\TimedJob; + +class CleanUpReminders extends TimedJob { + public function __construct( + ITimeFactory $time, + private ReminderService $reminderService, + ) { + parent::__construct($time); + + $this->setInterval(24 * 60 * 60); // 1 day + $this->setTimeSensitivity(self::TIME_INSENSITIVE); + } + + /** + * @SuppressWarnings(PHPMD.UnusedFormalParameter) + */ + protected function run($argument) { + $this->reminderService->cleanUp(500); + } +} diff --git a/apps/files_reminders/lib/BackgroundJob/ScheduledNotifications.php b/apps/files_reminders/lib/BackgroundJob/ScheduledNotifications.php new file mode 100644 index 00000000000..ab8c762d674 --- /dev/null +++ b/apps/files_reminders/lib/BackgroundJob/ScheduledNotifications.php @@ -0,0 +1,44 @@ +<?php + +declare(strict_types=1); + +/** + * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +namespace OCA\FilesReminders\BackgroundJob; + +use OCA\FilesReminders\Db\ReminderMapper; +use OCA\FilesReminders\Service\ReminderService; +use OCP\AppFramework\Db\DoesNotExistException; +use OCP\AppFramework\Utility\ITimeFactory; +use OCP\BackgroundJob\TimedJob; +use Psr\Log\LoggerInterface; + +class ScheduledNotifications extends TimedJob { + public function __construct( + ITimeFactory $time, + protected ReminderMapper $reminderMapper, + protected ReminderService $reminderService, + protected LoggerInterface $logger, + ) { + parent::__construct($time); + + $this->setInterval(60); + } + + /** + * @SuppressWarnings(PHPMD.UnusedFormalParameter) + */ + public function run($argument) { + $reminders = $this->reminderMapper->findOverdue(); + foreach ($reminders as $reminder) { + try { + $this->reminderService->send($reminder); + } catch (DoesNotExistException $e) { + $this->logger->debug('Could not send notification for reminder with id ' . $reminder->getId()); + } + } + } +} |