Example #1
0
 /**
  *
  * @param RequestEnvelope $requestEnvelope
  * @return ConnectorResponse
  * @throws Exception
  */
 public function sendRequest(RequestEnvelope $requestEnvelope)
 {
     $url = $this->getEndpoint() . $requestEnvelope->getResource();
     $request = new Request($requestEnvelope->getMethod(), $url, $requestEnvelope->getHeaders(), $requestEnvelope->getData());
     try {
         $curlClient = new CurlClient($this->curlOptions);
         $response = $curlClient->process($request);
     } catch (Exception $ex) {
         throw new Exception($ex->getMessage(), $ex->getCode(), $ex->getPrevious());
     }
     $responseCode = $response->getCode();
     $rawResponseData = $response->getBody();
     $responseHeaders = $response->getHeaders();
     $connectorResponse = new ConnectorResponse($responseCode, $rawResponseData, $responseHeaders);
     return $connectorResponse;
 }
Example #2
0
 /**
  * @param Request $request
  * @return Response
  * @throws FioFailureException
  * @throws FioTemporaryUnavailableException
  */
 private function sendRequest(Request $request)
 {
     try {
         $response = $this->httpClient->process($request);
         $httpCode = $response->getCode();
         if ($httpCode === self::CODE_UNAVAILABLE) {
             throw new FioTemporaryUnavailableException('Fio overheated. Please wait 30 seconds.');
         } elseif ($httpCode !== Response::S200_OK) {
             throw new FioFailureException("Unexpected HTTP code {$httpCode} from Fio API.");
         }
         return $response;
     } catch (BadResponseException $e) {
         throw new FioFailureException('HTTP request to Fio API failed.', NULL, $e);
     }
 }