Create SendingQueuesRepository::countAllByNewsletterAndTaskStatus()

This method will be used in a subsequent commit to replace some of the
usages of the method SendingQueue::findTaskByNewsletterId() as part of
the refactor from Paris to Doctrine.

[MAILPOET-4138]
This commit is contained in:
Rodrigo Primo
2022-04-28 14:19:47 -03:00
committed by Veljko V
parent abd4c7b52d
commit dd6cbbbbce
2 changed files with 44 additions and 5 deletions

View File

@@ -48,6 +48,19 @@ class SendingQueuesRepository extends Repository {
->getOneOrNullResult();
}
public function countAllByNewsletterAndTaskStatus(NewsletterEntity $newsletter, string $status): int {
return intval($this->entityManager->createQueryBuilder()
->select('count(s.task)')
->from(SendingQueueEntity::class, 's')
->join('s.task', 't')
->where('t.status = :status')
->andWhere('s.newsletter = :newsletter')
->setParameter('status', $status)
->setParameter('newsletter', $newsletter)
->getQuery()
->getSingleScalarResult());
}
public function getTaskIdsByNewsletterId(int $newsletterId): array {
$results = $this->entityManager->createQueryBuilder()
->select('IDENTITY(s.task) as task_id')