/**
  * @param string $urlKey
  * @param string $data
  * @param array $urlReplacements
  * @param array $queryParams
  * @return CloseIoRequest
  * @throws InvalidParamException
  */
 protected function prepareRequest($urlKey, $data = null, array $urlReplacements = [], array $queryParams = [])
 {
     $this->apiRequest->clear();
     $this->apiRequest->setData($data);
     $this->apiRequest->setUrl($this->apiHandler->getConfig()->getUrl());
     $url = $this->prepareUrlForKey($urlKey, $urlReplacements);
     if (!empty($queryParams)) {
         $url .= '?' . http_build_query($queryParams);
     }
     $this->apiRequest->setUrl($this->getUrlPrefix() . $url);
     return $this->apiRequest;
 }
 /**
  * @param ApiHandler $apiHandler
  */
 public function __construct(ApiHandler $apiHandler)
 {
     $config = $apiHandler->getConfig();
     $this->url = $config->getUrl();
     $this->apiKey = $config->getApiKey();
 }
 /**
  * @return ActivityApi
  * @throws Library\Exception\ApiNotFoundException
  */
 public function getActivitiesApi()
 {
     return $this->apiHandler->getApi(ActivityApi::NAME);
 }
 /**
  * @return OpportunityApi
  * @throws Library\Exception\ApiNotFoundException
  */
 public function getOpportunityApi()
 {
     return $this->apiHandler->getApi(OpportunityApi::NAME);
 }