Signed-off-by: Joas Schilling <coding@schilljs.com>tags/v11.0RC2
@@ -0,0 +1,129 @@ | |||
<?php | |||
/** | |||
* @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> | |||
* | |||
* @license GNU AGPL version 3 or any later version | |||
* | |||
* This program is free software: you can redistribute it and/or modify | |||
* it under the terms of the GNU Affero General Public License as | |||
* published by the Free Software Foundation, either version 3 of the | |||
* License, or (at your option) any later version. | |||
* | |||
* This program is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
* GNU Affero General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU Affero General Public License | |||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
* | |||
*/ | |||
namespace OCA\DAV\CalDAV\Activity\Provider; | |||
use OCP\Activity\IEvent; | |||
use OCP\Activity\IProvider; | |||
use OCP\IUser; | |||
use OCP\IUserManager; | |||
abstract class Base implements IProvider { | |||
/** @var IUserManager */ | |||
protected $userManager; | |||
/** @var string[] cached displayNames - key is the UID and value the displayname */ | |||
protected $displayNames = []; | |||
/** | |||
* @param IUserManager $userManager | |||
*/ | |||
public function __construct(IUserManager $userManager) { | |||
$this->userManager = $userManager; | |||
} | |||
/** | |||
* @param IEvent $event | |||
* @param string $subject | |||
* @param array $parameters | |||
*/ | |||
protected function setSubjects(IEvent $event, $subject, array $parameters) { | |||
$placeholders = $replacements = []; | |||
foreach ($parameters as $placeholder => $parameter) { | |||
$placeholders[] = '{' . $placeholder . '}'; | |||
$replacements[] = $parameter['name']; | |||
} | |||
$event->setParsedSubject(str_replace($placeholders, $replacements, $subject)) | |||
->setRichSubject($subject, $parameters); | |||
} | |||
/** | |||
* @param array $eventData | |||
* @return array | |||
*/ | |||
protected function generateObjectParameter($eventData) { | |||
if (!is_array($eventData)) { | |||
throw new \InvalidArgumentException(); | |||
}; | |||
return [ | |||
'type' => 'calendar-event', | |||
'id' => $eventData['id'], | |||
'name' => $eventData['name'], | |||
]; | |||
} | |||
/** | |||
* @param int $id | |||
* @param string $name | |||
* @return array | |||
*/ | |||
protected function generateCalendarParameter($id, $name) { | |||
return [ | |||
'type' => 'calendar', | |||
'id' => $id, | |||
'name' => $name, | |||
]; | |||
} | |||
/** | |||
* @param string $id | |||
* @return array | |||
*/ | |||
protected function generateGroupParameter($id) { | |||
return [ | |||
'type' => 'group', | |||
'id' => $id, | |||
'name' => $id, | |||
]; | |||
} | |||
/** | |||
* @param string $uid | |||
* @return array | |||
*/ | |||
protected function generateUserParameter($uid) { | |||
if (!isset($this->displayNames[$uid])) { | |||
$this->displayNames[$uid] = $this->getDisplayName($uid); | |||
} | |||
return [ | |||
'type' => 'user', | |||
'id' => $uid, | |||
'name' => $this->displayNames[$uid], | |||
]; | |||
} | |||
/** | |||
* @param string $uid | |||
* @return string | |||
*/ | |||
protected function getDisplayName($uid) { | |||
$user = $this->userManager->get($uid); | |||
if ($user instanceof IUser) { | |||
return $user->getDisplayName(); | |||
} else { | |||
return $uid; | |||
} | |||
} | |||
} |
@@ -24,13 +24,11 @@ namespace OCA\DAV\CalDAV\Activity\Provider; | |||
use OCP\Activity\IEvent; | |||
use OCP\Activity\IEventMerger; | |||
use OCP\Activity\IManager; | |||
use OCP\Activity\IProvider; | |||
use OCP\IL10N; | |||
use OCP\IURLGenerator; | |||
use OCP\IUser; | |||
use OCP\IUserManager; | |||
class Calendar implements IProvider { | |||
class Calendar extends Base { | |||
const SUBJECT_ADD = 'calendar_add'; | |||
const SUBJECT_UPDATE = 'calendar_update'; | |||
@@ -49,15 +47,9 @@ class Calendar implements IProvider { | |||
/** @var IManager */ | |||
protected $activityManager; | |||
/** @var IUserManager */ | |||
protected $userManager; | |||
/** @var IEventMerger */ | |||
protected $eventMerger; | |||
/** @var string[] cached displayNames - key is the UID and value the displayname */ | |||
protected $displayNames = []; | |||
/** | |||
* @param IL10N $l | |||
* @param IURLGenerator $url | |||
@@ -66,10 +58,10 @@ class Calendar implements IProvider { | |||
* @param IEventMerger $eventMerger | |||
*/ | |||
public function __construct(IL10N $l, IURLGenerator $url, IManager $activityManager, IUserManager $userManager, IEventMerger $eventMerger) { | |||
parent::__construct($userManager); | |||
$this->l = $l; | |||
$this->url = $url; | |||
$this->activityManager = $activityManager; | |||
$this->userManager = $userManager; | |||
$this->eventMerger = $eventMerger; | |||
} | |||
@@ -145,22 +137,6 @@ class Calendar implements IProvider { | |||
return $event; | |||
} | |||
/** | |||
* @param IEvent $event | |||
* @param string $subject | |||
* @param array $parameters | |||
*/ | |||
protected function setSubjects(IEvent $event, $subject, array $parameters) { | |||
$placeholders = $replacements = []; | |||
foreach ($parameters as $placeholder => $parameter) { | |||
$placeholders[] = '{' . $placeholder . '}'; | |||
$replacements[] = $parameter['name']; | |||
} | |||
$event->setParsedSubject(str_replace($placeholders, $replacements, $subject)) | |||
->setRichSubject($subject, $parameters); | |||
} | |||
/** | |||
* @param IEvent $event | |||
* @return array | |||
@@ -213,58 +189,4 @@ class Calendar implements IProvider { | |||
throw new \InvalidArgumentException(); | |||
} | |||
/** | |||
* @param string $id | |||
* @return array | |||
*/ | |||
protected function generateGroupParameter($id) { | |||
return [ | |||
'type' => 'group', | |||
'id' => $id, | |||
'name' => $id, | |||
]; | |||
} | |||
/** | |||
* @param int $id | |||
* @param string $name | |||
* @return array | |||
*/ | |||
protected function generateCalendarParameter($id, $name) { | |||
return [ | |||
'type' => 'calendar', | |||
'id' => $id, | |||
'name' => $name, | |||
]; | |||
} | |||
/** | |||
* @param string $uid | |||
* @return array | |||
*/ | |||
protected function generateUserParameter($uid) { | |||
if (!isset($this->displayNames[$uid])) { | |||
$this->displayNames[$uid] = $this->getDisplayName($uid); | |||
} | |||
return [ | |||
'type' => 'user', | |||
'id' => $uid, | |||
'name' => $this->displayNames[$uid], | |||
]; | |||
} | |||
/** | |||
* @param string $uid | |||
* @return string | |||
*/ | |||
protected function getDisplayName($uid) { | |||
$user = $this->userManager->get($uid); | |||
if ($user instanceof IUser) { | |||
return $user->getDisplayName(); | |||
} else { | |||
return $uid; | |||
} | |||
} | |||
} |
@@ -24,13 +24,11 @@ namespace OCA\DAV\CalDAV\Activity\Provider; | |||
use OCP\Activity\IEvent; | |||
use OCP\Activity\IEventMerger; | |||
use OCP\Activity\IManager; | |||
use OCP\Activity\IProvider; | |||
use OCP\IL10N; | |||
use OCP\IURLGenerator; | |||
use OCP\IUser; | |||
use OCP\IUserManager; | |||
class Event implements IProvider { | |||
class Event extends Base { | |||
const SUBJECT_OBJECT_ADD = 'object_add'; | |||
const SUBJECT_OBJECT_UPDATE = 'object_update'; | |||
@@ -45,15 +43,9 @@ class Event implements IProvider { | |||
/** @var IManager */ | |||
protected $activityManager; | |||
/** @var IUserManager */ | |||
protected $userManager; | |||
/** @var IEventMerger */ | |||
protected $eventMerger; | |||
/** @var string[] cached displayNames - key is the UID and value the displayname */ | |||
protected $displayNames = []; | |||
/** | |||
* @param IL10N $l | |||
* @param IURLGenerator $url | |||
@@ -62,10 +54,10 @@ class Event implements IProvider { | |||
* @param IEventMerger $eventMerger | |||
*/ | |||
public function __construct(IL10N $l, IURLGenerator $url, IManager $activityManager, IUserManager $userManager, IEventMerger $eventMerger) { | |||
parent::__construct($userManager); | |||
$this->l = $l; | |||
$this->url = $url; | |||
$this->activityManager = $activityManager; | |||
$this->userManager = $userManager; | |||
$this->eventMerger = $eventMerger; | |||
} | |||
@@ -107,22 +99,6 @@ class Event implements IProvider { | |||
return $event; | |||
} | |||
/** | |||
* @param IEvent $event | |||
* @param string $subject | |||
* @param array $parameters | |||
*/ | |||
protected function setSubjects(IEvent $event, $subject, array $parameters) { | |||
$placeholders = $replacements = []; | |||
foreach ($parameters as $placeholder => $parameter) { | |||
$placeholders[] = '{' . $placeholder . '}'; | |||
$replacements[] = $parameter['name']; | |||
} | |||
$event->setParsedSubject(str_replace($placeholders, $replacements, $subject)) | |||
->setRichSubject($subject, $parameters); | |||
} | |||
/** | |||
* @param IEvent $event | |||
* @return array | |||
@@ -151,62 +127,4 @@ class Event implements IProvider { | |||
throw new \InvalidArgumentException(); | |||
} | |||
/** | |||
* @param array $eventData | |||
* @return array | |||
*/ | |||
protected function generateObjectParameter($eventData) { | |||
if (!is_array($eventData)) { | |||
throw new \InvalidArgumentException(); | |||
}; | |||
return [ | |||
'type' => 'calendar-event', | |||
'id' => $eventData['id'], | |||
'name' => $eventData['name'], | |||
]; | |||
} | |||
/** | |||
* @param int $id | |||
* @param string $name | |||
* @return array | |||
*/ | |||
protected function generateCalendarParameter($id, $name) { | |||
return [ | |||
'type' => 'calendar', | |||
'id' => $id, | |||
'name' => $name, | |||
]; | |||
} | |||
/** | |||
* @param string $uid | |||
* @return array | |||
*/ | |||
protected function generateUserParameter($uid) { | |||
if (!isset($this->displayNames[$uid])) { | |||
$this->displayNames[$uid] = $this->getDisplayName($uid); | |||
} | |||
return [ | |||
'type' => 'user', | |||
'id' => $uid, | |||
'name' => $this->displayNames[$uid], | |||
]; | |||
} | |||
/** | |||
* @param string $uid | |||
* @return string | |||
*/ | |||
protected function getDisplayName($uid) { | |||
$user = $this->userManager->get($uid); | |||
if ($user instanceof IUser) { | |||
return $user->getDisplayName(); | |||
} else { | |||
return $uid; | |||
} | |||
} | |||
} |
@@ -22,13 +22,6 @@ | |||
namespace OCA\DAV\CalDAV\Activity\Provider; | |||
use OCP\Activity\IEvent; | |||
use OCP\Activity\IEventMerger; | |||
use OCP\Activity\IManager; | |||
use OCP\Activity\IProvider; | |||
use OCP\IL10N; | |||
use OCP\IURLGenerator; | |||
use OCP\IUser; | |||
use OCP\IUserManager; | |||
class Todo extends Event { | |||