Improvements:
authornupplaPhil <admin@philipp.info>
Sun, 26 Jan 2020 13:30:32 +0000 (14:30 +0100)
committernupplaPhil <admin@philipp.info>
Sun, 26 Jan 2020 13:33:10 +0000 (14:33 +0100)
- Fix API-select
- Introduce OTYPE-constants
- Rename `IntroductionFactory` methods

include/api.php
include/enotify.php
src/Factory/Notification/IntroductionFactory.php
src/Model/Notification.php
src/Module/Notifications/Introductions.php

index 4a55c2b..0729c2a 100644 (file)
@@ -23,6 +23,7 @@ use Friendica\Model\Contact;
 use Friendica\Model\Group;
 use Friendica\Model\Item;
 use Friendica\Model\Mail;
+use Friendica\Model\Notification;
 use Friendica\Model\Photo;
 use Friendica\Model\Profile;
 use Friendica\Model\User;
@@ -5906,7 +5907,7 @@ function api_friendica_notification($type)
                throw new BadRequestException("Invalid argument count");
        }
 
-       $notifications = DI::notification()->select([], ['order' => ['seen' => 'ASC', 'date' => 'DESC'], 'limit' => 50]);
+       $notifications = DI::notification()->select(['uid' => api_user()], ['order' => ['seen' => 'ASC', 'date' => 'DESC'], 'limit' => 50]);
 
        if ($type == "xml") {
                $xmlnotes = false;
@@ -5957,8 +5958,7 @@ function api_friendica_notification_seen($type)
                $notification = DI::notification()->getByID($id);
                $notification->setSeen();
 
-               if ($notification->otype == 'item') {
-                       // would be really better with an ItemsManager and $im->getByID() :-P
+               if ($notification->otype === Notification::OTYPE_ITEM) {
                        $item = Item::selectFirstForUser(api_user(), [], ['id' => $notification->iid, 'uid' => api_user()]);
                        if (DBA::isResult($item)) {
                                // we found the item, return it to the user
index 32f32af..f509367 100644 (file)
@@ -12,6 +12,7 @@ use Friendica\Database\DBA;
 use Friendica\DI;
 use Friendica\Model\Item;
 use Friendica\Model\ItemContent;
+use Friendica\Model\Notification;
 use Friendica\Model\User;
 use Friendica\Model\UserItem;
 use Friendica\Protocol\Activity;
@@ -160,7 +161,7 @@ function notification($params)
 
                // if it's a post figure out who's post it is.
                $item = null;
-               if ($params['otype'] === 'item' && $parent_id) {
+               if ($params['otype'] === Notification::OTYPE_ITEM && $parent_id) {
                        $item = Item::selectFirstForUser($params['uid'], Item::ITEM_FIELDLIST, ['id' => $parent_id, 'deleted' => false]);
                }
 
index 3f2bb56..0988821 100644 (file)
@@ -63,7 +63,7 @@ class IntroductionFactory extends BaseFactory
         *
         * @return Introduction[]
         */
-       public function getIntroList(bool $all = false, int $start = 0, int $limit = BaseNotifications::DEFAULT_PAGE_LIMIT, int $id = 0)
+       public function getList(bool $all = false, int $start = 0, int $limit = BaseNotifications::DEFAULT_PAGE_LIMIT, int $id = 0)
        {
                $sql_extra     = "";
 
@@ -128,7 +128,7 @@ class IntroductionFactory extends BaseFactory
 
                                        // Normal connection requests
                                } else {
-                                       $notification = $this->getMissingIntroData($notification);
+                                       $notification = $this->getMissingData($notification);
 
                                        if (empty($notification['url'])) {
                                                continue;
@@ -182,7 +182,7 @@ class IntroductionFactory extends BaseFactory
         *
         * @throws InternalServerErrorException
         */
-       private function getMissingIntroData(array $intro)
+       private function getMissingData(array $intro)
        {
                // If the network and the addr isn't available from the gcontact
                // table entry, take the one of the contact table entry
index 254aaf5..75fb958 100644 (file)
@@ -44,6 +44,11 @@ use Psr\Log\LoggerInterface;
  */
 class Notification extends BaseModel
 {
+       const OTYPE_ITEM   = 'item';
+       const OTYPE_INTRO  = 'intro';
+       const OTYPE_MAIL   = 'mail';
+       const OTYPE_PERSON = 'person';
+
        /** @var \Friendica\Repository\Notification */
        private $repo;
 
index 8ded212..69c7763 100644 (file)
@@ -26,7 +26,7 @@ class Introductions extends BaseNotifications
 
                $notifications = [
                        'ident'         => 'introductions',
-                       'notifications' => DI::factNotIntro()->getIntroList($all, self::$firstItemNum, self::ITEMS_PER_PAGE, $id),
+                       'notifications' => DI::factNotIntro()->getList($all, self::$firstItemNum, self::ITEMS_PER_PAGE, $id),
                ];
 
                return [