public function AcquiaSearchApiClient::getSearchIndexes in Acquia Search 3.x
Helper function to fetch all search v3 indexes for given subscription.
Parameters
string $id: Acquia Subscription Identifier.
Return value
array|bool Acquia Search indexes array, FALSE on Acquia Search API failure.
File
- src/
AcquiaSearchApiClient.php, line 75
Class
- AcquiaSearchApiClient
- Acquia implementation of the Search API Client.
Namespace
Drupal\acquia_searchCode
public function getSearchIndexes(string $id) {
if (empty($id)) {
return FALSE;
}
$cid = 'acquia_search.indexes.' . $id;
$now = \Drupal::time()
->getRequestTime();
if (($cache = $this->cache
->get($cid)) && $cache->expire > $now) {
return $cache->data;
}
$path = '/v2/index/configure';
$query_string = 'network_id=' . $id;
$result = [];
$indexes = $this
->searchRequest($path, $query_string);
if (empty($indexes) && !is_array($indexes)) {
// When API is not reachable, cache it for 1 minute.
$this->cache
->set($cid, FALSE, \Drupal::time()
->getRequestTime() + 60);
return FALSE;
}
foreach ($indexes as $index) {
$result[$index['key']] = [
'balancer' => $index['host'],
'core_id' => $index['key'],
'data' => $index,
];
}
// Cache will be set in both cases, 1. when search v3 cores are found and
// 2. when there are no search v3 cores but api is reachable.
$this->cache
->set($cid, $result, $now + 24 * 60 * 60);
return $result;
}