*/ public function getArticlesFromFeed(Feed $feed): Collection { if ($feed->type === 'rss') { return $this->fetchRssArticles->execute($feed); } elseif ($feed->type === 'website') { return $this->fetchWebsiteArticles->execute($feed); } $this->logSaver->warning('Unsupported feed type', null, [ 'feed_id' => $feed->id, 'feed_type' => $feed->type, ]); return collect(); } /** * @return array */ public function fetchArticleData(Article $article): array { try { $html = HttpFetcher::fetchHtml($article->url); $parser = ArticleParserFactory::getParser($article->url); return $parser->extractData($html); } catch (Exception $e) { $this->logSaver->error('Exception while fetching article data', null, [ 'url' => $article->url, 'error' => $e->getMessage(), ]); return []; } } }