mirror of
https://github.com/nextcloud/server.git
synced 2026-06-11 09:42:09 -04:00
Merge pull request #20766 from nextcloud/bug/fix-reminders-with-empty-calendar-data
Consider only reminders with calendar data
This commit is contained in:
commit
6e0101b59c
3 changed files with 14 additions and 2 deletions
|
|
@ -39,6 +39,7 @@ use OCA\DAV\CalDAV\BirthdayService;
|
|||
use OCA\DAV\CalDAV\CalDavBackend;
|
||||
use OCA\DAV\CalDAV\CalendarManager;
|
||||
use OCA\DAV\CalDAV\CalendarProvider;
|
||||
use OCA\DAV\CalDAV\Reminder\Backend as ReminderBackend;
|
||||
use OCA\DAV\CalDAV\Reminder\NotificationProvider\AudioProvider;
|
||||
use OCA\DAV\CalDAV\Reminder\NotificationProvider\EmailProvider;
|
||||
use OCA\DAV\CalDAV\Reminder\NotificationProvider\PushProvider;
|
||||
|
|
@ -306,6 +307,9 @@ class Application extends App implements IBootstrap {
|
|||
/** @var CalDavBackend $calDavBackend */
|
||||
$calDavBackend = $container->query(CalDavBackend::class);
|
||||
$calDavBackend->purgeAllCachedEventsForSubscription($subscriptionData['id']);
|
||||
/** @var ReminderBackend $calDavBackend */
|
||||
$reminderBackend = $container->query(ReminderBackend::class);
|
||||
$reminderBackend->cleanRemindersForCalendar($subscriptionData['id']);
|
||||
}
|
||||
);
|
||||
|
||||
|
|
|
|||
|
|
@ -67,8 +67,8 @@ class Backend {
|
|||
$query->select(['cr.*', 'co.calendardata', 'c.displayname', 'c.principaluri'])
|
||||
->from('calendar_reminders', 'cr')
|
||||
->where($query->expr()->lte('cr.notification_date', $query->createNamedParameter($this->timeFactory->getTime())))
|
||||
->leftJoin('cr', 'calendarobjects', 'co', $query->expr()->eq('cr.object_id', 'co.id'))
|
||||
->leftJoin('cr', 'calendars', 'c', $query->expr()->eq('cr.calendar_id', 'c.id'));
|
||||
->join('cr', 'calendarobjects', 'co', $query->expr()->eq('cr.object_id', 'co.id'))
|
||||
->join('cr', 'calendars', 'c', $query->expr()->eq('cr.calendar_id', 'c.id'));
|
||||
$stmt = $query->execute();
|
||||
|
||||
return array_map(
|
||||
|
|
|
|||
|
|
@ -119,6 +119,10 @@ class ReminderService {
|
|||
? stream_get_contents($reminder['calendardata'])
|
||||
: $reminder['calendardata'];
|
||||
|
||||
if (!$calendarData) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$vcalendar = $this->parseCalendarData($calendarData);
|
||||
if (!$vcalendar) {
|
||||
$this->backend->removeReminder($reminder['id']);
|
||||
|
|
@ -168,6 +172,10 @@ class ReminderService {
|
|||
? stream_get_contents($objectData['calendardata'])
|
||||
: $objectData['calendardata'];
|
||||
|
||||
if (!$calendarData) {
|
||||
return;
|
||||
}
|
||||
|
||||
/** @var VObject\Component\VCalendar $vcalendar */
|
||||
$vcalendar = $this->parseCalendarData($calendarData);
|
||||
if (!$vcalendar) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue