/**
  * Call the API method with profiling.
  *
  * If the API call has been unsuccessful - return only the result value.
  * If the API call has been unsuccessful - add an error message and return false, instead of an array.
  *
  * @param string 	$method
  * @param array 	$params
  *
  * @return mixed
  */
 protected function callMethod($method, array $params)
 {
     API::setWrapper();
     $response = parent::callMethod($method, $params);
     API::setWrapper($this);
     // call profiling
     if ($this->debug) {
         $this->profiler->profileApiCall($this->api, $method, $params, $response->data);
     }
     if (!$response->errorCode) {
         return $response->data;
     } else {
         // add an error message
         $trace = $response->errorMessage;
         if ($response->debug) {
             $trace .= ' [' . $this->profiler->formatCallStack($response->debug) . ']';
         }
         error($trace);
         return false;
     }
 }