Brak opisu

ScheduledTaskSubscribersRepository.php 1011B

1234567891011121314151617181920212223242526272829303132333435
  1. <?php declare(strict_types = 1);
  2. namespace MailPoet\Newsletter\Sending;
  3. if (!defined('ABSPATH')) exit;
  4. use MailPoet\Doctrine\Repository;
  5. use MailPoet\Entities\ScheduledTaskEntity;
  6. use MailPoet\Entities\ScheduledTaskSubscriberEntity;
  7. use MailPoet\Entities\SubscriberEntity;
  8. /**
  9. * @extends Repository<ScheduledTaskSubscriberEntity>
  10. */
  11. class ScheduledTaskSubscribersRepository extends Repository {
  12. protected function getEntityClassName() {
  13. return ScheduledTaskSubscriberEntity::class;
  14. }
  15. public function isSubscriberProcessed(ScheduledTaskEntity $task, SubscriberEntity $subscriber): bool {
  16. $scheduledTaskSubscriber = $this
  17. ->doctrineRepository
  18. ->createQueryBuilder('sts')
  19. ->andWhere('sts.processed = 1')
  20. ->andWhere('sts.task = :task')
  21. ->andWhere('sts.subscriber = :subscriber')
  22. ->setParameter('subscriber', $subscriber)
  23. ->setParameter('task', $task)
  24. ->getQuery()
  25. ->getOneOrNullResult();
  26. return !empty($scheduledTaskSubscriber);
  27. }
  28. }