Add scheduled emails subjects into segments API response

[MAILPOET-3142]
This commit is contained in:
Jan Lysý
2021-01-04 13:55:10 +01:00
committed by Veljko V
parent 9fbff78291
commit 8f41628d29
2 changed files with 35 additions and 1 deletions

View File

@@ -3,6 +3,7 @@
namespace MailPoet\Newsletter\Segment;
use MailPoet\Doctrine\Repository;
use MailPoet\Entities\NewsletterEntity;
use MailPoet\Entities\NewsletterSegmentEntity;
/**
@@ -12,4 +13,22 @@ class NewsletterSegmentRepository extends Repository {
protected function getEntityClassName() {
return NewsletterSegmentEntity::class;
}
public function getScheduledNewsletterSubjectsBySegmentIds(array $segmentIds): array {
$results = $this->doctrineRepository->createQueryBuilder('ns')
->select('IDENTITY(ns.segment) AS segment_id, n.subject')
->join('ns.newsletter', 'n')
->where('n.status = :scheduled')
->andWhere('ns.segment IN (:segmentIds)')
->setParameter('scheduled', NewsletterEntity::STATUS_SCHEDULED)
->setParameter('segmentIds', $segmentIds)
->getQuery()
->getResult();
$nameMap = [];
foreach ($results as $result) {
$nameMap[(string)$result['segment_id']][] = $result['subject'];
}
return $nameMap;
}
}