Example #1
0
 /**
  * doRequest.
  *
  * @param Request $request
  *
  * @return Api\Response
  * @throws Exception\ApiResponseException
  */
 public function doRequest(Request $request)
 {
     $queryParams = array('format' => $request->getFormat());
     $bodyParams = array();
     $headers = array('X-Knack-Application-Id' => $this->getConfiguration()->getApplicationId(), 'X-Knack-REST-API-Key' => $this->getConfiguration()->getApiKey());
     if ($request->hasFilters()) {
         $filters = array();
         foreach ($request->getFilters() as $filter) {
             $filters[] = $filter->toArray();
         }
         $queryParams['filters'] = json_encode($filters);
     }
     if ($request->hasPagination()) {
         $queryParams['page'] = $request->getPagination()->getPage();
         $queryParams['rows_per_page'] = $request->getPagination()->getRowsPerPage();
     }
     $adapterRequest = new \KnackHQPHPClient\HttpClientAdapter\Request($request->getMethod(), $request->getFullUrl(), $headers, $queryParams, $bodyParams);
     $response = $this->getHttpClientAdapter()->doRequest($adapterRequest);
     if ($response->isError()) {
         throw new ApiResponseException($response->getErrorCode(), $response->getErrorMessage());
     }
     return $response;
 }