![]() 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/IntegrationsBundle/Sync/SyncService/ |
<?php declare(strict_types=1); namespace Mautic\IntegrationsBundle\Sync\SyncService; use GuzzleHttp\Exception\ClientException; use Mautic\IntegrationsBundle\Helper\SyncIntegrationsHelper; use Mautic\IntegrationsBundle\Sync\DAO\Sync\InputOptionsDAO; use Mautic\IntegrationsBundle\Sync\Helper\MappingHelper; use Mautic\IntegrationsBundle\Sync\Helper\RelationsHelper; use Mautic\IntegrationsBundle\Sync\Helper\SyncDateHelper; use Mautic\IntegrationsBundle\Sync\Logger\DebugLogger; use Mautic\IntegrationsBundle\Sync\Notification\Notifier; use Mautic\IntegrationsBundle\Sync\SyncDataExchange\MauticSyncDataExchange; use Mautic\IntegrationsBundle\Sync\SyncProcess\Direction\Integration\IntegrationSyncProcess; use Mautic\IntegrationsBundle\Sync\SyncProcess\Direction\Internal\MauticSyncProcess; use Mautic\IntegrationsBundle\Sync\SyncProcess\SyncProcess; use Psr\Log\LogLevel; use Symfony\Component\EventDispatcher\EventDispatcherInterface; final class SyncService implements SyncServiceInterface { public function __construct( private MauticSyncDataExchange $internalSyncDataExchange, private SyncDateHelper $syncDateHelper, private MappingHelper $mappingHelper, private RelationsHelper $relationsHelper, private SyncIntegrationsHelper $syncIntegrationsHelper, private EventDispatcherInterface $eventDispatcher, private Notifier $notifier, private IntegrationSyncProcess $integratinSyncProcess, private MauticSyncProcess $mauticSyncProcess ) { } /** * @throws \Mautic\IntegrationsBundle\Exception\IntegrationNotFoundException */ public function processIntegrationSync(InputOptionsDAO $inputOptionsDAO): void { $integrationSyncProcess = new SyncProcess( $this->syncDateHelper, $this->mappingHelper, $this->relationsHelper, $this->integratinSyncProcess, $this->mauticSyncProcess, $this->eventDispatcher, $this->notifier, $this->syncIntegrationsHelper->getMappingManual($inputOptionsDAO->getIntegration()), $this->internalSyncDataExchange, $this->syncIntegrationsHelper->getSyncDataExchange($inputOptionsDAO->getIntegration()), $inputOptionsDAO, $this ); DebugLogger::log( $inputOptionsDAO->getIntegration(), sprintf( 'Starting %s sync from %s date/time', $inputOptionsDAO->isFirstTimeSync() ? 'first time' : 'subsequent', $inputOptionsDAO->getStartDateTime() ? $inputOptionsDAO->getStartDateTime()->format('Y-m-d H:i:s') : 'yet to be determined' ), self::class.':'.__FUNCTION__ ); try { $integrationSyncProcess->execute(); } catch (ClientException $exception) { // The sync failed to communicate with the integration so log it DebugLogger::log($inputOptionsDAO->getIntegration(), $exception->getMessage(), null, [], LogLevel::ERROR); } } public function initiateDebugLogger(DebugLogger $logger): void { // Yes it's a hack to prevent from having to pass the logger as a dependency into dozens of classes // So not doing anything with the logger, just need Symfony to initiate the service } }