Create a proxy method to get the processed date from within NewsletterEntity
[MAILPOET-3629]
This commit is contained in:
@@ -3,7 +3,6 @@
|
|||||||
namespace MailPoet\Config;
|
namespace MailPoet\Config;
|
||||||
|
|
||||||
use MailPoet\Entities\NewsletterEntity;
|
use MailPoet\Entities\NewsletterEntity;
|
||||||
use MailPoet\Entities\ScheduledTaskEntity;
|
|
||||||
use MailPoet\Entities\SendingQueueEntity;
|
use MailPoet\Entities\SendingQueueEntity;
|
||||||
use MailPoet\Entities\SubscriberEntity;
|
use MailPoet\Entities\SubscriberEntity;
|
||||||
use MailPoet\Form\Widget;
|
use MailPoet\Form\Widget;
|
||||||
@@ -158,15 +157,9 @@ class Shortcodes {
|
|||||||
foreach ($newsletters as $newsletter) {
|
foreach ($newsletters as $newsletter) {
|
||||||
$queue = $newsletter->getLatestQueue();
|
$queue = $newsletter->getLatestQueue();
|
||||||
|
|
||||||
if ($queue instanceof SendingQueueEntity) {
|
|
||||||
$task = $queue->getTask();
|
|
||||||
} else {
|
|
||||||
$task = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
$html .= '<li>' .
|
$html .= '<li>' .
|
||||||
'<span class="mailpoet_archive_date">' .
|
'<span class="mailpoet_archive_date">' .
|
||||||
$this->wp->applyFilters('mailpoet_archive_email_processed_date', $task) .
|
$this->wp->applyFilters('mailpoet_archive_email_processed_date', $newsletter) .
|
||||||
'</span>
|
'</span>
|
||||||
<span class="mailpoet_archive_subject">' .
|
<span class="mailpoet_archive_subject">' .
|
||||||
$this->wp->applyFilters('mailpoet_archive_email_subject', $newsletter, $subscriber, $queue) .
|
$this->wp->applyFilters('mailpoet_archive_email_subject', $newsletter, $subscriber, $queue) .
|
||||||
@@ -178,14 +171,12 @@ class Shortcodes {
|
|||||||
return $html;
|
return $html;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function renderArchiveDate($task) {
|
public function renderArchiveDate(NewsletterEntity $newsletter) {
|
||||||
$timestamp = null;
|
$timestamp = null;
|
||||||
|
$processedAt = $newsletter->getProcessedAt();
|
||||||
|
|
||||||
if ($task instanceof ScheduledTaskEntity) {
|
if (!is_null($processedAt)) {
|
||||||
$processedAt = $task->getProcessedAt();
|
$timestamp = $processedAt->getTimestamp();
|
||||||
if (!is_null($processedAt)) {
|
|
||||||
$timestamp = $processedAt->getTimestamp();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->wp->dateI18n(
|
return $this->wp->dateI18n(
|
||||||
|
@@ -470,4 +470,19 @@ class NewsletterEntity {
|
|||||||
}
|
}
|
||||||
return $body['globalStyles'][$category][$style] ?? null;
|
return $body['globalStyles'][$category][$style] ?? null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getProcessedAt(): ?DateTimeInterface {
|
||||||
|
$processedAt = null;
|
||||||
|
$queue = $this->getLatestQueue();
|
||||||
|
|
||||||
|
if ($queue instanceof SendingQueueEntity) {
|
||||||
|
$task = $queue->getTask();
|
||||||
|
|
||||||
|
if ($task instanceof ScheduledTaskEntity) {
|
||||||
|
$processedAt = $task->getProcessedAt();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $processedAt;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -158,6 +158,29 @@ class NewsletterEntityTest extends \MailPoetTest {
|
|||||||
expect($task->getStatus())->equals(ScheduledTaskEntity::STATUS_PAUSED);
|
expect($task->getStatus())->equals(ScheduledTaskEntity::STATUS_PAUSED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testItGetProcessedAtReturnsNullIfEmailHasNotBeingQueuedYet() {
|
||||||
|
$newsletter = $this->createNewsletter();
|
||||||
|
$this->assertNull($newsletter->getProcessedAt());
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testItGetProcessedReturnsValue() {
|
||||||
|
$processedAt = new \DateTimeImmutable('2012-01-02 12:32:34');
|
||||||
|
$newsletter = $this->createNewsletter();
|
||||||
|
$task = new ScheduledTaskEntity();
|
||||||
|
$task->setProcessedAt($processedAt);
|
||||||
|
$this->entityManager->persist($task);
|
||||||
|
|
||||||
|
$queue = new SendingQueueEntity();
|
||||||
|
$queue->setNewsletter($newsletter);
|
||||||
|
$queue->setTask($task);
|
||||||
|
$this->entityManager->persist($queue);
|
||||||
|
|
||||||
|
$newsletter->getQueues()->add($queue);
|
||||||
|
$this->entityManager->flush();
|
||||||
|
|
||||||
|
$this->assertSame($processedAt, $newsletter->getProcessedAt());
|
||||||
|
}
|
||||||
|
|
||||||
public function _after() {
|
public function _after() {
|
||||||
$this->cleanup();
|
$this->cleanup();
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user