Spaces:
No application file
No application file
File size: 1,585 Bytes
d2897cd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
<?php
namespace Mautic\CampaignBundle\Service;
use Mautic\CampaignBundle\Entity\Campaign;
use Mautic\CampaignBundle\Entity\CampaignRepository;
use Mautic\CoreBundle\Service\FlashBag;
use Mautic\EmailBundle\Entity\Email;
use Mautic\EmailBundle\Entity\EmailRepository;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
class CampaignAuditService
{
public function __construct(
private FlashBag $flashBag,
private UrlGeneratorInterface $urlGenerator,
private CampaignRepository $campaignRepository,
private EmailRepository $emailRepository
) {
}
public function addWarningForUnpublishedEmails(Campaign $campaign): void
{
$emailIds = $this->campaignRepository->fetchEmailIdsById($campaign->getId());
$emails = $this->emailRepository->findBy(['id' => $emailIds]);
foreach ($emails as $email) {
if (!$email->isPublished()) {
$this->setEmailWarningFlashMessage($email);
}
}
}
private function setEmailWarningFlashMessage(Email $email): void
{
$this->flashBag->add(
'mautic.core.notice.campaign.unpublished.email',
[
'%name%' => $email->getName(),
'%menu_link%' => 'mautic_email_index',
'%url%' => $this->urlGenerator->generate('mautic_email_action', [
'objectAction' => 'edit',
'objectId' => $email->getId(),
]),
],
FlashBag::LEVEL_WARNING,
);
}
}
|