Remove old model usages from AutomaticEmailScheduler

[MAILPOET-4372]
This commit is contained in:
Jan Lysý
2022-09-28 15:37:20 +02:00
committed by Aschepikov
parent 745ff6af2a
commit a1e96c63a0
4 changed files with 110 additions and 30 deletions

View File

@@ -96,6 +96,23 @@ class ScheduledTasksRepository extends Repository {
->getResult();
}
public function findOneScheduledByNewsletterAndSubscriberId(NewsletterEntity $newsletter, int $subscriberId): ?ScheduledTaskEntity {
$scheduledTask = $this->doctrineRepository->createQueryBuilder('st')
->join(SendingQueueEntity::class, 'sq', Join::WITH, 'st = sq.task')
->join(ScheduledTaskSubscriberEntity::class, 'sts', Join::WITH, 'st = sts.task')
->andWhere('st.status = :status')
->andWhere('sq.newsletter = :newsletter')
->andWhere('sts.subscriber = :subscriber')
->setMaxResults(1)
->setParameter('status', ScheduledTaskEntity::STATUS_SCHEDULED)
->setParameter('newsletter', $newsletter)
->setParameter('subscriber', $subscriberId)
->getQuery()
->getOneOrNullResult();
// for phpstan because it detects mixed instead of entity
return ($scheduledTask instanceof ScheduledTaskEntity) ? $scheduledTask : null;
}
public function findScheduledOrRunningTask(?string $type): ?ScheduledTaskEntity {
$queryBuilder = $this->doctrineRepository->createQueryBuilder('st')
->select('st')