Add isTransactional method to NewsletterEntity
[MAILPOET-6115]
This commit is contained in:
@ -187,11 +187,6 @@ class SendingQueue {
|
||||
return;
|
||||
}
|
||||
|
||||
$isTransactional = in_array($newsletter->getType(), [
|
||||
NewsletterEntity::TYPE_AUTOMATION_TRANSACTIONAL,
|
||||
NewsletterEntity::TYPE_WC_TRANSACTIONAL_EMAIL,
|
||||
]);
|
||||
|
||||
// configure mailer
|
||||
$this->mailerTask->configureMailer($newsletter);
|
||||
// get newsletter segments
|
||||
@ -272,7 +267,7 @@ class SendingQueue {
|
||||
->setParameter('subscriberIds', $subscribersToProcessIds)
|
||||
->andWhere('s.deletedAt IS NULL');
|
||||
|
||||
if ($newsletter->getType() === NewsletterEntity::TYPE_AUTOMATION_TRANSACTIONAL) {
|
||||
if ($newsletter->isTransactional()) {
|
||||
$queryBuilder->andWhere('s.status != :bouncedStatus')
|
||||
->setParameter('bouncedStatus', SubscriberEntity::STATUS_BOUNCED);
|
||||
} else {
|
||||
@ -323,7 +318,7 @@ class SendingQueue {
|
||||
$foundSubscribers,
|
||||
$timer
|
||||
);
|
||||
if (!$isTransactional) {
|
||||
if (!$newsletter->isTransactional()) {
|
||||
$this->entityManager->wrapInTransaction(function() use ($foundSubscribersIds) {
|
||||
$now = Carbon::createFromTimestamp((int)current_time('timestamp'));
|
||||
$this->subscribersRepository->bulkUpdateLastSendingAt($foundSubscribersIds, $now);
|
||||
|
@ -608,4 +608,11 @@ class NewsletterEntity {
|
||||
$campaignName = $this->getCampaignName();
|
||||
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);
|
||||
}
|
||||
|
||||
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 {
|
||||
$newsletter = new NewsletterEntity();
|
||||
$newsletter->setType($type);
|
||||
|
Reference in New Issue
Block a user