Use Doctrine for the opens and clicks exporters
This commit refactors the code that handles exporting e-mails opens and clicks when generating the personal data file to use Doctrine instead of Paris. I opted to do this in this task as opens and clicks code share some functionality, and I didn't want to add more code that relies on Paris, as we are eventually going to remove it. [MAILPOET-3738]
This commit is contained in:
@@ -8,6 +8,7 @@ use MailPoet\Entities\StatisticsNewsletterEntity;
|
||||
use MailPoet\Entities\StatisticsOpenEntity;
|
||||
use MailPoet\Entities\SubscriberEntity;
|
||||
use MailPoetVendor\Carbon\Carbon;
|
||||
use MailPoetVendor\Doctrine\ORM\QueryBuilder;
|
||||
|
||||
/**
|
||||
* @extends Repository<StatisticsOpenEntity>
|
||||
@@ -86,4 +87,15 @@ class StatisticsOpensRepository extends Repository {
|
||||
->setParameter('updatedAt', null)
|
||||
->getQuery()->execute();
|
||||
}
|
||||
|
||||
public function getAllForSubscriber(SubscriberEntity $subscriber): QueryBuilder {
|
||||
return $this->entityManager->createQueryBuilder()
|
||||
->select('opens.id id, queue.newsletterRenderedSubject, opens.createdAt, userAgent.userAgent')
|
||||
->from(StatisticsOpenEntity::class, 'opens')
|
||||
->join('opens.queue', 'queue')
|
||||
->leftJoin('opens.userAgent', 'userAgent')
|
||||
->where('opens.subscriber = :subscriber')
|
||||
->orderBy('queue.newsletterRenderedSubject')
|
||||
->setParameter('subscriber', $subscriber->getId());
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user