Use MailerFactory in sending queue API mailer config check
[MAILPOET-4115]
This commit is contained in:
committed by
Veljko V
parent
904b6dd34c
commit
06fb13bd86
@ -10,6 +10,7 @@ use MailPoet\Cron\Triggers\WordPress;
|
|||||||
use MailPoet\Entities\NewsletterEntity;
|
use MailPoet\Entities\NewsletterEntity;
|
||||||
use MailPoet\Entities\ScheduledTaskEntity;
|
use MailPoet\Entities\ScheduledTaskEntity;
|
||||||
use MailPoet\Entities\SendingQueueEntity;
|
use MailPoet\Entities\SendingQueueEntity;
|
||||||
|
use MailPoet\Mailer\MailerFactory;
|
||||||
use MailPoet\Models\Newsletter;
|
use MailPoet\Models\Newsletter;
|
||||||
use MailPoet\Models\SendingQueue as SendingQueueModel;
|
use MailPoet\Models\SendingQueue as SendingQueueModel;
|
||||||
use MailPoet\Newsletter\NewslettersRepository;
|
use MailPoet\Newsletter\NewslettersRepository;
|
||||||
@ -44,13 +45,17 @@ class SendingQueue extends APIEndpoint {
|
|||||||
/** @var ScheduledTasksRepository */
|
/** @var ScheduledTasksRepository */
|
||||||
private $scheduledTasksRepository;
|
private $scheduledTasksRepository;
|
||||||
|
|
||||||
|
/** @var MailerFactory */
|
||||||
|
private $mailerFactory;
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
SubscribersFeature $subscribersFeature,
|
SubscribersFeature $subscribersFeature,
|
||||||
NewslettersRepository $newsletterRepository,
|
NewslettersRepository $newsletterRepository,
|
||||||
SendingQueuesRepository $sendingQueuesRepository,
|
SendingQueuesRepository $sendingQueuesRepository,
|
||||||
Bridge $bridge,
|
Bridge $bridge,
|
||||||
SubscribersFinder $subscribersFinder,
|
SubscribersFinder $subscribersFinder,
|
||||||
ScheduledTasksRepository $scheduledTasksRepository
|
ScheduledTasksRepository $scheduledTasksRepository,
|
||||||
|
MailerFactory $mailerFactory
|
||||||
) {
|
) {
|
||||||
$this->subscribersFeature = $subscribersFeature;
|
$this->subscribersFeature = $subscribersFeature;
|
||||||
$this->subscribersFinder = $subscribersFinder;
|
$this->subscribersFinder = $subscribersFinder;
|
||||||
@ -58,6 +63,7 @@ class SendingQueue extends APIEndpoint {
|
|||||||
$this->bridge = $bridge;
|
$this->bridge = $bridge;
|
||||||
$this->sendingQueuesRepository = $sendingQueuesRepository;
|
$this->sendingQueuesRepository = $sendingQueuesRepository;
|
||||||
$this->scheduledTasksRepository = $scheduledTasksRepository;
|
$this->scheduledTasksRepository = $scheduledTasksRepository;
|
||||||
|
$this->mailerFactory = $mailerFactory;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function add($data = []) {
|
public function add($data = []) {
|
||||||
@ -93,10 +99,9 @@ class SendingQueue extends APIEndpoint {
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// check that the sending method has been configured properly
|
// check that the sending method has been configured properly by verifying that default mailer can be build
|
||||||
try {
|
try {
|
||||||
$mailer = new \MailPoet\Mailer\Mailer();
|
$this->mailerFactory->getDefaultMailer();
|
||||||
$mailer->init();
|
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
return $this->errorResponse([
|
return $this->errorResponse([
|
||||||
$e->getCode() => $e->getMessage(),
|
$e->getCode() => $e->getMessage(),
|
||||||
|
@ -11,6 +11,7 @@ use MailPoet\Entities\NewsletterOptionEntity;
|
|||||||
use MailPoet\Entities\NewsletterOptionFieldEntity;
|
use MailPoet\Entities\NewsletterOptionFieldEntity;
|
||||||
use MailPoet\Entities\ScheduledTaskEntity;
|
use MailPoet\Entities\ScheduledTaskEntity;
|
||||||
use MailPoet\Entities\SendingQueueEntity;
|
use MailPoet\Entities\SendingQueueEntity;
|
||||||
|
use MailPoet\Mailer\MailerFactory;
|
||||||
use MailPoet\Newsletter\NewslettersRepository;
|
use MailPoet\Newsletter\NewslettersRepository;
|
||||||
use MailPoet\Newsletter\Options\NewsletterOptionFieldsRepository;
|
use MailPoet\Newsletter\Options\NewsletterOptionFieldsRepository;
|
||||||
use MailPoet\Newsletter\Options\NewsletterOptionsRepository;
|
use MailPoet\Newsletter\Options\NewsletterOptionsRepository;
|
||||||
@ -80,7 +81,8 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
$this->diContainer->get(SendingQueuesRepository::class),
|
$this->diContainer->get(SendingQueuesRepository::class),
|
||||||
$this->diContainer->get(Bridge::class),
|
$this->diContainer->get(Bridge::class),
|
||||||
$this->diContainer->get(SubscribersFinder::class),
|
$this->diContainer->get(SubscribersFinder::class),
|
||||||
$this->diContainer->get(ScheduledTasksRepository::class)
|
$this->diContainer->get(ScheduledTasksRepository::class),
|
||||||
|
$this->diContainer->get(MailerFactory::class)
|
||||||
);
|
);
|
||||||
$res = $sendingQueue->add(['newsletter_id' => $this->newsletter->getId()]);
|
$res = $sendingQueue->add(['newsletter_id' => $this->newsletter->getId()]);
|
||||||
expect($res->status)->equals(APIResponse::STATUS_FORBIDDEN);
|
expect($res->status)->equals(APIResponse::STATUS_FORBIDDEN);
|
||||||
@ -149,7 +151,8 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
'isMailpoetSendingServiceEnabled' => true,
|
'isMailpoetSendingServiceEnabled' => true,
|
||||||
]),
|
]),
|
||||||
$this->diContainer->get(SubscribersFinder::class),
|
$this->diContainer->get(SubscribersFinder::class),
|
||||||
$this->diContainer->get(ScheduledTasksRepository::class)
|
$this->diContainer->get(ScheduledTasksRepository::class),
|
||||||
|
$this->diContainer->get(MailerFactory::class)
|
||||||
);
|
);
|
||||||
$response = $sendingQueue->add(['newsletter_id' => $newsletter->getId()]);
|
$response = $sendingQueue->add(['newsletter_id' => $newsletter->getId()]);
|
||||||
$response = $response->getData();
|
$response = $response->getData();
|
||||||
|
Reference in New Issue
Block a user