Spaces:
No application file
No application file
| namespace Mautic\EmailBundle\Helper; | |
| use Mautic\EmailBundle\Stats\FetchOptions\EmailStatOptions; | |
| use Mautic\EmailBundle\Stats\Helper\BouncedHelper; | |
| use Mautic\EmailBundle\Stats\Helper\ClickedHelper; | |
| use Mautic\EmailBundle\Stats\Helper\FailedHelper; | |
| use Mautic\EmailBundle\Stats\Helper\OpenedHelper; | |
| use Mautic\EmailBundle\Stats\Helper\SentHelper; | |
| use Mautic\EmailBundle\Stats\Helper\UnsubscribedHelper; | |
| use Mautic\EmailBundle\Stats\StatHelperContainer; | |
| use Mautic\StatsBundle\Aggregate\Collection\StatCollection; | |
| class StatsCollectionHelper | |
| { | |
| public const GENERAL_STAT_PREFIX = 'email'; | |
| public function __construct( | |
| private StatHelperContainer $helperContainer | |
| ) { | |
| } | |
| /** | |
| * Fetch stats from listeners. | |
| * | |
| * @return mixed | |
| * | |
| * @throws \Mautic\EmailBundle\Stats\Exception\InvalidStatHelperException | |
| */ | |
| public function fetchSentStats(\DateTime $fromDateTime, \DateTime $toDateTime, EmailStatOptions $options) | |
| { | |
| return $this->helperContainer->getHelper(SentHelper::NAME)->fetchStats($fromDateTime, $toDateTime, $options); | |
| } | |
| /** | |
| * Fetch stats from listeners. | |
| * | |
| * @return mixed | |
| * | |
| * @throws \Mautic\EmailBundle\Stats\Exception\InvalidStatHelperException | |
| */ | |
| public function fetchOpenedStats(\DateTime $fromDateTime, \DateTime $toDateTime, EmailStatOptions $options) | |
| { | |
| return $this->helperContainer->getHelper(OpenedHelper::NAME)->fetchStats($fromDateTime, $toDateTime, $options); | |
| } | |
| /** | |
| * Fetch stats from listeners. | |
| * | |
| * @return mixed | |
| * | |
| * @throws \Mautic\EmailBundle\Stats\Exception\InvalidStatHelperException | |
| */ | |
| public function fetchFailedStats(\DateTime $fromDateTime, \DateTime $toDateTime, EmailStatOptions $options) | |
| { | |
| return $this->helperContainer->getHelper(FailedHelper::NAME)->fetchStats($fromDateTime, $toDateTime, $options); | |
| } | |
| /** | |
| * Fetch stats from listeners. | |
| * | |
| * @return mixed | |
| * | |
| * @throws \Mautic\EmailBundle\Stats\Exception\InvalidStatHelperException | |
| */ | |
| public function fetchClickedStats(\DateTime $fromDateTime, \DateTime $toDateTime, EmailStatOptions $options) | |
| { | |
| return $this->helperContainer->getHelper(ClickedHelper::NAME)->fetchStats($fromDateTime, $toDateTime, $options); | |
| } | |
| /** | |
| * Fetch stats from listeners. | |
| * | |
| * @return mixed | |
| * | |
| * @throws \Mautic\EmailBundle\Stats\Exception\InvalidStatHelperException | |
| */ | |
| public function fetchBouncedStats(\DateTime $fromDateTime, \DateTime $toDateTime, EmailStatOptions $options) | |
| { | |
| return $this->helperContainer->getHelper(BouncedHelper::NAME)->fetchStats($fromDateTime, $toDateTime, $options); | |
| } | |
| /** | |
| * Fetch stats from listeners. | |
| * | |
| * @return mixed | |
| * | |
| * @throws \Mautic\EmailBundle\Stats\Exception\InvalidStatHelperException | |
| */ | |
| public function fetchUnsubscribedStats(\DateTime $fromDateTime, \DateTime $toDateTime, EmailStatOptions $options) | |
| { | |
| return $this->helperContainer->getHelper(UnsubscribedHelper::NAME)->fetchStats($fromDateTime, $toDateTime, $options); | |
| } | |
| /** | |
| * Generate stats from Mautic's raw data. | |
| * | |
| * @throws \Mautic\EmailBundle\Stats\Exception\InvalidStatHelperException | |
| */ | |
| public function generateStats( | |
| $statName, | |
| \DateTime $fromDateTime, | |
| \DateTime $toDateTime, | |
| EmailStatOptions $options, | |
| StatCollection $statCollection | |
| ): void { | |
| $this->helperContainer->getHelper($statName)->generateStats($fromDateTime, $toDateTime, $options, $statCollection); | |
| } | |
| } | |