Unify responses of newsletter editing API methods with get()

[MAILPOET-5779]
This commit is contained in:
Jan Jakes
2024-01-16 15:37:42 +01:00
committed by Veljko V
parent a50fcc67ba
commit e0b6cf7b41
2 changed files with 57 additions and 9 deletions

View File

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

View File

@ -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);
}