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 = []) {
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 = []) {

View File

@ -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 {