Rewrite Scheduler::processScheduledAutomaticEmail() using Doctrine
[MAILPOET-4375]
This commit is contained in:
@@ -156,7 +156,7 @@ class Scheduler {
|
|||||||
} elseif ($newsletter->getType() === NewsletterEntity::TYPE_STANDARD) {
|
} elseif ($newsletter->getType() === NewsletterEntity::TYPE_STANDARD) {
|
||||||
$this->processScheduledStandardNewsletter($newsletter, $task);
|
$this->processScheduledStandardNewsletter($newsletter, $task);
|
||||||
} elseif ($newsletter->getType() === NewsletterEntity::TYPE_AUTOMATIC) {
|
} elseif ($newsletter->getType() === NewsletterEntity::TYPE_AUTOMATIC) {
|
||||||
$this->processScheduledAutomaticEmail($newsletter, $legacyQueue);
|
$this->processScheduledAutomaticEmail($newsletter, $task);
|
||||||
} elseif ($newsletter->getType() === NewsletterEntity::TYPE_RE_ENGAGEMENT) {
|
} elseif ($newsletter->getType() === NewsletterEntity::TYPE_RE_ENGAGEMENT) {
|
||||||
$this->processReEngagementEmail($legacyQueue);
|
$this->processReEngagementEmail($legacyQueue);
|
||||||
} elseif ($newsletter->getType() === NewsletterEntity::TYPE_AUTOMATION) {
|
} elseif ($newsletter->getType() === NewsletterEntity::TYPE_AUTOMATION) {
|
||||||
@@ -258,40 +258,31 @@ class Scheduler {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function processScheduledAutomaticEmail(NewsletterEntity $newsletter, $queue) {
|
public function processScheduledAutomaticEmail(NewsletterEntity $newsletter, ScheduledTaskEntity $task) {
|
||||||
if ($newsletter->getOptionValue('sendTo') === 'segment') {
|
if ($newsletter->getOptionValue('sendTo') === 'segment') {
|
||||||
$segment = $this->segmentsRepository->findOneById($newsletter->getOptionValue('segment'));
|
$segment = $this->segmentsRepository->findOneById($newsletter->getOptionValue('segment'));
|
||||||
if ($segment instanceof SegmentEntity) {
|
if ($segment instanceof SegmentEntity) {
|
||||||
$taskModel = $queue->task();
|
$result = $this->subscribersFinder->addSubscribersToTaskFromSegments($task, [(int)$segment->getId()]);
|
||||||
$taskEntity = $this->scheduledTasksRepository->findOneById($taskModel->id);
|
|
||||||
if ($taskEntity instanceof ScheduledTaskEntity) {
|
|
||||||
$result = $this->subscribersFinder->addSubscribersToTaskFromSegments($taskEntity, [(int)$segment->getId()]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (empty($result)) {
|
if (empty($result)) {
|
||||||
$queue->delete();
|
$this->deleteByTask($task);
|
||||||
$this->updateScheduledTaskEntity($queue, true);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$subscribers = $queue->getSubscribers();
|
$subscribers = $task->getSubscribers();
|
||||||
$subscriber = (!empty($subscribers) && is_array($subscribers)) ?
|
$subscriber = isset($subscribers[0]) ? $subscribers[0]->getSubscriber() : null;
|
||||||
$this->subscribersRepository->findOneById($subscribers[0]) :
|
|
||||||
false;
|
|
||||||
if (!$subscriber) {
|
if (!$subscriber) {
|
||||||
$queue->delete();
|
$this->deleteByTask($task);
|
||||||
$this->updateScheduledTaskEntity($queue, true);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if ($this->verifySubscriber($subscriber, $queue) === false) {
|
if ($this->verifySubscriber($subscriber, $task) === false) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$queue->status = null;
|
$task->setStatus(null);
|
||||||
$queue->save();
|
$this->scheduledTasksRepository->flush();
|
||||||
$this->updateScheduledTaskEntity($queue);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user