Example #1
0
 /**
  * @param  Request      $request
  * @return Response
  * @throws Exceptions\ResponseException
  * @throws Exceptions\SignatureException
  */
 public function send(Request $request)
 {
     $request->setApiKeyId($this->accessKeyId);
     $request->setSignature($this->accessKeySecret);
     //Call Httpclient with request
     list($httpResponseHeader, $rawResponseData) = $this->makeHttpClientCall($request);
     if ($httpResponseHeader['status'] != 200) {
         throw new Exceptions\ResponseException($httpResponseHeader['reason'], $httpResponseHeader['status']);
     }
     $response = new Response($request->getOperation(), $httpResponseHeader, $rawResponseData);
     if (!$response->validateSignature($this->accessKeySecret)) {
         throw new Exceptions\SignatureException(sprintf(ExceptionMessages::INVALID_SIGNATURE, json_encode($response->getSignatureViladtionResults())));
     }
     return $response;
 }