You are here

function search_api_federated_solr_update_8002 in Search API Federated Solr 8.3

Same name and namespace in other branches
  1. 8.2 search_api_federated_solr.install \search_api_federated_solr_update_8002()
  2. 4.x search_api_federated_solr.install \search_api_federated_solr_update_8002()

Configures the search proxy (enabled) and app + block autocomplete proxies (disabled).

File

./search_api_federated_solr.install, line 53
Contains install and update hooks for the Federated Solr Search API Module.

Code

function search_api_federated_solr_update_8002(&$sandbox) {
  $config_factory = \Drupal::configFactory();
  $config = $config_factory
    ->getEditable('search_api_federated_solr.search_app.settings');

  // Enable the proxy by default.
  $config
    ->set('proxy.isDisabled', 0);

  // Set the autocomplete proxy config.
  // Disable the autocomplete proxy to respect current endpoint?
  $config
    ->set('autocomplete.proxy.isDisabled', 0);
  if ($config
    ->get('autocomplete.isEnabled')) {

    // If autocomplete enabled, respect current url by setting as direct url.
    $direct_url = $config
      ->get('autocomplete.url');
    $config
      ->set('autocomplete.proxy.isDisabled', 1);
    $config
      ->set('autocomplete.direct.url', $direct_url);
  }

  // Set autocomplete basic auth config.
  $config
    ->set('autocomplete.username', '');
  $config
    ->set('autocomplete.password', '');
  $config
    ->set('autocomplete.use_search_app_creds', 0);
  $config
    ->set('index.query_fields', []);

  // Remove legacy stored urls as they are now computed.
  $config
    ->clear('autocomplete.url');
  $config
    ->clear('autocomplete.proxy.url');
  $config
    ->clear('index.server_url');
  $config
    ->clear('proxy.url');
  $config
    ->save(TRUE);

  // Configure block autocomplete proxy.
  if ($block = \Drupal\block\Entity\Block::load('federatedsearchpageformblock')) {
    $block_config = $config_factory
      ->getEditable('block.block.federatedsearchpageformblock');
    $block_config
      ->set('settings.autocomplete.proxyIsDisabled', 0);

    // Add the string to be replaced with the query value to proxy url.
    // Default direct url to server url + params.
    if ($block_config
      ->get('settings.autocomplete.isEnabled')) {

      // If autocomplete enabled, respect current url by setting as direct url.
      $block_direct_url = $block_config
        ->get('settings.autocomplete.url');
      $block_config
        ->set('settings.autocomplete.proxyIsDisabled', 1);
      $block_config
        ->set('settings.autocomplete.directUrl', $block_direct_url);
    }

    // Remove legacy stored autocomplete.url as it is now computed.
    $block_config
      ->clear('settings.autocomplete.url');
    $block_config
      ->save(TRUE);
  }
}