Clean up reminder actions and call methods directly
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
This commit is contained in:
parent
257613e6ef
commit
f5462650f1
|
@ -125,7 +125,7 @@ class BuildReminderIndexBackgroundJob extends QueuedJob {
|
|||
$row['component'] = $row['componenttype'];
|
||||
|
||||
try {
|
||||
$this->reminderService->onTouchCalendarObject('\OCA\DAV\CalDAV\CalDavBackend::createCalendarObject', $row);
|
||||
$this->reminderService->onCalendarObjectCreate($row);
|
||||
} catch (\Exception $ex) {
|
||||
$this->logger->logException($ex);
|
||||
}
|
||||
|
|
|
@ -44,6 +44,7 @@ use Sabre\VObject\InvalidDataException;
|
|||
use Sabre\VObject\ParseException;
|
||||
use Sabre\VObject\Recur\EventIterator;
|
||||
use Sabre\VObject\Recur\NoInstancesException;
|
||||
use function strcasecmp;
|
||||
|
||||
class ReminderService {
|
||||
|
||||
|
@ -154,39 +155,15 @@ class ReminderService {
|
|||
}
|
||||
|
||||
/**
|
||||
* @param string $action
|
||||
* @param array $objectData
|
||||
* @throws VObject\InvalidDataException
|
||||
*/
|
||||
public function onTouchCalendarObject(string $action,
|
||||
array $objectData):void {
|
||||
public function onCalendarObjectCreate(array $objectData):void {
|
||||
// We only support VEvents for now
|
||||
if (strcasecmp($objectData['component'], 'vevent') !== 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
switch ($action) {
|
||||
case '\OCA\DAV\CalDAV\CalDavBackend::createCalendarObject':
|
||||
$this->onCalendarObjectCreate($objectData);
|
||||
break;
|
||||
|
||||
case '\OCA\DAV\CalDAV\CalDavBackend::updateCalendarObject':
|
||||
$this->onCalendarObjectEdit($objectData);
|
||||
break;
|
||||
|
||||
case '\OCA\DAV\CalDAV\CalDavBackend::deleteCalendarObject':
|
||||
$this->onCalendarObjectDelete($objectData);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $objectData
|
||||
*/
|
||||
private function onCalendarObjectCreate(array $objectData):void {
|
||||
$calendarData = is_resource($objectData['calendardata'])
|
||||
? stream_get_contents($objectData['calendardata'])
|
||||
: $objectData['calendardata'];
|
||||
|
@ -307,8 +284,9 @@ class ReminderService {
|
|||
|
||||
/**
|
||||
* @param array $objectData
|
||||
* @throws VObject\InvalidDataException
|
||||
*/
|
||||
private function onCalendarObjectEdit(array $objectData):void {
|
||||
public function onCalendarObjectEdit(array $objectData):void {
|
||||
// TODO - this can be vastly improved
|
||||
// - get cached reminders
|
||||
// - ...
|
||||
|
@ -319,8 +297,14 @@ class ReminderService {
|
|||
|
||||
/**
|
||||
* @param array $objectData
|
||||
* @throws VObject\InvalidDataException
|
||||
*/
|
||||
private function onCalendarObjectDelete(array $objectData):void {
|
||||
public function onCalendarObjectDelete(array $objectData):void {
|
||||
// We only support VEvents for now
|
||||
if (strcasecmp($objectData['component'], 'vevent') !== 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->backend->cleanRemindersForEvent((int) $objectData['id']);
|
||||
}
|
||||
|
||||
|
|
|
@ -74,8 +74,7 @@ class CalendarObjectReminderUpdaterListener implements IEventListener {
|
|||
}
|
||||
} elseif ($event instanceof CalendarObjectCreatedEvent) {
|
||||
try {
|
||||
$this->reminderService->onTouchCalendarObject(
|
||||
'\OCA\DAV\CalDAV\CalDavBackend::createCalendarObject',
|
||||
$this->reminderService->onCalendarObjectCreate(
|
||||
$event->getObjectData()
|
||||
);
|
||||
|
||||
|
@ -90,8 +89,7 @@ class CalendarObjectReminderUpdaterListener implements IEventListener {
|
|||
}
|
||||
} elseif ($event instanceof CalendarObjectUpdatedEvent) {
|
||||
try {
|
||||
$this->reminderService->onTouchCalendarObject(
|
||||
'\OCA\DAV\CalDAV\CalDavBackend::updateCalendarObject',
|
||||
$this->reminderService->onCalendarObjectEdit(
|
||||
$event->getObjectData()
|
||||
);
|
||||
|
||||
|
@ -106,8 +104,7 @@ class CalendarObjectReminderUpdaterListener implements IEventListener {
|
|||
}
|
||||
} elseif ($event instanceof CalendarObjectDeletedEvent) {
|
||||
try {
|
||||
$this->reminderService->onTouchCalendarObject(
|
||||
'\OCA\DAV\CalDAV\CalDavBackend::deleteCalendarObject',
|
||||
$this->reminderService->onCalendarObjectDelete(
|
||||
$event->getObjectData()
|
||||
);
|
||||
|
||||
|
|
|
@ -211,17 +211,15 @@ EOD;
|
|||
->method('cleanRemindersForEvent')
|
||||
->with(44);
|
||||
|
||||
$action = '\OCA\DAV\CalDAV\CalDavBackend::deleteCalendarObject';
|
||||
$objectData = [
|
||||
'id' => '44',
|
||||
'component' => 'vevent',
|
||||
];
|
||||
|
||||
$this->reminderService->onTouchCalendarObject($action, $objectData);
|
||||
$this->reminderService->onCalendarObjectDelete($objectData);
|
||||
}
|
||||
|
||||
public function testOnCalendarObjectCreateSingleEntry():void {
|
||||
$action = '\OCA\DAV\CalDAV\CalDavBackend::createCalendarObject';
|
||||
$objectData = [
|
||||
'calendardata' => self::CALENDAR_DATA,
|
||||
'id' => '42',
|
||||
|
@ -242,11 +240,10 @@ EOD;
|
|||
->with()
|
||||
->willReturn(\DateTime::createFromFormat(\DateTime::ATOM, '2016-06-08T00:00:00+00:00'));
|
||||
|
||||
$this->reminderService->onTouchCalendarObject($action, $objectData);
|
||||
$this->reminderService->onCalendarObjectCreate($objectData);
|
||||
}
|
||||
|
||||
public function testOnCalendarObjectCreateSingleEntryWithRepeat(): void {
|
||||
$action = '\OCA\DAV\CalDAV\CalDavBackend::createCalendarObject';
|
||||
$objectData = [
|
||||
'calendardata' => self::CALENDAR_DATA_REPEAT,
|
||||
'id' => '42',
|
||||
|
@ -270,11 +267,10 @@ EOD;
|
|||
->with()
|
||||
->willReturn(\DateTime::createFromFormat(\DateTime::ATOM, '2016-06-08T00:00:00+00:00'));
|
||||
|
||||
$this->reminderService->onTouchCalendarObject($action, $objectData);
|
||||
$this->reminderService->onCalendarObjectCreate($objectData);
|
||||
}
|
||||
|
||||
public function testOnCalendarObjectCreateRecurringEntry(): void {
|
||||
$action = '\OCA\DAV\CalDAV\CalDavBackend::createCalendarObject';
|
||||
$objectData = [
|
||||
'calendardata' => self::CALENDAR_DATA_RECURRING,
|
||||
'id' => '42',
|
||||
|
@ -295,11 +291,10 @@ EOD;
|
|||
->with()
|
||||
->willReturn(\DateTime::createFromFormat(\DateTime::ATOM, '2016-06-29T00:00:00+00:00'));
|
||||
|
||||
$this->reminderService->onTouchCalendarObject($action, $objectData);
|
||||
$this->reminderService->onCalendarObjectCreate($objectData);
|
||||
}
|
||||
|
||||
public function testOnCalendarObjectCreateEmpty():void {
|
||||
$action = '\OCA\DAV\CalDAV\CalDavBackend::createCalendarObject';
|
||||
$objectData = [
|
||||
'calendardata' => self::CALENDAR_DATA_NO_ALARM,
|
||||
'id' => '42',
|
||||
|
@ -310,11 +305,10 @@ EOD;
|
|||
$this->backend->expects($this->never())
|
||||
->method('insertReminder');
|
||||
|
||||
$this->reminderService->onTouchCalendarObject($action, $objectData);
|
||||
$this->reminderService->onCalendarObjectCreate($objectData);
|
||||
}
|
||||
|
||||
public function testOnCalendarObjectCreateRecurringEntryWithRepeat():void {
|
||||
$action = '\OCA\DAV\CalDAV\CalDavBackend::createCalendarObject';
|
||||
$objectData = [
|
||||
'calendardata' => self::CALENDAR_DATA_RECURRING_REPEAT,
|
||||
'id' => '42',
|
||||
|
@ -339,7 +333,7 @@ EOD;
|
|||
->with()
|
||||
->willReturn(\DateTime::createFromFormat(\DateTime::ATOM, '2016-06-29T00:00:00+00:00'));
|
||||
|
||||
$this->reminderService->onTouchCalendarObject($action, $objectData);
|
||||
$this->reminderService->onCalendarObjectCreate($objectData);
|
||||
}
|
||||
|
||||
public function testProcessReminders():void {
|
||||
|
|
Loading…
Reference in New Issue