Move Item::prepareItemData() into ItemInserter

This commit is contained in:
Art4 2025-01-09 21:04:12 +00:00
commit 27ba28237a
2 changed files with 29 additions and 29 deletions

View file

@ -876,7 +876,7 @@ class Item
$item['network'] = trim(($item['network'] ?? '') ?: Protocol::PHANTOM); $item['network'] = trim(($item['network'] ?? '') ?: Protocol::PHANTOM);
} }
$item = self::prepareItemData($item, (bool) $notify); $item = $itemInserter->prepareItemData($item, (bool) $notify);
// Store conversation data // Store conversation data
$source = $item['source'] ?? ''; $source = $item['source'] ?? '';
@ -1364,27 +1364,6 @@ class Item
return $post_user_id; return $post_user_id;
} }
private static function prepareItemData(array $item, bool $notify): array
{
$item['guid'] = self::guid($item, $notify);
$item['uri'] = substr(trim($item['uri'] ?? '') ?: self::newURI($item['guid']), 0, 255);
// Store URI data
$item['uri-id'] = ItemURI::insert(['uri' => $item['uri'], 'guid' => $item['guid']]);
// Backward compatibility: parent-uri used to be the direct parent uri.
// If it is provided without a thr-parent, it probably is the old behavior.
if (empty($item['thr-parent']) || empty($item['parent-uri'])) {
$item['thr-parent'] = trim($item['thr-parent'] ?? $item['parent-uri'] ?? $item['uri']);
$item['parent-uri'] = $item['thr-parent'];
}
$item['thr-parent-id'] = ItemURI::getIdByURI($item['thr-parent']);
$item['parent-uri-id'] = ItemURI::getIdByURI($item['parent-uri']);
return $item;
}
private static function validateItemData(array $item): array private static function validateItemData(array $item): array
{ {
$item['wall'] = intval($item['wall'] ?? 0); $item['wall'] = intval($item['wall'] ?? 0);

View file

@ -16,18 +16,39 @@ use Friendica\Content\Item as ItemContent;
*/ */
final class ItemInserter final class ItemInserter
{ {
private ItemContent $itemContent; private ItemContent $itemContent;
public function __construct(ItemContent $itemContent) public function __construct(ItemContent $itemContent)
{ {
$this->itemContent = $itemContent; $this->itemContent = $itemContent;
} }
public function prepareOriginPost(array $item): array public function prepareOriginPost(array $item): array
{ {
$item = $this->itemContent->initializePost($item); $item = $this->itemContent->initializePost($item);
$item = $this->itemContent->finalizePost($item, false); $item = $this->itemContent->finalizePost($item, false);
return $item; return $item;
} }
public function prepareItemData(array $item, bool $notify): array
{
$item['guid'] = Item::guid($item, $notify);
$item['uri'] = substr(trim($item['uri'] ?? '') ?: Item::newURI($item['guid']), 0, 255);
// Store URI data
$item['uri-id'] = ItemURI::insert(['uri' => $item['uri'], 'guid' => $item['guid']]);
// Backward compatibility: parent-uri used to be the direct parent uri.
// If it is provided without a thr-parent, it probably is the old behavior.
if (empty($item['thr-parent']) || empty($item['parent-uri'])) {
$item['thr-parent'] = trim($item['thr-parent'] ?? $item['parent-uri'] ?? $item['uri']);
$item['parent-uri'] = $item['thr-parent'];
}
$item['thr-parent-id'] = ItemURI::getIdByURI($item['thr-parent']);
$item['parent-uri-id'] = ItemURI::getIdByURI($item['parent-uri']);
return $item;
}
} }