/**
  * Create the response object.
  *
  * @param ResponseInterface $adapterResponse
  *
  * @return Response
  */
 private function createResponse(ResponseInterface $adapterResponse = null)
 {
     $response = new Response();
     if ($adapterResponse !== null) {
         $response->setCode($adapterResponse->getStatusCode());
         $response->setHeaders(new ParameterBag($adapterResponse->getHeaders()));
         $response->setBody((string) $adapterResponse->getBody());
     }
     return $response;
 }
 /**
  * Create the request object and send it out to listening events.
  *
  * @param       $path
  * @param       $method
  * @param array $parameters
  * @param array $headers
  * @param null  $body
  *
  * @return string
  */
 private function send($path, $method, array $parameters = [], array $headers = [], $body = null)
 {
     $request = $this->createRequest($path, $method, $parameters, $headers, $body);
     $event = new RequestEvent($request);
     $this->eventDispatcher->dispatch(GoogleMoviesClientEvents::REQUEST, $event);
     $this->lastResponse = $event->getResponse();
     if ($this->lastResponse instanceof Response) {
         return (string) $this->lastResponse->getBody();
     }
     return [];
 }
 /**
  * Create the unified exception to throw.
  *
  * @param Request  $request
  * @param Response $response
  *
  * @return HttpRequestException
  */
 protected function createApiException(Request $request, Response $response)
 {
     //$errors = json_decode((string) $response->getBody());
     return new HttpRequestException($response->getCode(), $response->getBody(), $request, $response);
 }