<?php
namespace FMT\Domain\Listener;
use FMT\Data\Entity\Campaign;
use FMT\Domain\Event\CampaignEvent;
use FMT\Infrastructure\Helper\NotificationHelper;
use Twig\Environment;
/**
* Class CampaignListener
* @package FMT\Application\Listener
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
*/
class CampaignListener
{
/**
* @var Environment
*/
private $parser;
/**
* @param Environment $engine
* @required
*/
public function setEngine(Environment $engine)
{
$this->parser = $engine;
}
/**
* @param CampaignEvent $event
*/
public function onCampaignStarted(CampaignEvent $event)
{
/** @var Campaign $campaign */
$campaign = $event->getCampaign();
$student = $campaign->getUser();
$contacts = $campaign->getContacts();
foreach ($contacts as $campaignContact) {
$donor = $campaignContact->getContact()->getDonor();
$message = $this->parser->render(
'@Public/emails/campaign_notification.email.twig',
compact('student', 'donor', 'campaign')
);
NotificationHelper::submitFromTemplate($message, $donor->getProfile()->getEmail());
}
}
}