]> git.mxchange.org Git - friendica.git/commitdiff
Extract Item::prepareOriginPost() into ItemInserter
authorArt4 <art4@wlabs.de>
Thu, 9 Jan 2025 20:57:39 +0000 (20:57 +0000)
committerArt4 <art4@wlabs.de>
Thu, 9 Jan 2025 20:57:39 +0000 (20:57 +0000)
src/Model/Item.php
src/Model/ItemInserter.php [new file with mode: 0644]

index 7e0cbfcfe24f60858d0d5a483ec7a821c2c15170..782c497ab2f6cc86ca130d790d4604a576656d19 100644 (file)
@@ -843,14 +843,6 @@ class Item
                return self::GRAVITY_UNKNOWN;   // Should not happen
        }
 
-       private static function prepareOriginPost(array $item): array
-       {
-               $item = DI::contentItem()->initializePost($item);
-               $item = DI::contentItem()->finalizePost($item, false);
-
-               return $item;
-       }
-
        /**
         * Inserts item record
         *
@@ -861,6 +853,8 @@ class Item
         */
        public static function insert(array $item, int $notify = 0, bool $post_local = true): int
        {
+               $itemInserter = new ItemInserter(DI::contentItem());
+
                $orig_item = $item;
 
                $priority = Worker::PRIORITY_HIGH;
@@ -869,7 +863,7 @@ class Item
 
                // If it is a posting where users should get notifications, then define it as wall posting
                if ($notify) {
-                       $item = self::prepareOriginPost($item);
+                       $item = $itemInserter->prepareOriginPost($item);
 
                        if (is_int($notify) && in_array($notify, Worker::PRIORITIES)) {
                                $priority = $notify;
diff --git a/src/Model/ItemInserter.php b/src/Model/ItemInserter.php
new file mode 100644 (file)
index 0000000..6db36f8
--- /dev/null
@@ -0,0 +1,33 @@
+<?php
+
+// Copyright (C) 2010-2024, the Friendica project
+// SPDX-FileCopyrightText: 2010-2024 the Friendica project
+//
+// SPDX-License-Identifier: AGPL-3.0-or-later
+
+namespace Friendica\Model;
+
+use Friendica\Content\Item as ItemContent;
+
+/**
+ * A helper class for inserting an Item Model
+ *
+ * @see Item::insert()
+ */
+final class ItemInserter
+{
+    private ItemContent $itemContent;
+
+    public function __construct(ItemContent $itemContent)
+    {
+        $this->itemContent = $itemContent;
+    }
+
+    public function prepareOriginPost(array $item): array
+       {
+               $item = $this->itemContent->initializePost($item);
+               $item = $this->itemContent->finalizePost($item, false);
+
+               return $item;
+       }
+}
\ No newline at end of file