| Current Path : /var/www/v3.cesa.co.za/src/ContactBundle/Command/ |
| Current File : /var/www/v3.cesa.co.za/src/ContactBundle/Command/MailChimpBatchSyncCommand.php |
<?php
namespace App\ContactBundle\Command;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use App\CoreBundle\Services\ServiceGetterManager;
class MailChimpBatchSyncCommand extends Command
{
private $serviceGetterManager;
public function __construct(ServiceGetterManager $serviceGetterManager)
{
$this->serviceGetterManager = $serviceGetterManager;
parent::__construct();
}
protected static $defaultName = 'cesa:mailchimp:batch:sync';
protected function execute(InputInterface $input, OutputInterface $output)
{
try {
/** @var \App\ContactBundle\Services\MailChimpBatchManager $batchManager */
$batchManager = $this->serviceGetterManager->get('contact.mailchimp_batch.manager');
if (!$batchManager) {
$output->writeln('<error>Could not get MailChimp batch manager service</error>');
return Command::FAILURE;
}
$stats = $batchManager->syncBatches();
$output->writeln('Created ' . $stats['created'] . ' batches, deleted ' . $stats['deleted'] . ' batches, updated ' . $stats['updated']
. ' batches, and had ' . $stats['errors'] . ' errors.');
if ($stats['errors'] > 0) {
$output->writeln('<comment>There were errors during the sync. Check the logs for details.</comment>');
return Command::FAILURE;
}
return Command::SUCCESS;
} catch (\Throwable $e) {
$output->writeln('<error>Error during MailChimp batch sync: ' . $e->getMessage() . '</error>');
$output->writeln('<error>Stack trace: ' . $e->getTraceAsString() . '</error>');
return Command::FAILURE;
}
}
}