}
protected function registerNotifier() {
- $this->getContainer()->getServer()->getNotificationManager()->registerNotifier(
- function() {
- return $this->getContainer()->query(Notifier::class);
- },
- function () {
- $l = $this->getContainer()->getServer()->getL10NFactory()->get('comments');
- return ['id' => 'comments', 'name' => $l->t('Comments')];
- }
- );
+ $this->getContainer()->getServer()->getNotificationManager()->registerNotifier(Notifier::class);
}
protected function registerCommentsEventHandler() {
use OCP\IUser;
use OCP\IUserManager;
use OCP\L10N\IFactory;
+use OCP\Notification\AlreadyProcessedException;
use OCP\Notification\INotification;
use OCP\Notification\INotifier;
$this->userManager = $userManager;
}
+ /**
+ * Identifier of the notifier, only use [a-z0-9_]
+ *
+ * @return string
+ * @since 17.0.0
+ */
+ public function getID(): string {
+ return 'comments';
+ }
+
+ /**
+ * Human readable name describing the notifier
+ *
+ * @return string
+ * @since 17.0.0
+ */
+ public function getName(): string {
+ return $this->l10nFactory->get('comments')->t('Comments');
+ }
+
/**
* @param INotification $notification
* @param string $languageCode The code of the language that should be used to prepare the notification
* @return INotification
* @throws \InvalidArgumentException When the notification was not prepared by a notifier
+ * @throws AlreadyProcessedException When the notification is not needed anymore and should be deleted
+ * @since 9.0.0
*/
- public function prepare(INotification $notification, $languageCode) {
+ public function prepare(INotification $notification, string $languageCode): INotification {
if($notification->getApp() !== 'comments') {
throw new \InvalidArgumentException();
}
$userFolder = $this->rootFolder->getUserFolder($notification->getUser());
$nodes = $userFolder->getById((int)$parameters[1]);
if(empty($nodes)) {
- throw new \InvalidArgumentException('Cannot resolve file ID to node instance');
+ throw new AlreadyProcessedException();
}
$node = $nodes[0];
public function registerNotifier() {
$notificationsManager = $this->getContainer()->getServer()->getNotificationManager();
- $notificationsManager->registerNotifier(function() {
- return $this->getContainer()->query(Notifier::class);
- }, function() {
- $l = $this->getContainer()->getServer()->getL10N('updatenotification');
- return [
- 'id' => 'updatenotification',
- 'name' => $l->t('Update notifications'),
- ];
- });
+ $notificationsManager->registerNotifier(Notifier::class);
}
}
use OCP\IUser;
use OCP\IUserSession;
use OCP\L10N\IFactory;
+use OCP\Notification\AlreadyProcessedException;
use OCP\Notification\IManager;
use OCP\Notification\INotification;
use OCP\Notification\INotifier;
$this->appVersions = $this->getAppVersions();
}
+ /**
+ * Identifier of the notifier, only use [a-z0-9_]
+ *
+ * @return string
+ * @since 17.0.0
+ */
+ public function getID(): string {
+ return 'updatenotification';
+ }
+
+ /**
+ * Human readable name describing the notifier
+ *
+ * @return string
+ * @since 17.0.0
+ */
+ public function getName(): string {
+ return $this->l10NFactory->get('updatenotification')->t('Update notifications');
+ }
+
/**
* @param INotification $notification
* @param string $languageCode The code of the language that should be used to prepare the notification
* @return INotification
* @throws \InvalidArgumentException When the notification was not prepared by a notifier
+ * @throws AlreadyProcessedException When the notification is not needed anymore and should be deleted
* @since 9.0.0
*/
- public function prepare(INotification $notification, $languageCode): INotification {
+ public function prepare(INotification $notification, string $languageCode): INotification {
if ($notification->getApp() !== 'updatenotification') {
throw new \InvalidArgumentException('Unknown app id');
}
*
* @param INotification $notification
* @param string $installedVersion
- * @throws \InvalidArgumentException When the update is already installed
+ * @throws AlreadyProcessedException When the update is already installed
*/
protected function updateAlreadyInstalledCheck(INotification $notification, $installedVersion) {
if (version_compare($notification->getObjectId(), $installedVersion, '<=')) {
- $this->notificationManager->markProcessed($notification);
- throw new \InvalidArgumentException('Update already installed');
+ throw new AlreadyProcessedException();
}
}
$ldapWrapper = new OCA\User_LDAP\LDAP();
$ocConfig = \OC::$server->getConfig();
$notificationManager = \OC::$server->getNotificationManager();
- $notificationManager->registerNotifier(function() {
- return new \OCA\User_LDAP\Notification\Notifier(
- \OC::$server->getL10NFactory()
- );
- }, function() {
- $l = \OC::$server->getL10N('user_ldap');
- return [
- 'id' => 'user_ldap',
- 'name' => $l->t('LDAP user and group backend'),
- ];
- });
+ $notificationManager->registerNotifier(\OCA\User_LDAP\Notification\Notifier::class);
$userSession = \OC::$server->getUserSession();
$userPluginManager = \OC::$server->query('LDAPUserPluginManager');
$this->l10nFactory = $l10nFactory;
}
+ /**
+ * Identifier of the notifier, only use [a-z0-9_]
+ *
+ * @return string
+ * @since 17.0.0
+ */
+ public function getID(): string {
+ return 'user_ldap';
+ }
+
+ /**
+ * Human readable name describing the notifier
+ *
+ * @return string
+ * @since 17.0.0
+ */
+ public function getName(): string {
+ return $this->l10nFactory->get('user_ldap')->t('LDAP User backend');
+ }
+
/**
* @param INotification $notification
* @param string $languageCode The code of the language that should be used to prepare the notification
* @return INotification
* @throws \InvalidArgumentException When the notification was not prepared by a notifier
*/
- public function prepare(INotification $notification, $languageCode) {
+ public function prepare(INotification $notification, string $languageCode): INotification {
if ($notification->getApp() !== 'user_ldap') {
// Not my app => throw
throw new \InvalidArgumentException();