diff options
author | Anna Larch <anna@nextcloud.com> | 2024-05-08 20:38:51 +0200 |
---|---|---|
committer | Anna Larch <anna@nextcloud.com> | 2024-05-31 13:14:01 +0200 |
commit | ad78f7e48e7f03fc6c3f47a8972d122cde275d97 (patch) | |
tree | 220b6a13bbe7be61b60f4bda5bfe118bf3bc28ce /apps/dav/lib/Migration | |
parent | 4a6ac1f1aab769089b1b48a45bbb15bd1fb847e1 (diff) | |
download | nextcloud-server-ad78f7e48e7f03fc6c3f47a8972d122cde275d97.tar.gz nextcloud-server-ad78f7e48e7f03fc6c3f47a8972d122cde275d97.zip |
fix(caldav): automatically delete outdated scheduling objects
Signed-off-by: Anna Larch <anna@nextcloud.com>
Diffstat (limited to 'apps/dav/lib/Migration')
-rw-r--r-- | apps/dav/lib/Migration/DeleteSchedulingObjects.php | 38 | ||||
-rw-r--r-- | apps/dav/lib/Migration/Version1004Date20170825134824.php | 1 |
2 files changed, 39 insertions, 0 deletions
diff --git a/apps/dav/lib/Migration/DeleteSchedulingObjects.php b/apps/dav/lib/Migration/DeleteSchedulingObjects.php new file mode 100644 index 00000000000..3919236788b --- /dev/null +++ b/apps/dav/lib/Migration/DeleteSchedulingObjects.php @@ -0,0 +1,38 @@ +<?php + +declare(strict_types=1); + +/** + * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ +namespace OCA\DAV\Migration; + +use OCA\DAV\BackgroundJob\DeleteOutdatedSchedulingObjects; +use OCA\DAV\CalDAV\CalDavBackend; +use OCP\AppFramework\Utility\ITimeFactory; +use OCP\BackgroundJob\IJobList; +use OCP\Migration\IOutput; +use OCP\Migration\IRepairStep; + +class DeleteSchedulingObjects implements IRepairStep { + public function __construct(private IJobList $jobList, + private ITimeFactory $time, + private CalDavBackend $calDavBackend + ) { + } + + public function getName(): string { + return 'Handle outdated scheduling events'; + } + + public function run(IOutput $output): void { + $output->info('Cleaning up old scheduling events'); + $time = $this->time->getTime() - (60 * 60); + $this->calDavBackend->deleteOutdatedSchedulingObjects($time, 50000); + if (!$this->jobList->has(DeleteOutdatedSchedulingObjects::class, null)) { + $output->info('Adding background job to delete old scheduling objects'); + $this->jobList->add(DeleteOutdatedSchedulingObjects::class, null); + } + } +} diff --git a/apps/dav/lib/Migration/Version1004Date20170825134824.php b/apps/dav/lib/Migration/Version1004Date20170825134824.php index ef2aaf6af36..0aaca7f60de 100644 --- a/apps/dav/lib/Migration/Version1004Date20170825134824.php +++ b/apps/dav/lib/Migration/Version1004Date20170825134824.php @@ -363,6 +363,7 @@ class Version1004Date20170825134824 extends SimpleMigrationStep { ]); $table->setPrimaryKey(['id']); $table->addIndex(['principaluri'], 'schedulobj_principuri_index'); + $table->addIndex(['lastmodified'], 'schedulobj_lastmodified_idx'); } if (!$schema->hasTable('cards_properties')) { |