Return updated Newsletter entity from save controller

[MAILPOET-2900]
This commit is contained in:
Jan Jakeš
2020-05-13 13:55:40 +02:00
committed by Veljko V
parent 8fe3870608
commit 98c78c5c24
2 changed files with 6 additions and 7 deletions

View File

@ -143,8 +143,10 @@ class Newsletters extends APIEndpoint {
} }
public function save($data = []) { public function save($data = []) {
list($data, $meta) = $this->newsletterSaveController->save($data); $newsletter = $this->newsletterSaveController->save($data);
return $this->successResponse($data, $meta); $response = $this->newslettersResponseBuilder->build($newsletter);
$previewUrl = $this->getViewInBrowserUrl($newsletter);
return $this->successResponse($response, ['preview_url' => $previewUrl]);
} }
public function setStatus($data = []) { public function setStatus($data = []) {

View File

@ -17,7 +17,6 @@ use MailPoet\Newsletter\Scheduler\PostNotificationScheduler;
use MailPoet\Newsletter\Scheduler\Scheduler; use MailPoet\Newsletter\Scheduler\Scheduler;
use MailPoet\Newsletter\Segment\NewsletterSegmentRepository; use MailPoet\Newsletter\Segment\NewsletterSegmentRepository;
use MailPoet\Newsletter\Sending\ScheduledTasksRepository; use MailPoet\Newsletter\Sending\ScheduledTasksRepository;
use MailPoet\Newsletter\Url as NewsletterUrl;
use MailPoet\NewsletterTemplates\NewsletterTemplatesRepository; use MailPoet\NewsletterTemplates\NewsletterTemplatesRepository;
use MailPoet\NotFoundException; use MailPoet\NotFoundException;
use MailPoet\Services\AuthorizedEmailsController; use MailPoet\Services\AuthorizedEmailsController;
@ -92,7 +91,7 @@ class NewsletterSaveController {
$this->wp = $wp; $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); $data = $this->wp->applyFilters('mailpoet_api_newsletters_save_before', $data);
if (!empty($data['template_id'])) { if (!empty($data['template_id'])) {
@ -132,9 +131,7 @@ class NewsletterSaveController {
$this->wp->doAction('mailpoet_api_newsletters_save_after', $newsletterModel); $this->wp->doAction('mailpoet_api_newsletters_save_after', $newsletterModel);
$this->authorizedEmailsController->onNewsletterSenderAddressUpdate($newsletter, $oldSenderAddress); $this->authorizedEmailsController->onNewsletterSenderAddressUpdate($newsletter, $oldSenderAddress);
return $newsletter;
$previewUrl = NewsletterUrl::getViewInBrowserUrl($newsletterModel);
return [$newsletterModel->asArray(), ['preview_url' => $previewUrl]];
} }
private function getNewsletter(array $data): NewsletterEntity { private function getNewsletter(array $data): NewsletterEntity {