Add scheduled emails subjects into segments API response
[MAILPOET-3142]
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user