Newsletter validation updates
- Rename validator to newsletterValidator for clarity - Add validation for ALC content - Refactor tests to use data factory for consistency and to avoid validation issues - Add separate tests for NewsletterValidator service - Add test helper for retrieving service with private properties overridden by name [MAILPOET-4236]
This commit is contained in:
committed by
Veljko V
parent
a5103f9596
commit
9bfe2b2ca1
@ -17,12 +17,12 @@ use MailPoet\Listing;
|
||||
use MailPoet\Newsletter\Listing\NewsletterListingRepository;
|
||||
use MailPoet\Newsletter\NewsletterSaveController;
|
||||
use MailPoet\Newsletter\NewslettersRepository;
|
||||
use MailPoet\Newsletter\NewsletterValidator;
|
||||
use MailPoet\Newsletter\Preview\SendPreviewController;
|
||||
use MailPoet\Newsletter\Preview\SendPreviewException;
|
||||
use MailPoet\Newsletter\Scheduler\PostNotificationScheduler;
|
||||
use MailPoet\Newsletter\Scheduler\Scheduler;
|
||||
use MailPoet\Newsletter\Url as NewsletterUrl;
|
||||
use MailPoet\Newsletter\Validator;
|
||||
use MailPoet\Settings\SettingsController;
|
||||
use MailPoet\UnexpectedValueException;
|
||||
use MailPoet\Util\License\Features\Subscribers as SubscribersFeature;
|
||||
@ -76,11 +76,8 @@ class Newsletters extends APIEndpoint {
|
||||
/** @var NewsletterUrl */
|
||||
private $newsletterUrl;
|
||||
|
||||
/** @var TrackingConfig */
|
||||
private $trackingConfig;
|
||||
|
||||
/** @var Validator */
|
||||
private $validator;
|
||||
/** @var NewsletterValidator */
|
||||
private $newsletterValidator;
|
||||
|
||||
/** @var Scheduler */
|
||||
private $scheduler;
|
||||
@ -100,7 +97,7 @@ class Newsletters extends APIEndpoint {
|
||||
NewsletterSaveController $newsletterSaveController,
|
||||
NewsletterUrl $newsletterUrl,
|
||||
Scheduler $scheduler,
|
||||
Validator $validator
|
||||
NewsletterValidator $newsletterValidator
|
||||
) {
|
||||
$this->listingHandler = $listingHandler;
|
||||
$this->wp = $wp;
|
||||
@ -116,7 +113,7 @@ class Newsletters extends APIEndpoint {
|
||||
$this->newsletterSaveController = $newsletterSaveController;
|
||||
$this->newsletterUrl = $newsletterUrl;
|
||||
$this->scheduler = $scheduler;
|
||||
$this->validator = $validator;
|
||||
$this->newsletterValidator = $newsletterValidator;
|
||||
}
|
||||
|
||||
public function get($data = []) {
|
||||
@ -188,7 +185,7 @@ class Newsletters extends APIEndpoint {
|
||||
}
|
||||
|
||||
if ($status === NewsletterEntity::STATUS_ACTIVE) {
|
||||
$validationError = $this->validator->validate($newsletter);
|
||||
$validationError = $this->newsletterValidator->validate($newsletter);
|
||||
if ($validationError !== null) {
|
||||
return $this->errorResponse([APIError::FORBIDDEN => $validationError], [], Response::STATUS_FORBIDDEN);
|
||||
}
|
||||
|
@ -14,10 +14,10 @@ use MailPoet\Mailer\MailerFactory;
|
||||
use MailPoet\Models\Newsletter;
|
||||
use MailPoet\Models\SendingQueue as SendingQueueModel;
|
||||
use MailPoet\Newsletter\NewslettersRepository;
|
||||
use MailPoet\Newsletter\NewsletterValidator;
|
||||
use MailPoet\Newsletter\Scheduler\Scheduler;
|
||||
use MailPoet\Newsletter\Sending\ScheduledTasksRepository;
|
||||
use MailPoet\Newsletter\Sending\SendingQueuesRepository;
|
||||
use MailPoet\Newsletter\Validator;
|
||||
use MailPoet\Segments\SubscribersFinder;
|
||||
use MailPoet\Tasks\Sending as SendingTask;
|
||||
use MailPoet\Util\License\Features\Subscribers as SubscribersFeature;
|
||||
@ -45,12 +45,12 @@ class SendingQueue extends APIEndpoint {
|
||||
/** @var MailerFactory */
|
||||
private $mailerFactory;
|
||||
|
||||
/** @var NewsletterValidator */
|
||||
private $newsletterValidator;
|
||||
|
||||
/** @var Scheduler */
|
||||
private $scheduler;
|
||||
|
||||
/** @var Validator */
|
||||
private $validator;
|
||||
|
||||
public function __construct(
|
||||
SubscribersFeature $subscribersFeature,
|
||||
NewslettersRepository $newsletterRepository,
|
||||
@ -59,7 +59,7 @@ class SendingQueue extends APIEndpoint {
|
||||
ScheduledTasksRepository $scheduledTasksRepository,
|
||||
MailerFactory $mailerFactory,
|
||||
Scheduler $scheduler,
|
||||
Validator $validator
|
||||
NewsletterValidator $newsletterValidator
|
||||
) {
|
||||
$this->subscribersFeature = $subscribersFeature;
|
||||
$this->subscribersFinder = $subscribersFinder;
|
||||
@ -68,7 +68,7 @@ class SendingQueue extends APIEndpoint {
|
||||
$this->scheduledTasksRepository = $scheduledTasksRepository;
|
||||
$this->mailerFactory = $mailerFactory;
|
||||
$this->scheduler = $scheduler;
|
||||
$this->validator = $validator;
|
||||
$this->newsletterValidator = $newsletterValidator;
|
||||
}
|
||||
|
||||
public function add($data = []) {
|
||||
@ -97,7 +97,7 @@ class SendingQueue extends APIEndpoint {
|
||||
]);
|
||||
}
|
||||
|
||||
$validationError = $this->validator->validate($newsletterEntity);
|
||||
$validationError = $this->newsletterValidator->validate($newsletterEntity);
|
||||
if ($validationError) {
|
||||
return $this->errorResponse([
|
||||
APIError::BAD_REQUEST => $validationError,
|
||||
|
Reference in New Issue
Block a user