diff --git a/lib/API/JSON/ResponseBuilders/NewslettersResponseBuilder.php b/lib/API/JSON/ResponseBuilders/NewslettersResponseBuilder.php index b8bd50db71..eaac942838 100644 --- a/lib/API/JSON/ResponseBuilders/NewslettersResponseBuilder.php +++ b/lib/API/JSON/ResponseBuilders/NewslettersResponseBuilder.php @@ -8,6 +8,7 @@ use MailPoet\Entities\SendingQueueEntity; use MailPoet\Models\SendingQueue; use MailPoet\Newsletter\Statistics\NewsletterStatistics; use MailPoet\Newsletter\Statistics\NewsletterStatisticsRepository; +use MailPoet\Newsletter\Url as NewsletterUrl; use MailPoetVendor\Doctrine\ORM\EntityManager; use function MailPoetVendor\array_column; @@ -120,6 +121,16 @@ class NewslettersResponseBuilder { 'statistics' => ($statistics && $newsletter->getType() !== NewsletterEntity::TYPE_NOTIFICATION) ? $statistics->asArray() : false, + 'preview_url' => NewsletterUrl::getViewInBrowserUrl( + (object)[ + 'id' => $newsletter->getId(), + 'hash' => $newsletter->getHash(), + ], + null, + in_array($newsletter->getStatus(), [NewsletterEntity::STATUS_SENT, NewsletterEntity::STATUS_SENDING], true) + ? $latestQueue + : false + ), ]; if ($newsletter->getType() === NewsletterEntity::TYPE_STANDARD) { diff --git a/lib/API/JSON/v1/Newsletters.php b/lib/API/JSON/v1/Newsletters.php index c449ca4273..769803103a 100644 --- a/lib/API/JSON/v1/Newsletters.php +++ b/lib/API/JSON/v1/Newsletters.php @@ -515,19 +515,6 @@ class Newsletters extends APIEndpoint { $data = []; foreach ($this->newslettersResponseBuilder->buildForListing($items) as $newsletterData) { - $queue = false; - if (in_array($newsletterData['status'], [Newsletter::STATUS_SENT, Newsletter::STATUS_SENDING], true)) { - $queue = SendingTask::getByNewsletterId($newsletterData['id']); - } - - $newsletterData['preview_url'] = NewsletterUrl::getViewInBrowserUrl( - (object)[ - 'id' => $newsletterData['id'], - 'hash' => $newsletterData['hash'], - ], - null, - $queue - ); $data[] = $this->wp->applyFilters('mailpoet_api_newsletters_listing_item', $newsletterData); }