![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mautic.corals.io/app/bundles/CampaignBundle/Command/ |
<?php declare(strict_types=1); namespace Mautic\CampaignBundle\Command; use Mautic\CampaignBundle\Entity\LeadEventLogRepository; use Mautic\CampaignBundle\Model\CampaignModel; use Mautic\CampaignBundle\Model\EventModel; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; class CampaignDeleteEventLogsCommand extends Command { /** * @var string */ public const COMMAND_NAME = 'mautic:campaign:delete-event-logs'; public function __construct(private LeadEventLogRepository $leadEventLogRepository, private CampaignModel $campaignModel, private EventModel $eventModel) { parent::__construct(); } protected function configure(): void { $this->setName(self::COMMAND_NAME) ->setDescription('Delete campaign event logs') ->addArgument( 'campaign_event_ids', InputArgument::IS_ARRAY | InputArgument::OPTIONAL, 'Campaign event ids to delete event logs.' ) ->addOption( '--campaign-id', '-i', InputOption::VALUE_OPTIONAL, 'Delete campaign also otherwise will delete event and event log only.' ); } protected function execute(InputInterface $input, OutputInterface $output): int { $eventIds = $input->getArgument('campaign_event_ids'); $campaignId = (int) $input->getOption('campaign-id'); if (!empty($campaignId)) { $this->leadEventLogRepository->removeEventLogsByCampaignId($campaignId); $this->eventModel->deleteEventsByCampaignId($campaignId); $campaign = $this->campaignModel->getEntity($campaignId); $this->campaignModel->deleteCampaign($campaign); } elseif (!empty($eventIds)) { $this->leadEventLogRepository->removeEventLogs($eventIds); $this->eventModel->deleteEventsByEventIds($eventIds); } return 0; } }