Always inject welcome emails scheduler

[MAILPOET-3141]
This commit is contained in:
Rostislav Wolny
2020-11-02 14:37:35 +01:00
committed by Veljko V
parent 3dcb939432
commit 65ca040a20
3 changed files with 16 additions and 8 deletions

View File

@ -87,6 +87,9 @@ class Subscribers extends APIEndpoint {
/** @var SegmentsRepository */ /** @var SegmentsRepository */
private $segmentsRepository; private $segmentsRepository;
/** @var WelcomeScheduler */
private $welcomeScheduler;
public function __construct( public function __construct(
SubscriberActions $subscriberActions, SubscriberActions $subscriberActions,
RequiredCustomFieldValidator $requiredCustomFieldValidator, RequiredCustomFieldValidator $requiredCustomFieldValidator,
@ -102,7 +105,8 @@ class Subscribers extends APIEndpoint {
SubscribersResponseBuilder $subscribersResponseBuilder, SubscribersResponseBuilder $subscribersResponseBuilder,
SubscriberListingRepository $subscriberListingRepository, SubscriberListingRepository $subscriberListingRepository,
SegmentsRepository $segmentsRepository, SegmentsRepository $segmentsRepository,
FieldNameObfuscator $fieldNameObfuscator FieldNameObfuscator $fieldNameObfuscator,
WelcomeScheduler $welcomeScheduler
) { ) {
$this->subscriberActions = $subscriberActions; $this->subscriberActions = $subscriberActions;
$this->requiredCustomFieldValidator = $requiredCustomFieldValidator; $this->requiredCustomFieldValidator = $requiredCustomFieldValidator;
@ -119,6 +123,7 @@ class Subscribers extends APIEndpoint {
$this->subscribersResponseBuilder = $subscribersResponseBuilder; $this->subscribersResponseBuilder = $subscribersResponseBuilder;
$this->subscriberListingRepository = $subscriberListingRepository; $this->subscriberListingRepository = $subscriberListingRepository;
$this->segmentsRepository = $segmentsRepository; $this->segmentsRepository = $segmentsRepository;
$this->welcomeScheduler = $welcomeScheduler;
} }
public function get($data = []) { public function get($data = []) {
@ -380,8 +385,7 @@ class Subscribers extends APIEndpoint {
} }
if (!empty($newSegments)) { if (!empty($newSegments)) {
$scheduler = new WelcomeScheduler(); $this->welcomeScheduler->scheduleSubscriberWelcomeNotification($subscriber->id, $newSegments);
$scheduler->scheduleSubscriberWelcomeNotification($subscriber->id, $newSegments);
} }
return $this->successResponse( return $this->successResponse(

View File

@ -31,8 +31,12 @@ class WP {
/** @var WPFunctions */ /** @var WPFunctions */
private $wp; private $wp;
public function __construct(WPFunctions $wp) { /** @var WelcomeScheduler */
private $welcomeScheduler;
public function __construct(WPFunctions $wp, WelcomeScheduler $welcomeScheduler) {
$this->wp = $wp; $this->wp = $wp;
$this->welcomeScheduler = $welcomeScheduler;
} }
public function synchronizeUser($wpUserId, $oldWpUserData = false) { public function synchronizeUser($wpUserId, $oldWpUserData = false) {
@ -143,8 +147,7 @@ class WP {
$scheduleWelcomeNewsletter = true; $scheduleWelcomeNewsletter = true;
} }
if ($scheduleWelcomeNewsletter === true) { if ($scheduleWelcomeNewsletter === true) {
$scheduler = new WelcomeScheduler(); $this->welcomeScheduler->scheduleWPUserWelcomeNotification(
$scheduler->scheduleWPUserWelcomeNotification(
$subscriber->id, $subscriber->id,
(array)$wpUser, (array)$wpUser,
(array)$oldWpUserData (array)$oldWpUserData

View File

@ -29,6 +29,7 @@ use MailPoet\Models\SendingQueue;
use MailPoet\Models\Subscriber; use MailPoet\Models\Subscriber;
use MailPoet\Models\SubscriberIP; use MailPoet\Models\SubscriberIP;
use MailPoet\Models\SubscriberSegment; use MailPoet\Models\SubscriberSegment;
use MailPoet\Newsletter\Scheduler\WelcomeScheduler;
use MailPoet\Segments\SegmentsRepository; use MailPoet\Segments\SegmentsRepository;
use MailPoet\Settings\SettingsController; use MailPoet\Settings\SettingsController;
use MailPoet\Settings\SettingsRepository; use MailPoet\Settings\SettingsRepository;
@ -101,7 +102,8 @@ class SubscribersTest extends \MailPoetTest {
$container->get(SubscribersResponseBuilder::class), $container->get(SubscribersResponseBuilder::class),
$container->get(SubscriberListingRepository::class), $container->get(SubscriberListingRepository::class),
$container->get(SegmentsRepository::class), $container->get(SegmentsRepository::class),
$obfuscator $obfuscator,
$container->get(WelcomeScheduler::class)
); );
$this->obfuscatedEmail = $obfuscator->obfuscate('email'); $this->obfuscatedEmail = $obfuscator->obfuscate('email');
$this->obfuscatedSegments = $obfuscator->obfuscate('segments'); $this->obfuscatedSegments = $obfuscator->obfuscate('segments');
@ -110,7 +112,6 @@ class SubscribersTest extends \MailPoetTest {
$this->entityManager->persist($this->segment1); $this->entityManager->persist($this->segment1);
$this->entityManager->persist($this->segment2); $this->entityManager->persist($this->segment2);
$this->subscriber1 = new SubscriberEntity(); $this->subscriber1 = new SubscriberEntity();
$this->subscriber1->setEmail('john@mailpoet.com'); $this->subscriber1->setEmail('john@mailpoet.com');
$this->subscriber1->setFirstName('John'); $this->subscriber1->setFirstName('John');