DrupalApplication.php in CMS Content Sync 8
File
src/SyncCoreInterface/DrupalApplication.php
View source
<?php
namespace Drupal\cms_content_sync\SyncCoreInterface;
use Drupal\cms_content_sync\Controller\AuthenticationByUser;
use Drupal\cms_content_sync\Controller\ContentSyncSettings;
use EdgeBox\SyncCore\Interfaces\IApplicationInterface;
class DrupalApplication implements IApplicationInterface {
public const APPLICATION_ID = 'drupal';
protected static $instance;
public static function get() {
if (!empty(self::$instance)) {
return self::$instance;
}
return self::$instance = new DrupalApplication();
}
public function getSiteBaseUrl() {
return ContentSyncSettings::getInstance()
->getSiteBaseUrl();
}
public function getAuthentication() {
$type = ContentSyncSettings::getInstance()
->getAuthenticationType();
$authentication_provider = AuthenticationByUser::getInstance();
return [
'type' => $type,
'username' => $authentication_provider
->getUsername(),
'password' => $authentication_provider
->getPassword(),
];
}
public function getRestUrl($pool_id, $type_machine_name, $bundle_machine_name, $version_id, $entity_uuid = null, $manually = null, $as_dependency = null) {
$export_url = $this
->getSiteBaseUrl();
$url = sprintf('%s/rest/cms-content-sync/%s/%s/%s/%s', $export_url, $pool_id, $type_machine_name, $bundle_machine_name, $version_id);
if ($entity_uuid) {
$url .= '/' . $entity_uuid;
}
$url .= '?_format=json';
if ($as_dependency) {
$url .= '&is_dependency=' . $as_dependency;
}
if ($manually) {
$url .= '&is_manual=' . $manually;
}
return $url;
}
public function getSiteName() {
return ContentSyncSettings::getInstance()
->getSiteName();
}
public function setSiteId($set) {
ContentSyncSettings::getInstance()
->setSiteId($set);
}
public function getSiteMachineName() {
return ContentSyncSettings::getInstance()
->getSiteMachineName();
}
public function setSiteMachineName($set) {
ContentSyncSettings::getInstance()
->setSiteMachineName($set);
}
public function getSiteId() {
return ContentSyncSettings::getInstance()
->getSiteMachineName();
}
public function getApplicationId() {
return self::APPLICATION_ID;
}
public function getApplicationVersion() {
return '8.x';
}
public function getApplicationModuleVersion() {
$version = \Drupal::service('extension.list.module')
->getExtensionInfo('cms_content_sync')['version'];
return $version ? $version : 'dev';
}
public function getHttpClient() {
return \Drupal::httpClient();
}
public function getHttpOptions() {
$options = [];
global $config;
$config_name = 'cms_content_sync.sync_core_request_timeout';
if (!empty($config[$config_name]) && is_int($config[$config_name])) {
$options['timeout'] = $config[$config_name];
}
return $options;
}
}