/** * Process integration synchronization * By default, if $connector is empty, will process all connectors of given integration * * @param Integration $integration Integration object * @param string $connector Connector name * @param array $parameters Connector additional parameters * * @return boolean */ public function process(Integration $integration, $connector = null, array $parameters = []) { if (!$integration->isEnabled()) { $this->logger->error(sprintf('Integration "%s" with type "%s" is not enabled. Cannot process synchronization.', $integration->getName(), $integration->getType())); return false; } $callback = null; if ($connector) { $callback = function ($integrationConnector) use($connector) { return $integrationConnector === $connector; }; } return $this->processConnectors($integration, $parameters, $callback); }
/** * @return string */ public function getChannelName() { return $this->channel ? $this->channel->getName() : null; }
/** * @param OutputLogger $logger * @param Integration $integration * @param int|null $batchSize * @param $connector * @param $connectorParameters * * @return int */ protected function processIntegration(OutputLogger $logger, Integration $integration, $batchSize, $connector, $connectorParameters) { try { $logger->notice(sprintf('Run sync for "%s" integration.', $integration->getName())); $this->updateToken($integration); if ($batchSize) { $integration->getTransport()->getSettingsBag()->set('page_size', $batchSize); } $processor = $this->getSyncProcessor($integration, $logger); $result = $processor->process($integration, $connector, $connectorParameters); $exitCode = $result ?: self::STATUS_FAILED; } catch (\Exception $e) { $logger->critical($e->getMessage(), ['exception' => $e]); $exitCode = self::STATUS_FAILED; } return $exitCode; }