/**
  * Downloads a request
  *
  * @param RequestInterface $request
  *
  * @return boolean
  */
 public function download(RequestInterface $request, $path)
 {
     $response = $this->httpAdapter->sendRequest($request);
     if (!($body = $response->getBody())) {
         return false;
     }
     $stream = $body->detach();
     if (is_resource($stream)) {
         return $this->filesystem->putStream($path, $stream);
     }
     return $this->filesystem->put($path, $stream);
 }
 function it_handles_ivory_interface_incompatibility(Filesystem $filesystem, HttpAdapterInterface $httpAdapter, Request $request, Response $response, Stream $stream)
 {
     $httpAdapter->sendRequest($request)->willReturn($response);
     $response->getBody()->willReturn($stream);
     $stream->detach()->willReturn('text');
     $filesystem->putStream('path/to/file', Argument::type('resource'))->shouldNotBeCalled();
     $filesystem->put('path/to/file', 'text')->willReturn(true);
     $this->download($request, 'path/to/file')->shouldReturn(true);
 }
Exemplo n.º 3
0
 /**
  * Makes calls to the elasticsearch server.
  *
  * All calls that are made to the server are done through this function
  *
  * @param \Elastica\Request $elasticaRequest
  * @param array             $params          Host, Port, ...
  *
  * @throws \Elastica\Exception\ConnectionException
  * @throws \Elastica\Exception\ResponseException
  * @throws \Elastica\Exception\Connection\HttpException
  *
  * @return \Elastica\Response Response object
  */
 public function exec(ElasticaRequest $elasticaRequest, array $params)
 {
     $connection = $this->getConnection();
     if ($timeout = $connection->getTimeout()) {
         $this->httpAdapter->getConfiguration()->setTimeout($timeout);
     }
     $httpAdapterRequest = $this->_createHttpAdapterRequest($elasticaRequest, $connection);
     $start = microtime(true);
     $httpAdapterResponse = $this->httpAdapter->sendRequest($httpAdapterRequest);
     $end = microtime(true);
     $elasticaResponse = $this->_createElasticaResponse($httpAdapterResponse, $connection);
     $elasticaResponse->setQueryTime($end - $start);
     $elasticaResponse->setTransferInfo(array('request_header' => $httpAdapterRequest->getMethod(), 'http_code' => $httpAdapterResponse->getStatusCode()));
     if ($elasticaResponse->hasError()) {
         throw new ResponseException($elasticaRequest, $elasticaResponse);
     }
     if ($elasticaResponse->hasFailedShards()) {
         throw new PartialShardFailureException($elasticaRequest, $elasticaResponse);
     }
     return $elasticaResponse;
 }
 /**
  * @param string $method
  * @param string $uri With or without host
  * @param string|array $body
  */
 private function send($method, $uri, $body = null)
 {
     if (!$this->hasHost($uri)) {
         $uri = rtrim($this->httpClient->getConfiguration()->getBaseUri(), '/') . '/' . ltrim($uri, '/');
     }
     $body = is_array($body) ? http_build_query($body) : $body;
     $stream = new Stream('php://memory', 'rw');
     if (is_scalar($body)) {
         $stream->write($body);
     }
     $this->request = new Request($uri, $method, $stream, $this->requestHeaders);
     $this->response = $this->httpClient->sendRequest($this->request);
     // Reset headers used for the HTTP request
     $this->requestHeaders = [];
 }