����JFIF��x�x����'
| Server IP : 78.140.185.180 / Your IP : 216.73.216.157 Web Server : LiteSpeed System : Linux cpanel13.v.fozzy.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64 User : builderbox ( 1072) PHP Version : 7.3.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/builderbox/www/vendor/algolia/algoliasearch-client-php/src/Response/ |
Upload File : |
<?php
namespace Algolia\AlgoliaSearch\Response;
use Algolia\AlgoliaSearch\Config\SearchConfig;
use Algolia\AlgoliaSearch\RequestOptions\RequestOptions;
use Algolia\AlgoliaSearch\SearchClient;
final class DictionaryResponse extends AbstractResponse
{
/* @var \Algolia\AlgoliaSearch\SearchClient */
private $client;
/* @var \Algolia\AlgoliaSearch\Config\SearchConfig */
private $config;
/* @var bool */
private $done = false;
/**
* DictionaryResponse constructor.
*/
public function __construct(array $apiResponse, SearchClient $client, SearchConfig $config)
{
$this->apiResponse = $apiResponse;
$this->client = $client;
$this->config = $config;
}
/**
* Wait for the task from this response to finish.
*
* @param array|RequestOptions $requestOptions
*
* @return $this
*/
public function wait($requestOptions = [])
{
$retryCount = 1;
$time = $this->config->getWaitTaskTimeBeforeRetry();
while (!$this->done) {
$res = $this->getTask($this->apiResponse['taskID'], $requestOptions);
if ('published' === $res['status']) {
$this->done = true;
break;
}
$retryCount++;
$factor = ceil($retryCount / 10);
usleep($factor * $time); // 0.1 second
}
return $this;
}
/**
* Get the task details.
*
* @param int|string $taskId
* @param array|RequestOptions $requestOptions
*
* @return mixed
*/
private function getTask($taskId, $requestOptions = [])
{
if (!$taskId) {
throw new \InvalidArgumentException('taskID cannot be empty');
}
return $this->client->custom(
'GET',
\Algolia\AlgoliaSearch\api_path('/1/task/%s', $taskId),
$requestOptions
);
}
}