config = $config; $this->time = $time; $this->calDavBackend = $calDavBackend; } public function getDuration(): int { return max( (int) $this->config->getAppValue( Application::APP_ID, self::RETENTION_CONFIG_KEY, (string) self::DEFAULT_RETENTION_SECONDS ), 0 // Just making sure we don't delete things in the future when a negative number is passed ); } public function cleanUp(): void { $retentionTime = $this->getDuration(); $now = $this->time->getTime(); $calendars = $this->calDavBackend->getDeletedCalendars($now - $retentionTime); foreach ($calendars as $calendar) { $this->calDavBackend->deleteCalendar($calendar['id'], true); } $objects = $this->calDavBackend->getDeletedCalendarObjects($now - $retentionTime); foreach ($objects as $object) { $this->calDavBackend->deleteCalendarObject( $object['calendarid'], $object['uri'], $object['calendartype'], true ); } } }