diff --git a/mailpoet/lib/API/JSON/v1/Newsletters.php b/mailpoet/lib/API/JSON/v1/Newsletters.php index f4e084da2e..d8dbec1506 100644 --- a/mailpoet/lib/API/JSON/v1/Newsletters.php +++ b/mailpoet/lib/API/JSON/v1/Newsletters.php @@ -163,6 +163,8 @@ class Newsletters extends APIEndpoint { $newsletter = $this->newsletterSaveController->save($data); $response = $this->newslettersResponseBuilder->build($newsletter, [ NewslettersResponseBuilder::RELATION_SEGMENTS, + NewslettersResponseBuilder::RELATION_OPTIONS, + NewslettersResponseBuilder::RELATION_QUEUE, ]); $previewUrl = $this->getViewInBrowserUrl($newsletter); $response = $this->wp->applyFilters('mailpoet_api_newsletters_save_after', $response); @@ -237,7 +239,11 @@ class Newsletters extends APIEndpoint { $this->newslettersRepository->flush(); return $this->successResponse( - $this->newslettersResponseBuilder->build($newsletter) + $this->newslettersResponseBuilder->build($newsletter, [ + NewslettersResponseBuilder::RELATION_SEGMENTS, + NewslettersResponseBuilder::RELATION_OPTIONS, + NewslettersResponseBuilder::RELATION_QUEUE, + ]) ); } @@ -247,7 +253,11 @@ class Newsletters extends APIEndpoint { $this->newslettersRepository->bulkRestore([$newsletter->getId()]); $this->newslettersRepository->refresh($newsletter); return $this->successResponse( - $this->newslettersResponseBuilder->build($newsletter), + $this->newslettersResponseBuilder->build($newsletter, [ + NewslettersResponseBuilder::RELATION_SEGMENTS, + NewslettersResponseBuilder::RELATION_OPTIONS, + NewslettersResponseBuilder::RELATION_QUEUE, + ]), ['count' => 1] ); } else { @@ -263,7 +273,11 @@ class Newsletters extends APIEndpoint { $this->newslettersRepository->bulkTrash([$newsletter->getId()]); $this->newslettersRepository->refresh($newsletter); return $this->successResponse( - $this->newslettersResponseBuilder->build($newsletter), + $this->newslettersResponseBuilder->build($newsletter, [ + NewslettersResponseBuilder::RELATION_SEGMENTS, + NewslettersResponseBuilder::RELATION_OPTIONS, + NewslettersResponseBuilder::RELATION_QUEUE, + ]), ['count' => 1] ); } else { @@ -294,7 +308,11 @@ class Newsletters extends APIEndpoint { $duplicate = $this->newsletterSaveController->duplicate($newsletter); $this->wp->doAction('mailpoet_api_newsletters_duplicate_after', $newsletter, $duplicate); return $this->successResponse( - $this->newslettersResponseBuilder->build($duplicate), + $this->newslettersResponseBuilder->build($duplicate, [ + NewslettersResponseBuilder::RELATION_SEGMENTS, + NewslettersResponseBuilder::RELATION_OPTIONS, + NewslettersResponseBuilder::RELATION_QUEUE, + ]), ['count' => 1] ); } else { diff --git a/mailpoet/tests/integration/API/JSON/v1/NewslettersTest.php b/mailpoet/tests/integration/API/JSON/v1/NewslettersTest.php index a76b7cfe22..d05faf005c 100644 --- a/mailpoet/tests/integration/API/JSON/v1/NewslettersTest.php +++ b/mailpoet/tests/integration/API/JSON/v1/NewslettersTest.php @@ -201,7 +201,13 @@ class NewslettersTest extends \MailPoetTest { verify($response->status)->equals(APIResponse::STATUS_OK); $updatedNewsletter = $this->newsletterRepository->findOneById($this->newsletter->getId()); $this->assertInstanceOf(NewsletterEntity::class, $updatedNewsletter); // PHPStan - verify($response->data)->equals($this->newslettersResponseBuilder->build($updatedNewsletter, [NewslettersResponseBuilder::RELATION_SEGMENTS])); + verify($response->data)->equals( + $this->newslettersResponseBuilder->build($updatedNewsletter, [ + NewslettersResponseBuilder::RELATION_SEGMENTS, + NewslettersResponseBuilder::RELATION_OPTIONS, + NewslettersResponseBuilder::RELATION_QUEUE, + ]) + ); verify($updatedNewsletter->getType())->equals('Updated type'); verify($updatedNewsletter->getSubject())->equals('Updated subject'); verify($updatedNewsletter->getPreheader())->equals('Updated preheader'); @@ -347,7 +353,13 @@ class NewslettersTest extends \MailPoetTest { verify($response->status)->equals(APIResponse::STATUS_OK); $newsletter = $this->newsletterRepository->findOneById($this->newsletter->getId()); $this->assertInstanceOf(NewsletterEntity::class, $newsletter); - verify($response->data)->equals($this->newslettersResponseBuilder->build($newsletter)); + verify($response->data)->equals( + $this->newslettersResponseBuilder->build($newsletter, [ + NewslettersResponseBuilder::RELATION_SEGMENTS, + NewslettersResponseBuilder::RELATION_OPTIONS, + NewslettersResponseBuilder::RELATION_QUEUE, + ]) + ); verify($response->data['deleted_at'])->null(); verify($response->meta['count'])->equals(1); } @@ -357,7 +369,13 @@ class NewslettersTest extends \MailPoetTest { verify($response->status)->equals(APIResponse::STATUS_OK); $newsletter = $this->newsletterRepository->findOneById($this->newsletter->getId()); $this->assertInstanceOf(NewsletterEntity::class, $newsletter); - verify($response->data)->equals($this->newslettersResponseBuilder->build($newsletter)); + verify($response->data)->equals( + $this->newslettersResponseBuilder->build($newsletter, [ + NewslettersResponseBuilder::RELATION_SEGMENTS, + NewslettersResponseBuilder::RELATION_OPTIONS, + NewslettersResponseBuilder::RELATION_QUEUE, + ]) + ); verify($response->data['deleted_at'])->notNull(); verify($response->meta['count'])->equals(1); } @@ -382,7 +400,13 @@ class NewslettersTest extends \MailPoetTest { verify($response->status)->equals(APIResponse::STATUS_OK); $newsletterCopy = $this->newsletterRepository->findOneBy(['subject' => 'Copy of My Standard Newsletter']); $this->assertInstanceOf(NewsletterEntity::class, $newsletterCopy); - verify($response->data)->equals($this->newslettersResponseBuilder->build($newsletterCopy)); + verify($response->data)->equals( + $this->newslettersResponseBuilder->build($newsletterCopy, [ + NewslettersResponseBuilder::RELATION_SEGMENTS, + NewslettersResponseBuilder::RELATION_OPTIONS, + NewslettersResponseBuilder::RELATION_QUEUE, + ]) + ); verify($response->meta['count'])->equals(1); $hookName = 'mailpoet_api_newsletters_duplicate_after'; @@ -393,7 +417,13 @@ class NewslettersTest extends \MailPoetTest { verify($response->status)->equals(APIResponse::STATUS_OK); $newsletterCopy = $this->newsletterRepository->findOneBy(['subject' => 'Copy of My Post Notification']); $this->assertInstanceOf(NewsletterEntity::class, $newsletterCopy); - verify($response->data)->equals($this->newslettersResponseBuilder->build($newsletterCopy)); + verify($response->data)->equals( + $this->newslettersResponseBuilder->build($newsletterCopy, [ + NewslettersResponseBuilder::RELATION_SEGMENTS, + NewslettersResponseBuilder::RELATION_OPTIONS, + NewslettersResponseBuilder::RELATION_QUEUE, + ]) + ); verify($response->meta['count'])->equals(1); }