cachePrefix . "preview_card-{$hashedPreviewCardUrl}"; if (! ($found = cache($cacheName))) { $found = $this->where('url', $url) ->first(); cache() ->save($cacheName, $found, DECADE); } return $found; } public function getPostPreviewCard(string $postId): ?PreviewCard { $cacheName = config(Fediverse::class) ->cachePrefix . "post#{$postId}_preview_card"; if (! ($found = cache($cacheName))) { $found = $this->join( 'fediverse_posts_preview_cards', 'fediverse_posts_preview_cards.preview_card_id = id', 'inner', ) ->where('post_id', service('uuid') ->fromString($postId) ->getBytes()) ->first(); cache() ->save($cacheName, $found, DECADE); } return $found; } public function deletePreviewCard(int $id, string $url): BaseResult | bool { $hashedPreviewCardUrl = md5($url); cache() ->delete(config(Fediverse::class) ->cachePrefix . "preview_card-{$hashedPreviewCardUrl}"); return $this->delete($id); } }