diff --git a/lib/API/JSON/v1/Newsletters.php b/lib/API/JSON/v1/Newsletters.php index ba5158a4d4..55c6526ea0 100644 --- a/lib/API/JSON/v1/Newsletters.php +++ b/lib/API/JSON/v1/Newsletters.php @@ -143,8 +143,10 @@ class Newsletters extends APIEndpoint { } public function save($data = []) { - list($data, $meta) = $this->newsletterSaveController->save($data); - return $this->successResponse($data, $meta); + $newsletter = $this->newsletterSaveController->save($data); + $response = $this->newslettersResponseBuilder->build($newsletter); + $previewUrl = $this->getViewInBrowserUrl($newsletter); + return $this->successResponse($response, ['preview_url' => $previewUrl]); } public function setStatus($data = []) { diff --git a/lib/Newsletter/NewsletterSaveController.php b/lib/Newsletter/NewsletterSaveController.php index 8ef073b2e3..7eb52fb9ac 100644 --- a/lib/Newsletter/NewsletterSaveController.php +++ b/lib/Newsletter/NewsletterSaveController.php @@ -17,7 +17,6 @@ use MailPoet\Newsletter\Scheduler\PostNotificationScheduler; use MailPoet\Newsletter\Scheduler\Scheduler; use MailPoet\Newsletter\Segment\NewsletterSegmentRepository; use MailPoet\Newsletter\Sending\ScheduledTasksRepository; -use MailPoet\Newsletter\Url as NewsletterUrl; use MailPoet\NewsletterTemplates\NewsletterTemplatesRepository; use MailPoet\NotFoundException; use MailPoet\Services\AuthorizedEmailsController; @@ -92,7 +91,7 @@ class NewsletterSaveController { $this->wp = $wp; } - public function save(array $data = []): array { + public function save(array $data = []): NewsletterEntity { $data = $this->wp->applyFilters('mailpoet_api_newsletters_save_before', $data); if (!empty($data['template_id'])) { @@ -132,9 +131,7 @@ class NewsletterSaveController { $this->wp->doAction('mailpoet_api_newsletters_save_after', $newsletterModel); $this->authorizedEmailsController->onNewsletterSenderAddressUpdate($newsletter, $oldSenderAddress); - - $previewUrl = NewsletterUrl::getViewInBrowserUrl($newsletterModel); - return [$newsletterModel->asArray(), ['preview_url' => $previewUrl]]; + return $newsletter; } private function getNewsletter(array $data): NewsletterEntity {