Add isTransactional method to NewsletterEntity
[MAILPOET-6115]
This commit is contained in:
@ -187,11 +187,6 @@ class SendingQueue {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$isTransactional = in_array($newsletter->getType(), [
|
|
||||||
NewsletterEntity::TYPE_AUTOMATION_TRANSACTIONAL,
|
|
||||||
NewsletterEntity::TYPE_WC_TRANSACTIONAL_EMAIL,
|
|
||||||
]);
|
|
||||||
|
|
||||||
// configure mailer
|
// configure mailer
|
||||||
$this->mailerTask->configureMailer($newsletter);
|
$this->mailerTask->configureMailer($newsletter);
|
||||||
// get newsletter segments
|
// get newsletter segments
|
||||||
@ -272,7 +267,7 @@ class SendingQueue {
|
|||||||
->setParameter('subscriberIds', $subscribersToProcessIds)
|
->setParameter('subscriberIds', $subscribersToProcessIds)
|
||||||
->andWhere('s.deletedAt IS NULL');
|
->andWhere('s.deletedAt IS NULL');
|
||||||
|
|
||||||
if ($newsletter->getType() === NewsletterEntity::TYPE_AUTOMATION_TRANSACTIONAL) {
|
if ($newsletter->isTransactional()) {
|
||||||
$queryBuilder->andWhere('s.status != :bouncedStatus')
|
$queryBuilder->andWhere('s.status != :bouncedStatus')
|
||||||
->setParameter('bouncedStatus', SubscriberEntity::STATUS_BOUNCED);
|
->setParameter('bouncedStatus', SubscriberEntity::STATUS_BOUNCED);
|
||||||
} else {
|
} else {
|
||||||
@ -323,7 +318,7 @@ class SendingQueue {
|
|||||||
$foundSubscribers,
|
$foundSubscribers,
|
||||||
$timer
|
$timer
|
||||||
);
|
);
|
||||||
if (!$isTransactional) {
|
if (!$newsletter->isTransactional()) {
|
||||||
$this->entityManager->wrapInTransaction(function() use ($foundSubscribersIds) {
|
$this->entityManager->wrapInTransaction(function() use ($foundSubscribersIds) {
|
||||||
$now = Carbon::createFromTimestamp((int)current_time('timestamp'));
|
$now = Carbon::createFromTimestamp((int)current_time('timestamp'));
|
||||||
$this->subscribersRepository->bulkUpdateLastSendingAt($foundSubscribersIds, $now);
|
$this->subscribersRepository->bulkUpdateLastSendingAt($foundSubscribersIds, $now);
|
||||||
|
@ -608,4 +608,11 @@ class NewsletterEntity {
|
|||||||
$campaignName = $this->getCampaignName();
|
$campaignName = $this->getCampaignName();
|
||||||
return $campaignName ?: $this->getSubject();
|
return $campaignName ?: $this->getSubject();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function isTransactional(): bool {
|
||||||
|
return in_array($this->getType(), [
|
||||||
|
NewsletterEntity::TYPE_AUTOMATION_TRANSACTIONAL,
|
||||||
|
NewsletterEntity::TYPE_WC_TRANSACTIONAL_EMAIL,
|
||||||
|
]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -220,6 +220,16 @@ class NewsletterEntityTest extends \MailPoetTest {
|
|||||||
verify($notificationHistoryNewsletter->getFilterSegmentId())->equals(2);
|
verify($notificationHistoryNewsletter->getFilterSegmentId())->equals(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testIsTransactional(): void {
|
||||||
|
$newsletter = $this->createNewsletter();
|
||||||
|
$this->assertFalse($newsletter->isTransactional());
|
||||||
|
|
||||||
|
$newsletter->setType(NewsletterEntity::TYPE_AUTOMATION_TRANSACTIONAL);
|
||||||
|
$this->assertTrue($newsletter->isTransactional());
|
||||||
|
$newsletter->setType(NewsletterEntity::TYPE_WC_TRANSACTIONAL_EMAIL);
|
||||||
|
$this->assertTrue($newsletter->isTransactional());
|
||||||
|
}
|
||||||
|
|
||||||
private function createNewsletter(string $type = NewsletterEntity::TYPE_STANDARD): NewsletterEntity {
|
private function createNewsletter(string $type = NewsletterEntity::TYPE_STANDARD): NewsletterEntity {
|
||||||
$newsletter = new NewsletterEntity();
|
$newsletter = new NewsletterEntity();
|
||||||
$newsletter->setType($type);
|
$newsletter->setType($type);
|
||||||
|
Reference in New Issue
Block a user