From 8a1a2f658cc52db2cfebba346574ad2feb605df8 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Sun, 19 Sep 2021 12:56:24 -0400 Subject: [PATCH] Create new DI shorthands for notification-related factories --- include/enotify.php | 8 ++------ src/DI.php | 15 +++++++++++++++ src/Module/Notifications/Notifications.php | 3 +-- src/Worker/PushSubscription.php | 2 +- 4 files changed, 19 insertions(+), 9 deletions(-) diff --git a/include/enotify.php b/include/enotify.php index 90a17ad25..c30b6de86 100644 --- a/include/enotify.php +++ b/include/enotify.php @@ -30,7 +30,6 @@ use Friendica\Model\Item; use Friendica\Model\Notification; use Friendica\Model\Post; use Friendica\Model\User; -use Friendica\Model\Verb; use Friendica\Navigation\Notifications; use Friendica\Protocol\Activity; @@ -396,10 +395,7 @@ function notification_store_and_send($params, $sitelink, $tsitelink, $hsitelink, $notify_id = 0; if ($show_in_notification_page) { - /** @var $factory Notifications\Factory\Notify */ - $factory = DI::getDice()->create(Notifications\Factory\Notify::class); - - $Notify = $factory->createFromParams($params, $itemlink, $item_id, $uri_id, $parent_id, $parent_uri_id); + $Notify = DI::notifyFactory()->createFromParams($params, $itemlink, $item_id, $uri_id, $parent_id, $parent_uri_id); try { $Notify = DI::notify()->save($Notify); } catch (Notifications\Exception\NotificationCreationInterceptedException $e) { @@ -572,7 +568,7 @@ function notification_from_array(Notifications\Entity\Notification $Notification $subject = $l10n->t('%1$s Comment to conversation #%2$d by %3$s', $subjectPrefix, $item['parent'], $contact['name']); } - $msg = (new Notifications\Factory\Notification(DI::logger()))->getMessageFromNotification($Notification, DI::baseUrl(), $l10n); + $msg = DI::notificationFactory()->getMessageFromNotification($Notification, DI::baseUrl(), $l10n); if (empty($msg)) { Logger::info('No notification message, quitting', ['uid' => $Notification->uid, 'id' => $Notification->id, 'type' => $Notification->type]); return false; diff --git a/src/DI.php b/src/DI.php index 4168997d4..ea7310fee 100644 --- a/src/DI.php +++ b/src/DI.php @@ -463,11 +463,26 @@ abstract class DI return self::$dice->create(Navigation\Notifications\Depository\Notification::class); } + public static function notificationFactory(): Navigation\Notifications\Factory\Notification + { + return self::$dice->create(Navigation\Notifications\Factory\Notification::class); + } + public static function notify(): Navigation\Notifications\Depository\Notify { return self::$dice->create(Navigation\Notifications\Depository\Notify::class); } + public static function notifyFactory(): Navigation\Notifications\Factory\Notify + { + return self::$dice->create(Navigation\Notifications\Factory\Notify::class); + } + + public static function formattedNotificationFactory(): Navigation\Notifications\Factory\FormattedNotification + { + return self::$dice->create(Navigation\Notifications\Factory\FormattedNotification::class); + } + // // "Protocol" namespace instances // diff --git a/src/Module/Notifications/Notifications.php b/src/Module/Notifications/Notifications.php index af8b14512..a0e40719c 100644 --- a/src/Module/Notifications/Notifications.php +++ b/src/Module/Notifications/Notifications.php @@ -46,8 +46,7 @@ class Notifications extends BaseNotifications $notificationHeader = ''; $notifications = []; - /** @var \Friendica\Navigation\Notifications\Factory\FormattedNotification $factory */ - $factory = DI::getDice()->create(\Friendica\Navigation\Notifications\Factory\FormattedNotification::class); + $factory = DI::formattedNotificationFactory(); if ((DI::args()->get(1) == 'network')) { $notificationHeader = DI::l10n()->t('Network Notifications'); diff --git a/src/Worker/PushSubscription.php b/src/Worker/PushSubscription.php index ae34abc87..f07b77319 100644 --- a/src/Worker/PushSubscription.php +++ b/src/Worker/PushSubscription.php @@ -82,7 +82,7 @@ class PushSubscription } } - $message = (new Notifications\Factory\Notification(DI::logger()))->getMessageFromNotification($Notification, DI::baseUrl(), $l10n); + $message = DI::notificationFactory()->getMessageFromNotification($Notification, DI::baseUrl(), $l10n); $title = $message['plain'] ?: ''; $push = Subscription::create([