Simplify code by removing some duplication

[MAILPOET-4357]
This commit is contained in:
Rodrigo Primo
2022-08-03 15:58:43 -03:00
committed by Veljko V
parent d8770675a4
commit 6127336eab

View File

@@ -56,11 +56,9 @@ class ScheduledTaskSubscribersRepository extends Repository {
} }
public function countSubscriberIdsBatchForTask(int $taskId, int $lastProcessedSubscriberId): int { public function countSubscriberIdsBatchForTask(int $taskId, int $lastProcessedSubscriberId): int {
$queryBuilder = $this->entityManager $queryBuilder = $this->getBaseSubscribersIdsBatchForTaskQuery($taskId, $lastProcessedSubscriberId);
->createQueryBuilder()
->select('count(sts.subscriber)');
$queryBuilder = $this->prepareSubscriberIdsBatchForTaskQuery($queryBuilder, $taskId, $lastProcessedSubscriberId);
$countSubscribers = $queryBuilder $countSubscribers = $queryBuilder
->select('count(sts.subscriber)')
->getQuery() ->getQuery()
->getSingleScalarResult(); ->getSingleScalarResult();
@@ -72,11 +70,9 @@ class ScheduledTaskSubscribersRepository extends Repository {
} }
public function getSubscriberIdsBatchForTask(int $taskId, int $lastProcessedSubscriberId, int $limit): array { public function getSubscriberIdsBatchForTask(int $taskId, int $lastProcessedSubscriberId, int $limit): array {
$queryBuilder = $this->entityManager $queryBuilder = $this->getBaseSubscribersIdsBatchForTaskQuery($taskId, $lastProcessedSubscriberId);
->createQueryBuilder()
->select('IDENTITY(sts.subscriber) AS subscriber_id');
$queryBuilder = $this->prepareSubscriberIdsBatchForTaskQuery($queryBuilder, $taskId, $lastProcessedSubscriberId);
$subscribersIds = $queryBuilder $subscribersIds = $queryBuilder
->select('IDENTITY(sts.subscriber) AS subscriber_id')
->orderBy('sts.subscriber', 'asc') ->orderBy('sts.subscriber', 'asc')
->setMaxResults($limit) ->setMaxResults($limit)
->getQuery() ->getQuery()
@@ -85,8 +81,9 @@ class ScheduledTaskSubscribersRepository extends Repository {
return $subscribersIds; return $subscribersIds;
} }
private function prepareSubscriberIdsBatchForTaskQuery(QueryBuilder $queryBuilder, int $taskId, int $lastProcessedSubscriberId): QueryBuilder { private function getBaseSubscribersIdsBatchForTaskQuery(int $taskId, int $lastProcessedSubscriberId): QueryBuilder {
return $queryBuilder return $this->entityManager
->createQueryBuilder()
->from(ScheduledTaskSubscriberEntity::class, 'sts') ->from(ScheduledTaskSubscriberEntity::class, 'sts')
->andWhere('sts.task = :taskId') ->andWhere('sts.task = :taskId')
->andWhere('sts.subscriber > :lastProcessedSubscriberId') ->andWhere('sts.subscriber > :lastProcessedSubscriberId')