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:
@@ -9,6 +9,7 @@ use MailPoet\Entities\SendingQueueEntity;
|
||||
use MailPoet\Entities\StatisticsClickEntity;
|
||||
use MailPoet\Entities\SubscriberEntity;
|
||||
use MailPoet\Entities\UserAgentEntity;
|
||||
use MailPoetVendor\Doctrine\ORM\QueryBuilder;
|
||||
|
||||
/**
|
||||
* @extends Repository<StatisticsClickEntity>
|
||||
@@ -43,4 +44,16 @@ class StatisticsClicksRepository extends Repository {
|
||||
}
|
||||
return $statistics;
|
||||
}
|
||||
|
||||
public function getAllForSubscriber(SubscriberEntity $subscriber): QueryBuilder {
|
||||
return $this->entityManager->createQueryBuilder()
|
||||
->select('clicks.id id, queue.newsletterRenderedSubject, clicks.createdAt, link.url, userAgent.userAgent')
|
||||
->from(StatisticsClickEntity::class, 'clicks')
|
||||
->join('clicks.queue', 'queue')
|
||||
->join('clicks.link', 'link')
|
||||
->leftJoin('clicks.userAgent', 'userAgent')
|
||||
->where('clicks.subscriber = :subscriber')
|
||||
->orderBy('link.url')
|
||||
->setParameter('subscriber', $subscriber->getId());
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user