/** * Checks whether integration has at least on connector that supports backward sync * * @param string $integrationType * * @return bool */ public function hasTwoWaySyncConnectors($integrationType) { $connectors = $this->registry->getRegisteredConnectorsTypes($integrationType, function (ConnectorInterface $connector) { return $connector instanceof TwoWaySyncConnectorInterface; }); return !$connectors->isEmpty(); }
/** * {@inheritdoc} */ protected function getConnectors(array $entities) { $dictionaryConnectors = $this->typeRegistry->getRegisteredConnectorsTypes(ChannelType::TYPE, function (ConnectorInterface $connector) { return $connector instanceof DictionaryConnectorInterface; })->toArray(); $connectors = []; $initialConnectors = []; $isSupportedExtensionVersion = $this->transportEntity->isSupportedExtensionVersion(); $isExtensionInstalled = $this->transportEntity->getIsExtensionInstalled(); foreach ($entities as $entity) { $connectorName = $this->settingsProvider->getIntegrationConnectorName($entity); if ($connectorName) { $connector = $this->typeRegistry->getConnectorType(ChannelType::TYPE, $connectorName); if (!$connector) { continue; } $isExtensionApplicable = $connector instanceof ExtensionVersionAwareInterface ? $isSupportedExtensionVersion : $isExtensionInstalled; if ($isExtensionApplicable || !$isExtensionApplicable && !$connector instanceof ExtensionAwareInterface) { array_push($initialConnectors, $connectorName . InitialSyncProcessor::INITIAL_CONNECTOR_SUFFIX); array_push($connectors, $connectorName); } } } return array_merge(array_keys($dictionaryConnectors), $initialConnectors, $connectors); }