Refactor newsletter API bulk actions to use repository methods

[MAILPOET-2898]
This commit is contained in:
Rostislav Wolny
2020-06-04 15:20:37 +02:00
committed by Veljko V
parent 0a57199997
commit 2b47684490
4 changed files with 56 additions and 14 deletions

View File

@ -6,6 +6,8 @@ use MailPoet\Util\Helpers;
use MailPoetVendor\Doctrine\ORM\EntityManager;
use MailPoetVendor\Doctrine\ORM\QueryBuilder;
use function MailPoetVendor\array_column;
abstract class ListingRepository {
/** @var QueryBuilder */
protected $queryBuilder;
@ -34,6 +36,16 @@ abstract class ListingRepository {
return (int)$queryBuilder->getQuery()->getSingleScalarResult();
}
public function getIds(ListingDefinition $definition): array {
$queryBuilder = clone $this->queryBuilder;
$this->applyFromClause($queryBuilder);
$this->applyConstraints($queryBuilder, $definition);
$alias = $queryBuilder->getRootAliases()[0];
$queryBuilder->select("$alias.id");
$ids = $queryBuilder->getQuery()->getScalarResult();
return array_column($ids, 'id');
}
public function getGroups(ListingDefinition $definition): array {
return [];
}