Нет описания

NewsletterTemplatesResponseBuilder.php 1.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. namespace MailPoet\API\JSON\ResponseBuilders;
  3. if (!defined('ABSPATH')) exit;
  4. use MailPoet\Entities\NewsletterTemplateEntity;
  5. class NewsletterTemplatesResponseBuilder {
  6. const DATE_FORMAT = 'Y-m-d H:i:s';
  7. public function build(NewsletterTemplateEntity $template): array {
  8. return [
  9. 'id' => $template->getId(),
  10. 'categories' => $template->getCategories(),
  11. 'thumbnail' => $template->getThumbnail(),
  12. 'name' => $template->getName(),
  13. 'readonly' => $template->getReadonly(),
  14. 'body' => $template->getBody(),
  15. 'created_at' => $template->getCreatedAt()->format(self::DATE_FORMAT),
  16. 'updated_at' => $template->getUpdatedAt()->format(self::DATE_FORMAT),
  17. 'newsletter_id' => ($newsletter = $template->getNewsletter()) ? $newsletter->getId() : null,
  18. ];
  19. }
  20. /**
  21. * @param NewsletterTemplateEntity[] $newsletterTemplates
  22. * @return mixed[]
  23. */
  24. public function buildForListing(array $newsletterTemplates): array {
  25. $data = [];
  26. foreach ($newsletterTemplates as $template) {
  27. $data[] = [
  28. 'id' => $template->getId(),
  29. 'categories' => $template->getCategories(),
  30. 'thumbnail' => $template->getThumbnail(),
  31. 'name' => $template->getName(),
  32. 'readonly' => $template->getReadonly(),
  33. ];
  34. }
  35. return $data;
  36. }
  37. }