Update templates API to save template images as files

[MAILPOET-2686]
This commit is contained in:
Rostislav Wolny
2021-10-15 14:08:47 +02:00
committed by Veljko V
parent 7fc55cf41c
commit 797f1d76ae

View File

@ -8,6 +8,7 @@ use MailPoet\API\JSON\ResponseBuilders\NewsletterTemplatesResponseBuilder;
use MailPoet\Config\AccessControl; use MailPoet\Config\AccessControl;
use MailPoet\Newsletter\ApiDataSanitizer; use MailPoet\Newsletter\ApiDataSanitizer;
use MailPoet\NewsletterTemplates\NewsletterTemplatesRepository; use MailPoet\NewsletterTemplates\NewsletterTemplatesRepository;
use MailPoet\NewsletterTemplates\ThumbnailSaver;
use MailPoet\WP\Functions as WPFunctions; use MailPoet\WP\Functions as WPFunctions;
class NewsletterTemplates extends APIEndpoint { class NewsletterTemplates extends APIEndpoint {
@ -25,16 +26,21 @@ class NewsletterTemplates extends APIEndpoint {
/** @var NewsletterTemplatesResponseBuilder */ /** @var NewsletterTemplatesResponseBuilder */
private $newsletterTemplatesResponseBuilder; private $newsletterTemplatesResponseBuilder;
/** @var ThumbnailSaver */
private $thumbnailImageSaver;
/** @var ApiDataSanitizer */ /** @var ApiDataSanitizer */
private $apiDataSanitizer; private $apiDataSanitizer;
public function __construct( public function __construct(
NewsletterTemplatesRepository $newsletterTemplatesRepository, NewsletterTemplatesRepository $newsletterTemplatesRepository,
NewsletterTemplatesResponseBuilder $newsletterTemplatesResponseBuilder, NewsletterTemplatesResponseBuilder $newsletterTemplatesResponseBuilder,
ThumbnailSaver $thumbnailImageSaver,
ApiDataSanitizer $apiDataSanitizer ApiDataSanitizer $apiDataSanitizer
) { ) {
$this->newsletterTemplatesRepository = $newsletterTemplatesRepository; $this->newsletterTemplatesRepository = $newsletterTemplatesRepository;
$this->newsletterTemplatesResponseBuilder = $newsletterTemplatesResponseBuilder; $this->newsletterTemplatesResponseBuilder = $newsletterTemplatesResponseBuilder;
$this->thumbnailImageSaver = $thumbnailImageSaver;
$this->apiDataSanitizer = $apiDataSanitizer; $this->apiDataSanitizer = $apiDataSanitizer;
} }
@ -67,6 +73,7 @@ class NewsletterTemplates extends APIEndpoint {
} }
try { try {
$template = $this->newsletterTemplatesRepository->createOrUpdate($data); $template = $this->newsletterTemplatesRepository->createOrUpdate($data);
$template = $this->thumbnailImageSaver->ensureTemplateThumbnailFile($template);
if (!empty($data['categories']) && $data['categories'] === NewsletterTemplatesRepository::RECENTLY_SENT_CATEGORIES) { if (!empty($data['categories']) && $data['categories'] === NewsletterTemplatesRepository::RECENTLY_SENT_CATEGORIES) {
$this->newsletterTemplatesRepository->cleanRecentlySent(); $this->newsletterTemplatesRepository->cleanRecentlySent();
} }