Merge pull request #2753 from fuzionnz/CRM-14394
[civicrm-core.git] / api / v3 / Participant.php
index aa1daa8af1ca8f8b4fe7e95ebebddf6031bb70f1..a84a8070428a93dfff7c09861a66fd66950e2f0d 100644 (file)
@@ -138,35 +138,15 @@ function _civicrm_api3_participant_create_spec(&$params) {
  * @access public
  */
 function civicrm_api3_participant_get($params) {
+  $mode = CRM_Contact_BAO_Query::MODE_EVENT;
+  $entity = 'participant';
 
-  $options          = _civicrm_api3_get_options_from_params($params, TRUE,'participant','get');
-  $sort             = CRM_Utils_Array::value('sort', $options, NULL);
-  $offset           = CRM_Utils_Array::value('offset', $options);
-  $rowCount         = CRM_Utils_Array::value('limit', $options);
-  $smartGroupCache  = CRM_Utils_Array::value('smartGroupCache', $params);
-  $inputParams      = CRM_Utils_Array::value('input_params', $options, array());
-  $returnProperties = CRM_Utils_Array::value('return', $options, NULL);
-
-  if (empty($returnProperties)) {
-    $returnProperties = CRM_Event_BAO_Query::defaultReturnProperties(CRM_Contact_BAO_Query::MODE_EVENT);
-  }
-  $newParams = CRM_Contact_BAO_Query::convertFormValues($inputParams);
-  $query = new CRM_Contact_BAO_Query($newParams, $returnProperties, NULL,
-    FALSE, FALSE, CRM_Contact_BAO_Query::MODE_EVENT
-  );
-  list($select, $from, $where, $having) = $query->query();
-
-  $sql = "$select $from $where $having";
-
-  if (!empty($sort)) {
-    $sql .= " ORDER BY $sort ";
-  }
-  $sql .= " LIMIT $offset, $rowCount ";
-  $dao = CRM_Core_DAO::executeQuery($sql);
+  list($dao, $query) = _civicrm_api3_get_query_object($params, $mode, $entity);
 
   $participant = array();
   while ($dao->fetch()) {
     $participant[$dao->participant_id] = $query->store($dao);
+    //@todo - is this required - contribution & pledge use the same query but don't self-retrieve custom data
     _civicrm_api3_custom_data_get($participant[$dao->participant_id], 'Participant', $dao->participant_id, NULL);
   }