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)
->findOne();
if($post === false) {
self::createPostNotificationQueue($newsletter);
self::createPostNotificationSendingTask($newsletter);
}
}
}
@ -42,7 +42,7 @@ class Scheduler {
if($newsletter->event === 'segment' &&
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) {
if($newsletter->event !== $event) 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 ||
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()
->where('queues.newsletter_id', $newsletter->id)
->where('subscribers.subscriber_id', $subscriber_id)
->findOne();
if(!empty($previously_scheduled_notification)) return;
$queue = SendingTask::create();
$queue->newsletter_id = $newsletter->id;
$queue->setSubscribers(array($subscriber_id));
$queue->status = SendingQueue::STATUS_SCHEDULED;
$queue->priority = SendingQueue::PRIORITY_HIGH;
$queue->scheduled_at = self::getScheduledTimeForWelcomeNotificationOrAutomaticEmail(
$sending_task = SendingTask::create();
$sending_task->newsletter_id = $newsletter->id;
$sending_task->setSubscribers(array($subscriber_id));
$sending_task->status = SendingQueue::STATUS_SCHEDULED;
$sending_task->priority = SendingQueue::PRIORITY_HIGH;
$sending_task->scheduled_at = self::getScheduledTimeWithDelay(
$newsletter->afterTimeType,
$newsletter->afterTimeNumber
);
return $queue->save();
return $sending_task->save();
}
static function createAutomaticEmailQueue($newsletter, $subscriber_id, $meta) {
$queue = SendingTask::create();
$queue->newsletter_id = $newsletter->id;
static function createAutomaticEmailSendingTask($newsletter, $subscriber_id, $meta) {
$sending_task = SendingTask::create();
$sending_task->newsletter_id = $newsletter->id;
if($newsletter->sendTo === 'user' && $subscriber_id) {
$queue->setSubscribers(array($subscriber_id));
$sending_task->setSubscribers(array($subscriber_id));
}
if($meta) {
$queue->__set('meta', $meta);
$sending_task->__set('meta', $meta);
}
$queue->status = SendingQueue::STATUS_SCHEDULED;
$queue->priority = SendingQueue::PRIORITY_MEDIUM;
$queue->scheduled_at = self::getScheduledTimeForWelcomeNotificationOrAutomaticEmail(
$sending_task->status = SendingQueue::STATUS_SCHEDULED;
$sending_task->priority = SendingQueue::PRIORITY_MEDIUM;
$sending_task->scheduled_at = self::getScheduledTimeWithDelay(
$newsletter->afterTimeType,
$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)
->where('type', Newsletter::TYPE_NOTIFICATION_HISTORY)
->where('status', Newsletter::STATUS_SENDING)
@ -129,7 +129,6 @@ class Scheduler {
if($existing_notification_history) {
return;
}
$next_run_date = self::getNextRunDate($newsletter->schedule);
if(!$next_run_date) return;
// do not schedule duplicate queues for the same time
@ -137,12 +136,12 @@ class Scheduler {
->where('tasks.scheduled_at', $next_run_date)
->findOne();
if($existing_queue) return;
$queue = SendingTask::create();
$queue->newsletter_id = $newsletter->id;
$queue->status = SendingQueue::STATUS_SCHEDULED;
$queue->scheduled_at = $next_run_date;
$queue->save();
return $queue;
$sending_task = SendingTask::create();
$sending_task->newsletter_id = $newsletter->id;
$sending_task->status = SendingQueue::STATUS_SCHEDULED;
$sending_task->scheduled_at = $next_run_date;
$sending_task->save();
return $sending_task;
}
static function processPostNotificationSchedule($newsletter) {
@ -209,19 +208,7 @@ class Scheduler {
return $previous_run_date;
}
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');
}
static function getScheduledTimeForWelcomeNotificationOrAutomaticEmail($after_time_type, $after_time_number) {
static function getScheduledTimeWithDelay($after_time_type, $after_time_number) {
$current_time = Carbon::createFromTimestamp(WPFunctions::currentTime('timestamp'));
switch($after_time_type) {
case 'hours':
@ -234,4 +221,16 @@ class Scheduler {
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');
}
function testItCreatesPostNotificationQueueRecord() {
function testItCreatesPostNotificationSendingTask() {
$newsletter = $this->_createNewsletter();
$newsletter->schedule = '* 5 * * *';
// new queue record should be created
$queue = Scheduler::createPostNotificationQueue($newsletter);
$queue = Scheduler::createPostNotificationSendingTask($newsletter);
expect(SendingQueue::findMany())->count(1);
expect($queue->newsletter_id)->equals($newsletter->id);
expect($queue->status)->equals(SendingQueue::STATUS_SCHEDULED);
@ -88,11 +88,11 @@ class SchedulerTest extends \MailPoetTest {
expect($queue->priority)->equals(SendingQueue::PRIORITY_MEDIUM);
// duplicate queue record should not be created
Scheduler::createPostNotificationQueue($newsletter);
Scheduler::createPostNotificationSendingTask($newsletter);
expect(SendingQueue::findMany())->count(1);
}
function testItDoesNotCreateDuplicateWelcomeNotificationQueueRecords() {
function testItDoesNotCreateDuplicateWelcomeNotificationSendingTasks() {
$newsletter = (object)array(
'id' => 1,
'afterTimeNumber' => 2,
@ -105,15 +105,15 @@ class SchedulerTest extends \MailPoetTest {
$existing_queue->save();
// queue is not scheduled
Scheduler::createWelcomeNotificationQueue($newsletter, $existing_subscriber);
Scheduler::createWelcomeNotificationSendingTask($newsletter, $existing_subscriber);
expect(SendingQueue::findMany())->count(1);
// queue is not scheduled
Scheduler::createWelcomeNotificationQueue($newsletter, 1);
Scheduler::createWelcomeNotificationSendingTask($newsletter, 1);
expect(SendingQueue::findMany())->count(2);
}
function testItCreatesWelcomeNotificationQueueRecord() {
function testItCreatesWelcomeNotificationSendingTask() {
$newsletter = (object)array(
'id' => 1,
'afterTimeNumber' => 2
@ -121,7 +121,7 @@ class SchedulerTest extends \MailPoetTest {
// queue is scheduled delivery in 2 hours
$newsletter->afterTimeType = 'hours';
Scheduler::createWelcomeNotificationQueue($newsletter, $subscriber_id = 1);
Scheduler::createWelcomeNotificationSendingTask($newsletter, $subscriber_id = 1);
$queue = SendingQueue::findTaskByNewsletterId(1)
->findOne();
$current_time = Carbon::createFromTimestamp(current_time('timestamp'));
@ -133,7 +133,7 @@ class SchedulerTest extends \MailPoetTest {
// queue is scheduled for delivery in 2 days
$newsletter->afterTimeType = 'days';
Scheduler::createWelcomeNotificationQueue($newsletter, $subscriber_id = 1);
Scheduler::createWelcomeNotificationSendingTask($newsletter, $subscriber_id = 1);
$current_time = Carbon::createFromTimestamp(current_time('timestamp'));
$queue = SendingQueue::findTaskByNewsletterId(1)
->findOne();
@ -145,7 +145,7 @@ class SchedulerTest extends \MailPoetTest {
// queue is scheduled for delivery in 2 weeks
$newsletter->afterTimeType = 'weeks';
Scheduler::createWelcomeNotificationQueue($newsletter, $subscriber_id = 1);
Scheduler::createWelcomeNotificationSendingTask($newsletter, $subscriber_id = 1);
$current_time = Carbon::createFromTimestamp(current_time('timestamp'));
$queue = SendingQueue::findTaskByNewsletterId(1)
->findOne();
@ -157,7 +157,7 @@ class SchedulerTest extends \MailPoetTest {
// queue is scheduled for immediate delivery
$newsletter->afterTimeType = null;
Scheduler::createWelcomeNotificationQueue($newsletter, $subscriber_id = 1);
Scheduler::createWelcomeNotificationSendingTask($newsletter, $subscriber_id = 1);
$current_time = Carbon::createFromTimestamp(current_time('timestamp'));
$queue = SendingQueue::findTaskByNewsletterId(1)
->findOne();
@ -454,7 +454,7 @@ class SchedulerTest extends \MailPoetTest {
->equals('2017-01-01 13:01:00');
}
function testItCreatesAutomaticEmailQueueRecordWithSubscriberAndMeta() {
function testItCreatesAutomaticEmailSendingTaskWithSubscriberAndMeta() {
$newsletter = $this->_createNewsletter(Newsletter::TYPE_AUTOMATIC);
$this->_createNewsletterOptions(
$newsletter->id,
@ -471,7 +471,7 @@ class SchedulerTest extends \MailPoetTest {
$subscriber->save();
$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
$queue = SendingQueue::where('newsletter_id', $newsletter->id)->findOne();
expect($queue->getMeta())->equals($meta);
@ -489,7 +489,7 @@ class SchedulerTest extends \MailPoetTest {
expect($subscribers[0]->id)->equals($subscriber->id);
}
function testItCreatesAutomaticEmailQueueRecord() {
function testItCreatesAutomaticEmailSendingTask() {
$newsletter = $this->_createNewsletter(Newsletter::TYPE_AUTOMATIC);
$this->_createNewsletterOptions(
$newsletter->id,
@ -502,7 +502,7 @@ class SchedulerTest extends \MailPoetTest {
);
$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
$queue = SendingQueue::where('newsletter_id', $newsletter->id)->findOne();
expect($queue->getMeta())->isEmpty();