Move view-in-browser URL for listing to response builder

[MAILPOET-2646]
This commit is contained in:
Jan Jakeš
2020-04-29 10:25:39 +02:00
committed by Veljko V
parent f010c96c2d
commit 9a17d89d28
2 changed files with 11 additions and 13 deletions

View File

@ -8,6 +8,7 @@ use MailPoet\Entities\SendingQueueEntity;
use MailPoet\Models\SendingQueue; use MailPoet\Models\SendingQueue;
use MailPoet\Newsletter\Statistics\NewsletterStatistics; use MailPoet\Newsletter\Statistics\NewsletterStatistics;
use MailPoet\Newsletter\Statistics\NewsletterStatisticsRepository; use MailPoet\Newsletter\Statistics\NewsletterStatisticsRepository;
use MailPoet\Newsletter\Url as NewsletterUrl;
use MailPoetVendor\Doctrine\ORM\EntityManager; use MailPoetVendor\Doctrine\ORM\EntityManager;
use function MailPoetVendor\array_column; use function MailPoetVendor\array_column;
@ -120,6 +121,16 @@ class NewslettersResponseBuilder {
'statistics' => ($statistics && $newsletter->getType() !== NewsletterEntity::TYPE_NOTIFICATION) 'statistics' => ($statistics && $newsletter->getType() !== NewsletterEntity::TYPE_NOTIFICATION)
? $statistics->asArray() ? $statistics->asArray()
: false, : 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) { if ($newsletter->getType() === NewsletterEntity::TYPE_STANDARD) {

View File

@ -515,19 +515,6 @@ class Newsletters extends APIEndpoint {
$data = []; $data = [];
foreach ($this->newslettersResponseBuilder->buildForListing($items) as $newsletterData) { 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); $data[] = $this->wp->applyFilters('mailpoet_api_newsletters_listing_item', $newsletterData);
} }