Save the correct datetime value for newsletter sentAt column

We don't need to use the value from `processedAt` here since we can rightfully use the current datetime value

Also, I found out `processedAt` is usually null here for standard newsletters which cause new Carbon to use the server datetime settings

MAILPOET-5795
This commit is contained in:
Oluwaseun Olorunsola
2023-12-21 15:08:24 +01:00
committed by Aschepikov
parent 639d779088
commit c76c8f2abb
3 changed files with 7 additions and 8 deletions

View File

@ -272,7 +272,7 @@ class SendingQueue {
);
$queue->removeSubscribers($subscribersToRemove);
if (!$queue->countToProcess) {
$this->newsletterTask->markNewsletterAsSent($newsletterEntity, $queue);
$this->newsletterTask->markNewsletterAsSent($newsletterEntity);
continue;
}
// if there aren't any subscribers to process in batch (e.g. all unsubscribed or were deleted) continue with next batch
@ -312,7 +312,7 @@ class SendingQueue {
'completed newsletter sending',
['newsletter_id' => $newsletter->id, 'task_id' => $queue->taskId]
);
$this->newsletterTask->markNewsletterAsSent($newsletterEntity, $queue);
$this->newsletterTask->markNewsletterAsSent($newsletterEntity);
$this->statsNotificationsScheduler->schedule($newsletterEntity);
}
$this->enforceSendingAndExecutionLimits($timer);

View File

@ -281,15 +281,14 @@ class Newsletter {
];
}
public function markNewsletterAsSent(NewsletterEntity $newsletter, Sending $sendingTask) {
public function markNewsletterAsSent(NewsletterEntity $newsletter) {
// if it's a standard or notification history newsletter, update its status
if (
$newsletter->getType() === NewsletterEntity::TYPE_STANDARD ||
$newsletter->getType() === NewsletterEntity::TYPE_NOTIFICATION_HISTORY
) {
$scheduledTask = $sendingTask->task();
$newsletter->setStatus(NewsletterEntity::STATUS_SENT);
$newsletter->setSentAt(new Carbon($scheduledTask->processedAt));
$newsletter->setSentAt(Carbon::createFromTimestamp(WPFunctions::get()->currentTime('timestamp')));
$this->newslettersRepository->persist($newsletter);
$this->newslettersRepository->flush();
}

View File

@ -265,7 +265,7 @@ class NewsletterTest extends \MailPoetTest {
$newsletter->setStatus('not_sent');
$this->newslettersRepository->persist($newsletter);
$this->newslettersRepository->flush();
$this->newsletterTask->markNewsletterAsSent($newsletter, $this->sendingTask);
$this->newsletterTask->markNewsletterAsSent($newsletter);
$updatedNewsletter = $this->newslettersRepository->findOneById($newsletter->getId());
$this->assertInstanceOf(NewsletterEntity::class, $updatedNewsletter);
verify($updatedNewsletter->getStatus())->equals(NewsletterEntity::STATUS_SENT);
@ -278,7 +278,7 @@ class NewsletterTest extends \MailPoetTest {
$newsletter->setStatus('not_sent');
$this->newslettersRepository->persist($newsletter);
$this->newslettersRepository->flush();
$this->newsletterTask->markNewsletterAsSent($newsletter, $this->sendingTask);
$this->newsletterTask->markNewsletterAsSent($newsletter);
$updatedNewsletter = $this->newslettersRepository->findOneById($newsletter->getId());
$this->assertInstanceOf(NewsletterEntity::class, $updatedNewsletter);
verify($updatedNewsletter->getStatus())->equals(NewsletterEntity::STATUS_SENT);
@ -291,7 +291,7 @@ class NewsletterTest extends \MailPoetTest {
$newsletter->setStatus('not_sent');
$this->newslettersRepository->persist($newsletter);
$this->newslettersRepository->flush();
$this->newsletterTask->markNewsletterAsSent($newsletter, $this->sendingTask);
$this->newsletterTask->markNewsletterAsSent($newsletter);
$updatedNewsletter = $this->newslettersRepository->findOneById($newsletter->getId());
$this->assertInstanceOf(NewsletterEntity::class, $updatedNewsletter);
verify($updatedNewsletter->getStatus())->notEquals(NewsletterEntity::STATUS_SENT);