Replace Paris models with Doctrine entities in AuthorizedEmailsController

[MAILPOET-4347]
This commit is contained in:
Rodrigo Primo
2022-07-27 17:52:03 -03:00
committed by Veljko V
parent d225f4e044
commit 85e7997197
2 changed files with 45 additions and 18 deletions

View File

@@ -464,6 +464,42 @@ class NewslettersRepository extends Repository {
->getResult();
}
/**
* Returns a list of emails that are either scheduled standard emails
* or active automatic emails of the provided types.
*
* @param array $automaticEmailTypes
*
* @return array
*/
public function getScheduledStandardEmailsAndActiveAutomaticEmails(array $automaticEmailTypes): array {
$queryBuilder = $this->entityManager->createQueryBuilder();
$newsletters = $queryBuilder
->select('n')
->from(NewsletterEntity::class, 'n')
->orWhere(
$queryBuilder->expr()->andX(
$queryBuilder->expr()->eq('n.type', ':typeStandard'),
$queryBuilder->expr()->eq('n.status', ':statusScheduled')
)
)
->orWhere(
$queryBuilder->expr()->andX(
$queryBuilder->expr()->in('n.type', ':automaticEmailTypes'),
$queryBuilder->expr()->eq('n.status', ':statusActive')
)
)
->setParameter('typeStandard', NewsletterEntity::TYPE_STANDARD)
->setParameter('statusScheduled', NewsletterEntity::STATUS_SCHEDULED)
->setParameter('automaticEmailTypes', $automaticEmailTypes)
->setParameter('statusActive', NewsletterEntity::STATUS_ACTIVE)
->getQuery()
->getResult();
return $newsletters;
}
private function fetchChildrenIds(array $parentIds) {
$ids = $this->entityManager->createQueryBuilder()->select('n.id')
->from(NewsletterEntity::class, 'n')