]> git.mxchange.org Git - friendica.git/blobdiff - src/Model/Post/Collection.php
Use the owner, not the author
[friendica.git] / src / Model / Post / Collection.php
index 476e9d3b336802f68cf5d31a2bc32b6397de8965..af336e92a73932299d337739982cac4593ab1b6c 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * @copyright Copyright (C) 2010-2022, the Friendica project
+ * @copyright Copyright (C) 2010-2023, the Friendica project
  *
  * @license GNU AGPL version 3 or any later version
  *
@@ -24,6 +24,9 @@ namespace Friendica\Model\Post;
 use Friendica\Database\DBA;
 use BadMethodCallException;
 use Friendica\Database\Database;
+use Friendica\DI;
+use Friendica\Model\Item;
+use Friendica\Protocol\ActivityPub;
 
 class Collection
 {
@@ -34,14 +37,20 @@ class Collection
         *
         * @param integer $uri_id
         * @param integer $type
+        * @param integer $author_id
+        * @param integer $cache_uid If set to a non zero value, the featured cache is cleared
         */
-       public static function add(int $uri_id, int $type)
+       public static function add(int $uri_id, int $type, int $author_id, int $cache_uid = 0)
        {
                if (empty($uri_id)) {
                        throw new BadMethodCallException('Empty URI_id');
                }
 
-               DBA::insert('post-collection', ['uri-id' => $uri_id, 'type' => $type], Database::INSERT_IGNORE);
+               DBA::insert('post-collection', ['uri-id' => $uri_id, 'type' => $type, 'author-id' => $author_id], Database::INSERT_IGNORE);
+
+               if (!empty($cache_uid) && ($type == self::FEATURED)) {
+                       DI::cache()->delete(ActivityPub\Transmitter::CACHEKEY_FEATURED . $cache_uid);
+               }
        }
 
        /**
@@ -49,14 +58,19 @@ class Collection
         *
         * @param integer $uri_id
         * @param integer $type
+        * @param integer $cache_uid If set to a non zero value, the featured cache is cleared
         */
-       public static function remove(int $uri_id, int $type)
+       public static function remove(int $uri_id, int $type, int $cache_uid = 0)
        {
                if (empty($uri_id)) {
                        throw new BadMethodCallException('Empty URI_id');
                }
 
                DBA::delete('post-collection', ['uri-id' => $uri_id, 'type' => $type]);
+
+               if (!empty($cache_uid) && ($type == self::FEATURED)) {
+                       DI::cache()->delete(ActivityPub\Transmitter::CACHEKEY_FEATURED . $cache_uid);
+               }
        }
 
        /**
@@ -67,8 +81,8 @@ class Collection
         * @param array $fields
         * @return array
         */
-       public static function selectToArrayForContact(int $cid, int $type = self::FEATURED, array $fields = []) 
+       public static function selectToArrayForContact(int $cid, int $type = self::FEATURED, array $fields = [])
        {
-               return DBA::selectToArray('collection-view', $fields, ['cid' => $cid, 'type' => $type]);
+               return DBA::selectToArray('collection-view', $fields, ['cid' => $cid, 'private' => [Item::PUBLIC, Item::UNLISTED], 'deleted' => false, 'type' => $type]);
        }
 }