]> git.mxchange.org Git - friendica.git/blobdiff - src/Module/Notifications/Notify.php
Merge pull request #8019 from nupplaphil/task/replace_getClass
[friendica.git] / src / Module / Notifications / Notify.php
index d2c450dd9e244fb1fce79829a8efbee2362b35e0..bb52ce8124faca9315019bd0f0720cfa4678889d 100644 (file)
@@ -3,8 +3,9 @@
 namespace Friendica\Module\Notifications;
 
 use Friendica\BaseModule;
-use Friendica\Core\NotificationsManager;
+use Friendica\Core\L10n;
 use Friendica\Core\System;
+use Friendica\DI;
 use Friendica\Network\HTTPException;
 
 /**
@@ -12,37 +13,20 @@ use Friendica\Network\HTTPException;
  */
 class Notify extends BaseModule
 {
-       /**
-        * @throws HTTPException\InternalServerErrorException
-        * @throws HTTPException\UnauthorizedException
-        */
-       public static function rawContent()
+       public static function init(array $parameters = [])
        {
                if (!local_user()) {
                        throw new HTTPException\UnauthorizedException(L10n::t('Permission denied.'));
                }
+       }
 
-               $a = self::getApp();
-
-               // @TODO: Replace with parameter from router
-               if ($a->argc > 2 && $a->argv[1] === 'view' && intval($a->argv[2])) {
-                       $notificationsManager = new NotificationsManager();
-                       // @TODO: Replace with parameter from router
-                       $note = $notificationsManager->getByID($a->argv[2]);
-                       if (!empty($note)) {
-                               $notificationsManager->setSeen($note);
-                               if (!empty($note['link'])) {
-                                       System::externalRedirect($note['link']);
-                               }
-                       }
-
-                       $a->internalRedirect();
-               }
+       public static function rawContent(array $parameters = [])
+       {
+               $a = DI::app();
 
                // @TODO: Replace with parameter from router
                if ($a->argc > 2 && $a->argv[1] === 'mark' && $a->argv[2] === 'all') {
-                       $notificationsManager = new NotificationsManager();
-                       $success              = $notificationsManager->setAllSeen();
+                       $success              = DI::notify()->setAllSeen();
 
                        header('Content-type: application/json; charset=utf-8');
                        echo json_encode([
@@ -53,18 +37,31 @@ class Notify extends BaseModule
        }
 
        /**
-        * Redirect to the notifications main page
+        * Redirect to the notifications main page or to the url for the chosen notify
         *
         * @return string|void
         * @throws HTTPException\InternalServerErrorException
         */
-       public static function content()
+       public static function content(array $parameters = [])
        {
-               $a = self::getApp();
+               $a = DI::app();
 
                // @TODO: Replace with parameter from router
-               if (($a->argc > 0) && ($a->argv[0] == 'notify')) {
-                       $a->internalRedirect('notifications/system');
+               if ($a->argc > 2 && $a->argv[1] === 'view' && intval($a->argv[2])) {
+                       $notificationsManager = DI::notify();
+                       // @TODO: Replace with parameter from router
+                       $note = $notificationsManager->getByID($a->argv[2]);
+                       if (!empty($note)) {
+                               $notificationsManager->setSeen($note);
+                               if (!empty($note['link'])) {
+                                       System::externalRedirect($note['link']);
+                               }
+                       }
+
+                       DI::baseUrl()->redirect();
                }
+
+               // @TODO: Replace with parameter from router
+               DI::baseUrl()->redirect('notifications/system');
        }
 }