/** * @param FaceRequest $request * * @return FaceResponse * @throws FaceAPIException */ public function sendRequest(FaceRequest $request) { list($endpoint, $method, $options) = $this->prepareRequestMessage($request); // Since file uploads can take a while, we need to give more time for uploads try { $rawResponse = $this->client->request($method, $endpoint, $options); } catch (RequestException $e) { $rawResponse = $e->getResponse(); if ($e->getPrevious() instanceof RingException || !$rawResponse instanceof ResponseInterface) { throw new FaceAPIException($e->getMessage(), $e->getCode()); } } $returnResponse = new FaceResponse($request, $rawResponse->getBody()->getContents(), $rawResponse->getStatusCode(), $rawResponse->getHeaders()); if ($returnResponse->isError()) { throw $returnResponse->getThrownException(); } return $returnResponse; }