Move prefetch newsletter methods to repository

[MAILPOET-2946]
This commit is contained in:
Jan Lysý
2020-10-19 16:01:09 +02:00
committed by Veljko V
parent a4dcec49c7
commit 4843c124ef
2 changed files with 32 additions and 26 deletions

View File

@@ -322,6 +322,30 @@ class NewslettersRepository extends Repository {
return count($ids);
}
public function prefetchOptions(array $newsletters) {
$this->entityManager->createQueryBuilder()
->select('PARTIAL n.{id}, o, opf')
->from(NewsletterEntity::class, 'n')
->join('n.options', 'o')
->join('o.optionField', 'opf')
->where('n.id IN (:newsletters)')
->setParameter('newsletters', $newsletters)
->getQuery()
->getResult();
}
public function prefetchSegments(array $newsletters) {
$this->entityManager->createQueryBuilder()
->select('PARTIAL n.{id}, ns, s')
->from(NewsletterEntity::class, 'n')
->join('n.newsletterSegments', 'ns')
->join('ns.segment', 's')
->where('n.id IN (:newsletters)')
->setParameter('newsletters', $newsletters)
->getQuery()
->getResult();
}
private function fetchChildrenIds(array $parentIds) {
$ids = $this->entityManager->createQueryBuilder()->select('n.id')
->from(NewsletterEntity::class, 'n')