Example #1
0
 /**
  * Сделать запрос
  * @param RequestInterface $request
  * @return Response
  */
 public function requestAndGetObject(RequestInterface $request)
 {
     $requestData = array('login' => $this->login, 'secretKey' => $this->secretKey);
     if ($request instanceof RequestWithResponseRowsInterface) {
         $requestRows = $request->getRows();
         if (count($requestRows) > 0) {
             $requestData['rows'] = $requestRows;
         }
     }
     if ($request instanceof RequestWithFilterInterface) {
         //TODO Вынести обработку фильтров в отдельный класс
         if ($filters = $request->getFilters()) {
             foreach ($filters as $filterName => $filterValue) {
                 if ($filterName == 'emails') {
                     $requestData['emails'] = $filterValue;
                 }
             }
         }
     }
     $requestJSON = json_encode($requestData);
     $requestURL = self::API_URL . $request->getRequestRelativeURL();
     $responseJSON = $this->transport->performRequest($requestURL, $requestJSON);
     $response = new Response();
     $response->setJSONResponse($responseJSON);
     return $response;
 }