Use service for fix newsletter API data

[MAILPOET-3430]
This commit is contained in:
Jan Lysý
2021-02-18 09:06:12 +01:00
committed by Veljko V
parent e443e3918d
commit 9441d32bdd
2 changed files with 19 additions and 4 deletions

View File

@ -6,6 +6,7 @@ use MailPoet\API\JSON\Endpoint as APIEndpoint;
use MailPoet\API\JSON\Error as APIError;
use MailPoet\API\JSON\ResponseBuilders\NewsletterTemplatesResponseBuilder;
use MailPoet\Config\AccessControl;
use MailPoet\Newsletter\ApiDataSanitizer;
use MailPoet\NewsletterTemplates\NewsletterTemplatesRepository;
use MailPoet\WP\Functions as WPFunctions;
@ -24,12 +25,17 @@ class NewsletterTemplates extends APIEndpoint {
/** @var NewsletterTemplatesResponseBuilder */
private $newsletterTemplatesResponseBuilder;
/** @var ApiDataSanitizer */
private $apiDataSanitizer;
public function __construct(
NewsletterTemplatesRepository $newsletterTemplatesRepository,
NewsletterTemplatesResponseBuilder $newsletterTemplatesResponseBuilder
NewsletterTemplatesResponseBuilder $newsletterTemplatesResponseBuilder,
ApiDataSanitizer $apiDataSanitizer
) {
$this->newsletterTemplatesRepository = $newsletterTemplatesRepository;
$this->newsletterTemplatesResponseBuilder = $newsletterTemplatesResponseBuilder;
$this->apiDataSanitizer = $apiDataSanitizer;
}
public function get($data = []) {
@ -55,6 +61,8 @@ class NewsletterTemplates extends APIEndpoint {
public function save($data = []) {
ignore_user_abort(true);
$body = $this->apiDataSanitizer->sanitizeBody(json_decode($data['body'], true));
$data['body'] = json_encode($body);
try {
$template = $this->newsletterTemplatesRepository->createOrUpdate($data);
if (!empty($data['categories']) && $data['categories'] === NewsletterTemplatesRepository::RECENTLY_SENT_CATEGORIES) {