Updates method names

This commit is contained in:
Vlad
2018-05-19 17:00:31 -04:00
parent 9aa796681a
commit 4611a7ea74
2 changed files with 56 additions and 57 deletions

View File

@ -30,7 +30,7 @@ class Scheduler {
->where('post_id', $post_id) ->where('post_id', $post_id)
->findOne(); ->findOne();
if($post === false) { if($post === false) {
self::createPostNotificationQueue($newsletter); self::createPostNotificationSendingTask($newsletter);
} }
} }
} }
@ -42,7 +42,7 @@ class Scheduler {
if($newsletter->event === 'segment' && if($newsletter->event === 'segment' &&
in_array($newsletter->segment, $segments) in_array($newsletter->segment, $segments)
) { ) {
self::createWelcomeNotificationQueue($newsletter, $subscriber_id); self::createWelcomeNotificationSendingTask($newsletter, $subscriber_id);
} }
} }
} }
@ -53,7 +53,7 @@ class Scheduler {
foreach($newsletters as $newsletter) { foreach($newsletters as $newsletter) {
if($newsletter->event !== $event) continue; if($newsletter->event !== $event) continue;
if(is_callable($scheduling_condition) && !$scheduling_condition($newsletter)) continue; if(is_callable($scheduling_condition) && !$scheduling_condition($newsletter)) continue;
self::createAutomaticEmailQueue($newsletter, $subscriber_id, $meta); self::createAutomaticEmailSendingTask($newsletter, $subscriber_id, $meta);
} }
} }
@ -79,49 +79,49 @@ class Scheduler {
if($newsletter->role === self::WORDPRESS_ALL_ROLES || if($newsletter->role === self::WORDPRESS_ALL_ROLES ||
in_array($newsletter->role, $wp_user['roles']) in_array($newsletter->role, $wp_user['roles'])
) { ) {
self::createWelcomeNotificationQueue($newsletter, $subscriber_id); self::createWelcomeNotificationSendingTask($newsletter, $subscriber_id);
} }
} }
} }
} }
static function createWelcomeNotificationQueue($newsletter, $subscriber_id) { static function createWelcomeNotificationSendingTask($newsletter, $subscriber_id) {
$previously_scheduled_notification = SendingQueue::joinWithSubscribers() $previously_scheduled_notification = SendingQueue::joinWithSubscribers()
->where('queues.newsletter_id', $newsletter->id) ->where('queues.newsletter_id', $newsletter->id)
->where('subscribers.subscriber_id', $subscriber_id) ->where('subscribers.subscriber_id', $subscriber_id)
->findOne(); ->findOne();
if(!empty($previously_scheduled_notification)) return; if(!empty($previously_scheduled_notification)) return;
$queue = SendingTask::create(); $sending_task = SendingTask::create();
$queue->newsletter_id = $newsletter->id; $sending_task->newsletter_id = $newsletter->id;
$queue->setSubscribers(array($subscriber_id)); $sending_task->setSubscribers(array($subscriber_id));
$queue->status = SendingQueue::STATUS_SCHEDULED; $sending_task->status = SendingQueue::STATUS_SCHEDULED;
$queue->priority = SendingQueue::PRIORITY_HIGH; $sending_task->priority = SendingQueue::PRIORITY_HIGH;
$queue->scheduled_at = self::getScheduledTimeForWelcomeNotificationOrAutomaticEmail( $sending_task->scheduled_at = self::getScheduledTimeWithDelay(
$newsletter->afterTimeType, $newsletter->afterTimeType,
$newsletter->afterTimeNumber $newsletter->afterTimeNumber
); );
return $queue->save(); return $sending_task->save();
} }
static function createAutomaticEmailQueue($newsletter, $subscriber_id, $meta) { static function createAutomaticEmailSendingTask($newsletter, $subscriber_id, $meta) {
$queue = SendingTask::create(); $sending_task = SendingTask::create();
$queue->newsletter_id = $newsletter->id; $sending_task->newsletter_id = $newsletter->id;
if($newsletter->sendTo === 'user' && $subscriber_id) { if($newsletter->sendTo === 'user' && $subscriber_id) {
$queue->setSubscribers(array($subscriber_id)); $sending_task->setSubscribers(array($subscriber_id));
} }
if($meta) { if($meta) {
$queue->__set('meta', $meta); $sending_task->__set('meta', $meta);
} }
$queue->status = SendingQueue::STATUS_SCHEDULED; $sending_task->status = SendingQueue::STATUS_SCHEDULED;
$queue->priority = SendingQueue::PRIORITY_MEDIUM; $sending_task->priority = SendingQueue::PRIORITY_MEDIUM;
$queue->scheduled_at = self::getScheduledTimeForWelcomeNotificationOrAutomaticEmail( $sending_task->scheduled_at = self::getScheduledTimeWithDelay(
$newsletter->afterTimeType, $newsletter->afterTimeType,
$newsletter->afterTimeNumber $newsletter->afterTimeNumber
); );
return $queue->save(); return $sending_task->save();
} }
static function createPostNotificationQueue($newsletter) { static function createPostNotificationSendingTask($newsletter) {
$existing_notification_history = Newsletter::where('parent_id', $newsletter->id) $existing_notification_history = Newsletter::where('parent_id', $newsletter->id)
->where('type', Newsletter::TYPE_NOTIFICATION_HISTORY) ->where('type', Newsletter::TYPE_NOTIFICATION_HISTORY)
->where('status', Newsletter::STATUS_SENDING) ->where('status', Newsletter::STATUS_SENDING)
@ -129,7 +129,6 @@ class Scheduler {
if($existing_notification_history) { if($existing_notification_history) {
return; return;
} }
$next_run_date = self::getNextRunDate($newsletter->schedule); $next_run_date = self::getNextRunDate($newsletter->schedule);
if(!$next_run_date) return; if(!$next_run_date) return;
// do not schedule duplicate queues for the same time // do not schedule duplicate queues for the same time
@ -137,12 +136,12 @@ class Scheduler {
->where('tasks.scheduled_at', $next_run_date) ->where('tasks.scheduled_at', $next_run_date)
->findOne(); ->findOne();
if($existing_queue) return; if($existing_queue) return;
$queue = SendingTask::create(); $sending_task = SendingTask::create();
$queue->newsletter_id = $newsletter->id; $sending_task->newsletter_id = $newsletter->id;
$queue->status = SendingQueue::STATUS_SCHEDULED; $sending_task->status = SendingQueue::STATUS_SCHEDULED;
$queue->scheduled_at = $next_run_date; $sending_task->scheduled_at = $next_run_date;
$queue->save(); $sending_task->save();
return $queue; return $sending_task;
} }
static function processPostNotificationSchedule($newsletter) { static function processPostNotificationSchedule($newsletter) {
@ -209,19 +208,7 @@ class Scheduler {
return $previous_run_date; return $previous_run_date;
} }
static function getNewsletters($type, $group = false) { static function getScheduledTimeWithDelay($after_time_type, $after_time_number) {
return Newsletter::getPublished()
->filter('filterType', $type, $group)
->filter('filterStatus', Newsletter::STATUS_ACTIVE)
->filter('filterWithOptions')
->findMany();
}
static function formatDatetimeString($datetime_string) {
return Carbon::parse($datetime_string)->format('Y-m-d H:i:s');
}
static function getScheduledTimeForWelcomeNotificationOrAutomaticEmail($after_time_type, $after_time_number) {
$current_time = Carbon::createFromTimestamp(WPFunctions::currentTime('timestamp')); $current_time = Carbon::createFromTimestamp(WPFunctions::currentTime('timestamp'));
switch($after_time_type) { switch($after_time_type) {
case 'hours': case 'hours':
@ -234,4 +221,16 @@ class Scheduler {
return $current_time; return $current_time;
} }
} }
static function getNewsletters($type, $group = false) {
return Newsletter::getPublished()
->filter('filterType', $type, $group)
->filter('filterStatus', Newsletter::STATUS_ACTIVE)
->filter('filterWithOptions')
->findMany();
}
static function formatDatetimeString($datetime_string) {
return Carbon::parse($datetime_string)->format('Y-m-d H:i:s');
}
} }

View File

@ -75,12 +75,12 @@ class SchedulerTest extends \MailPoetTest {
->equals('2016-04-20 16:00:00'); ->equals('2016-04-20 16:00:00');
} }
function testItCreatesPostNotificationQueueRecord() { function testItCreatesPostNotificationSendingTask() {
$newsletter = $this->_createNewsletter(); $newsletter = $this->_createNewsletter();
$newsletter->schedule = '* 5 * * *'; $newsletter->schedule = '* 5 * * *';
// new queue record should be created // new queue record should be created
$queue = Scheduler::createPostNotificationQueue($newsletter); $queue = Scheduler::createPostNotificationSendingTask($newsletter);
expect(SendingQueue::findMany())->count(1); expect(SendingQueue::findMany())->count(1);
expect($queue->newsletter_id)->equals($newsletter->id); expect($queue->newsletter_id)->equals($newsletter->id);
expect($queue->status)->equals(SendingQueue::STATUS_SCHEDULED); expect($queue->status)->equals(SendingQueue::STATUS_SCHEDULED);
@ -88,11 +88,11 @@ class SchedulerTest extends \MailPoetTest {
expect($queue->priority)->equals(SendingQueue::PRIORITY_MEDIUM); expect($queue->priority)->equals(SendingQueue::PRIORITY_MEDIUM);
// duplicate queue record should not be created // duplicate queue record should not be created
Scheduler::createPostNotificationQueue($newsletter); Scheduler::createPostNotificationSendingTask($newsletter);
expect(SendingQueue::findMany())->count(1); expect(SendingQueue::findMany())->count(1);
} }
function testItDoesNotCreateDuplicateWelcomeNotificationQueueRecords() { function testItDoesNotCreateDuplicateWelcomeNotificationSendingTasks() {
$newsletter = (object)array( $newsletter = (object)array(
'id' => 1, 'id' => 1,
'afterTimeNumber' => 2, 'afterTimeNumber' => 2,
@ -105,15 +105,15 @@ class SchedulerTest extends \MailPoetTest {
$existing_queue->save(); $existing_queue->save();
// queue is not scheduled // queue is not scheduled
Scheduler::createWelcomeNotificationQueue($newsletter, $existing_subscriber); Scheduler::createWelcomeNotificationSendingTask($newsletter, $existing_subscriber);
expect(SendingQueue::findMany())->count(1); expect(SendingQueue::findMany())->count(1);
// queue is not scheduled // queue is not scheduled
Scheduler::createWelcomeNotificationQueue($newsletter, 1); Scheduler::createWelcomeNotificationSendingTask($newsletter, 1);
expect(SendingQueue::findMany())->count(2); expect(SendingQueue::findMany())->count(2);
} }
function testItCreatesWelcomeNotificationQueueRecord() { function testItCreatesWelcomeNotificationSendingTask() {
$newsletter = (object)array( $newsletter = (object)array(
'id' => 1, 'id' => 1,
'afterTimeNumber' => 2 'afterTimeNumber' => 2
@ -121,7 +121,7 @@ class SchedulerTest extends \MailPoetTest {
// queue is scheduled delivery in 2 hours // queue is scheduled delivery in 2 hours
$newsletter->afterTimeType = 'hours'; $newsletter->afterTimeType = 'hours';
Scheduler::createWelcomeNotificationQueue($newsletter, $subscriber_id = 1); Scheduler::createWelcomeNotificationSendingTask($newsletter, $subscriber_id = 1);
$queue = SendingQueue::findTaskByNewsletterId(1) $queue = SendingQueue::findTaskByNewsletterId(1)
->findOne(); ->findOne();
$current_time = Carbon::createFromTimestamp(current_time('timestamp')); $current_time = Carbon::createFromTimestamp(current_time('timestamp'));
@ -133,7 +133,7 @@ class SchedulerTest extends \MailPoetTest {
// queue is scheduled for delivery in 2 days // queue is scheduled for delivery in 2 days
$newsletter->afterTimeType = 'days'; $newsletter->afterTimeType = 'days';
Scheduler::createWelcomeNotificationQueue($newsletter, $subscriber_id = 1); Scheduler::createWelcomeNotificationSendingTask($newsletter, $subscriber_id = 1);
$current_time = Carbon::createFromTimestamp(current_time('timestamp')); $current_time = Carbon::createFromTimestamp(current_time('timestamp'));
$queue = SendingQueue::findTaskByNewsletterId(1) $queue = SendingQueue::findTaskByNewsletterId(1)
->findOne(); ->findOne();
@ -145,7 +145,7 @@ class SchedulerTest extends \MailPoetTest {
// queue is scheduled for delivery in 2 weeks // queue is scheduled for delivery in 2 weeks
$newsletter->afterTimeType = 'weeks'; $newsletter->afterTimeType = 'weeks';
Scheduler::createWelcomeNotificationQueue($newsletter, $subscriber_id = 1); Scheduler::createWelcomeNotificationSendingTask($newsletter, $subscriber_id = 1);
$current_time = Carbon::createFromTimestamp(current_time('timestamp')); $current_time = Carbon::createFromTimestamp(current_time('timestamp'));
$queue = SendingQueue::findTaskByNewsletterId(1) $queue = SendingQueue::findTaskByNewsletterId(1)
->findOne(); ->findOne();
@ -157,7 +157,7 @@ class SchedulerTest extends \MailPoetTest {
// queue is scheduled for immediate delivery // queue is scheduled for immediate delivery
$newsletter->afterTimeType = null; $newsletter->afterTimeType = null;
Scheduler::createWelcomeNotificationQueue($newsletter, $subscriber_id = 1); Scheduler::createWelcomeNotificationSendingTask($newsletter, $subscriber_id = 1);
$current_time = Carbon::createFromTimestamp(current_time('timestamp')); $current_time = Carbon::createFromTimestamp(current_time('timestamp'));
$queue = SendingQueue::findTaskByNewsletterId(1) $queue = SendingQueue::findTaskByNewsletterId(1)
->findOne(); ->findOne();
@ -454,7 +454,7 @@ class SchedulerTest extends \MailPoetTest {
->equals('2017-01-01 13:01:00'); ->equals('2017-01-01 13:01:00');
} }
function testItCreatesAutomaticEmailQueueRecordWithSubscriberAndMeta() { function testItCreatesAutomaticEmailSendingTaskWithSubscriberAndMeta() {
$newsletter = $this->_createNewsletter(Newsletter::TYPE_AUTOMATIC); $newsletter = $this->_createNewsletter(Newsletter::TYPE_AUTOMATIC);
$this->_createNewsletterOptions( $this->_createNewsletterOptions(
$newsletter->id, $newsletter->id,
@ -471,7 +471,7 @@ class SchedulerTest extends \MailPoetTest {
$subscriber->save(); $subscriber->save();
$meta = array('some' => 'value'); $meta = array('some' => 'value');
Scheduler::createAutomaticEmailQueue($newsletter, $subscriber->id, $meta); Scheduler::createAutomaticEmailSendingTask($newsletter, $subscriber->id, $meta);
// new queue record should be created with meta data // new queue record should be created with meta data
$queue = SendingQueue::where('newsletter_id', $newsletter->id)->findOne(); $queue = SendingQueue::where('newsletter_id', $newsletter->id)->findOne();
expect($queue->getMeta())->equals($meta); expect($queue->getMeta())->equals($meta);
@ -489,7 +489,7 @@ class SchedulerTest extends \MailPoetTest {
expect($subscribers[0]->id)->equals($subscriber->id); expect($subscribers[0]->id)->equals($subscriber->id);
} }
function testItCreatesAutomaticEmailQueueRecord() { function testItCreatesAutomaticEmailSendingTask() {
$newsletter = $this->_createNewsletter(Newsletter::TYPE_AUTOMATIC); $newsletter = $this->_createNewsletter(Newsletter::TYPE_AUTOMATIC);
$this->_createNewsletterOptions( $this->_createNewsletterOptions(
$newsletter->id, $newsletter->id,
@ -502,7 +502,7 @@ class SchedulerTest extends \MailPoetTest {
); );
$newsletter = Newsletter::filter('filterWithOptions')->findOne($newsletter->id); $newsletter = Newsletter::filter('filterWithOptions')->findOne($newsletter->id);
Scheduler::createAutomaticEmailQueue($newsletter, $subscriber = null, $meta = null); Scheduler::createAutomaticEmailSendingTask($newsletter, $subscriber = null, $meta = null);
// new queue record should be created without meta // new queue record should be created without meta
$queue = SendingQueue::where('newsletter_id', $newsletter->id)->findOne(); $queue = SendingQueue::where('newsletter_id', $newsletter->id)->findOne();
expect($queue->getMeta())->isEmpty(); expect($queue->getMeta())->isEmpty();