]> git.mxchange.org Git - friendica.git/blobdiff - src/Core/NotificationsManager.php
Avoid memory issue in exception
[friendica.git] / src / Core / NotificationsManager.php
index 5a2efe297be17b44b29cb4696f74cb8822b9ec2c..d582f21596688c16145ee28ee9cc3ec5c2a79de6 100644 (file)
@@ -9,8 +9,6 @@ namespace Friendica\Core;
 use Friendica\BaseObject;
 use Friendica\Content\Text\BBCode;
 use Friendica\Content\Text\HTML;
-use Friendica\Core\Logger;
-use Friendica\Core\Protocol;
 use Friendica\Database\DBA;
 use Friendica\Model\Contact;
 use Friendica\Model\Item;
@@ -36,6 +34,7 @@ class NotificationsManager extends BaseObject
         *  - date_rel : relative date string
         *  - msg_html: message as html string
         *  - msg_plain: message as plain text string
+        * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         */
        private function _set_extra($notes)
        {
@@ -61,6 +60,7 @@ class NotificationsManager extends BaseObject
         * @param string $limit  optional Query limits
         *
         * @return array of results or false on errors
+        * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         */
        public function getAll($filter = [], $order = "-date", $limit = "")
        {
@@ -109,6 +109,7 @@ class NotificationsManager extends BaseObject
         *
         * @param int $id identity
         * @return array note values or null if not found
+        * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         */
        public function getByID($id)
        {
@@ -129,6 +130,7 @@ class NotificationsManager extends BaseObject
         * @param array $note note array
         * @param bool  $seen optional true or false, default true
         * @return bool true on success, false on errors
+        * @throws \Exception
         */
        public function setSeen($note, $seen = true)
        {
@@ -147,6 +149,7 @@ class NotificationsManager extends BaseObject
         *
         * @param bool $seen optional true or false. default true
         * @return bool true on success, false on error
+        * @throws \Exception
         */
        public function setAllSeen($seen = true)
        {
@@ -161,6 +164,7 @@ class NotificationsManager extends BaseObject
         * @brief List of pages for the Notifications TabBar
         *
         * @return array with with notifications TabBar data
+        * @throws \Exception
         */
        public function getTabs()
        {
@@ -213,18 +217,18 @@ class NotificationsManager extends BaseObject
         * @param array  $notifs The array from the db query
         * @param string $ident  The notifications identifier (e.g. network)
         * @return array
-        *      string 'label' => The type of the notification
-        *      string 'link' => URL to the source
-        *      string 'image' => The avatar image
-        *      string 'url' => The profile url of the contact
-        *      string 'text' => The notification text
-        *      string 'when' => The date of the notification
-        *      string 'ago' => T relative date of the notification
-        *      bool 'seen' => Is the notification marked as "seen"
+        *                       string 'label' => The type of the notification
+        *                       string 'link' => URL to the source
+        *                       string 'image' => The avatar image
+        *                       string 'url' => The profile url of the contact
+        *                       string 'text' => The notification text
+        *                       string 'when' => The date of the notification
+        *                       string 'ago' => T relative date of the notification
+        *                       bool 'seen' => Is the notification marked as "seen"
+        * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         */
        private function formatNotifs(array $notifs, $ident = "")
        {
-               $notif = [];
                $arr = [];
 
                if (DBA::isResult($notifs)) {
@@ -398,14 +402,15 @@ class NotificationsManager extends BaseObject
        /**
         * @brief Get network notifications
         *
-        * @param int|string $seen  If 0 only include notifications into the query
-        *                              which aren't marked as "seen"
-        * @param int        $start Start the query at this point
-        * @param int        $limit Maximum number of query results
+        * @param int|string $seen    If 0 only include notifications into the query
+        *                            which aren't marked as "seen"
+        * @param int        $start   Start the query at this point
+        * @param int        $limit   Maximum number of query results
         *
         * @return array with
-        *      string 'ident' => Notification identifier
-        *      array 'notifications' => Network notifications
+        *    string 'ident' => Notification identifier
+        *    array 'notifications' => Network notifications
+        * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         */
        public function networkNotifs($seen = 0, $start = 0, $limit = 80)
        {
@@ -439,14 +444,15 @@ class NotificationsManager extends BaseObject
        /**
         * @brief Get system notifications
         *
-        * @param int|string $seen  If 0 only include notifications into the query
-        *                              which aren't marked as "seen"
-        * @param int        $start Start the query at this point
-        * @param int        $limit Maximum number of query results
+        * @param int|string $seen    If 0 only include notifications into the query
+        *                            which aren't marked as "seen"
+        * @param int        $start   Start the query at this point
+        * @param int        $limit   Maximum number of query results
         *
         * @return array with
-        *      string 'ident' => Notification identifier
-        *      array 'notifications' => System notifications
+        *    string 'ident' => Notification identifier
+        *    array 'notifications' => System notifications
+        * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         */
        public function systemNotifs($seen = 0, $start = 0, $limit = 80)
        {
@@ -481,14 +487,15 @@ class NotificationsManager extends BaseObject
        /**
         * @brief Get personal notifications
         *
-        * @param int|string $seen  If 0 only include notifications into the query
-        *                              which aren't marked as "seen"
-        * @param int        $start Start the query at this point
-        * @param int        $limit Maximum number of query results
+        * @param int|string $seen    If 0 only include notifications into the query
+        *                            which aren't marked as "seen"
+        * @param int        $start   Start the query at this point
+        * @param int        $limit   Maximum number of query results
         *
         * @return array with
-        *      string 'ident' => Notification identifier
-        *      array 'notifications' => Personal notifications
+        *    string 'ident' => Notification identifier
+        *    array 'notifications' => Personal notifications
+        * @throws \Exception
         */
        public function personalNotifs($seen = 0, $start = 0, $limit = 80)
        {
@@ -526,14 +533,15 @@ class NotificationsManager extends BaseObject
        /**
         * @brief Get home notifications
         *
-        * @param int|string $seen  If 0 only include notifications into the query
-        *                              which aren't marked as "seen"
-        * @param int        $start Start the query at this point
-        * @param int        $limit Maximum number of query results
+        * @param int|string $seen    If 0 only include notifications into the query
+        *                            which aren't marked as "seen"
+        * @param int        $start   Start the query at this point
+        * @param int        $limit   Maximum number of query results
         *
         * @return array with
-        *      string 'ident' => Notification identifier
-        *      array 'notifications' => Home notifications
+        *    string 'ident' => Notification identifier
+        *    array 'notifications' => Home notifications
+        * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         */
        public function homeNotifs($seen = 0, $start = 0, $limit = 80)
        {
@@ -566,14 +574,16 @@ class NotificationsManager extends BaseObject
        /**
         * @brief Get introductions
         *
-        * @param bool $all   If false only include introductions into the query
-        *                        which aren't marked as ignored
-        * @param int  $start Start the query at this point
-        * @param int  $limit Maximum number of query results
+        * @param bool $all     If false only include introductions into the query
+        *                      which aren't marked as ignored
+        * @param int  $start   Start the query at this point
+        * @param int  $limit   Maximum number of query results
         *
         * @return array with
-        *      string 'ident' => Notification identifier
-        *      array 'notifications' => Introductions
+        *    string 'ident' => Notification identifier
+        *    array 'notifications' => Introductions
+        * @throws \Friendica\Network\HTTPException\InternalServerErrorException
+        * @throws \ImagickException
         */
        public function introNotifs($all = false, $start = 0, $limit = 80)
        {
@@ -620,11 +630,15 @@ class NotificationsManager extends BaseObject
         *
         * @param array $intros The array from the db query
         * @return array with the introductions
+        * @throws \Friendica\Network\HTTPException\InternalServerErrorException
+        * @throws \ImagickException
         */
        private function formatIntros($intros)
        {
                $knowyou = '';
 
+               $arr = [];
+
                foreach ($intros as $it) {
                        // There are two kind of introduction. Contacts suggested by other contacts and normal connection requests.
                        // We have to distinguish between these two because they use different data.
@@ -703,6 +717,7 @@ class NotificationsManager extends BaseObject
         * @param array $arr The input array with the intro data
         *
         * @return array The array with the intro data
+        * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         */
        private function getMissingIntroData($arr)
        {