Exemplo n.º 1
0
 /**
  * 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();
 }
Exemplo n.º 2
0
 /**
  * {@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);
 }