/**
  * runs when the API is called with "specialclicktracking", takes in "startdate" and "enddate" as YYYYMMDD , "eventid" as the event ID,
  *     and "increment" as how many days to increment
  * @see includes/api/ApiBase#execute()
  */
 public function execute()
 {
     $params = $this->extractRequestParams();
     $this->validateParams($params);
     $event_id = $params['eventid'];
     $startdate = $params['startdate'];
     $enddate = $params['enddate'];
     $increment = $params['increment'];
     $userDefString = $params['userdefs'];
     // this is if it's asking for tableData
     if (isset($params['tabledata'])) {
         $tableData = SpecialClickTracking::buildRowArray($startdate, $enddate, $userDefString);
         $this->getResult()->addValue(array('tablevals'), 'vals', $tableData);
     } else {
         // chart data
         $click_data = array();
         try {
             $click_data = SpecialClickTracking::getChartData($event_id, $startdate, $enddate, $increment, $userDefString);
             $this->getResult()->addValue(array('datapoints'), 'expert', $click_data['expert']);
             $this->getResult()->addValue(array('datapoints'), 'basic', $click_data['basic']);
             $this->getResult()->addValue(array('datapoints'), 'intermediate', $click_data['intermediate']);
         } catch (Exception $e) {
             /* no result */
         }
     }
 }