CRM-14449 api custom data behaviour - preliminary tidy up
authorEileen McNaughton <eileen@fuzion.co.nz>
Thu, 1 May 2014 01:25:24 +0000 (18:25 -0700)
committerEileen McNaughton <eileen@fuzion.co.nz>
Thu, 1 May 2014 01:25:24 +0000 (18:25 -0700)
CRM/Activity/BAO/Activity.php
CRM/Contact/BAO/Relationship.php
CRM/Contribute/BAO/Contribution.php
CRM/Event/BAO/Participant.php
api/v3/Case.php
api/v3/Grant.php
api/v3/Membership.php
api/v3/utils.php

index dc34ec4cc60de9ff31c7658fe59fc2ea1d59fdee..a8c2a707fcc875097e1ccc816a6abfb0fe70af21 100644 (file)
@@ -283,7 +283,7 @@ class CRM_Activity_BAO_Activity extends CRM_Activity_DAO_Activity {
   public static function create(&$params) {
     // check required params
     if (!self::dataExists($params)) {
-      CRM_Core_Error::fatal('Not enough data to create activity object,');
+      throw new CRM_Core_Exception('Not enough data to create activity object');
     }
 
     $activity = new CRM_Activity_DAO_Activity();
@@ -494,7 +494,9 @@ class CRM_Activity_BAO_Activity extends CRM_Activity_DAO_Activity {
         $t = array_slice($params['target_contact_id'], 0, 1);
         $recentContactId = $t[0];
       }
-      elseif (isset($params['target_contact_id'])) {
+      //is array check fixes warning without degrading functionality but it seems this bit of code may no longer work
+      // as it may always be an array
+      elseif (isset($params['target_contact_id']) && !is_array($params['target_contact_id'])) {
         $msgs[] = "target={$params['target_contact_id']}";
         // will be used for recently viewed display
         $recentContactId = $params['target_contact_id'];
index 42e5cf864d548c6970e8823f4c5dfd9afc40ee13..996b02dd4e9fbb1a45ade33979905622a08bdf00 100644 (file)
@@ -56,7 +56,7 @@ class CRM_Contact_BAO_Relationship extends CRM_Contact_DAO_Relationship {
    */
   static function create(&$params, $ids = array()) {
     $valid = $invalid = $duplicate = $saved = 0;
-    $relationships = array();
+    $relationships = $relationshipIds = array();
     $relationshipId = CRM_Utils_Array::value('relationship', $ids, CRM_Utils_Array::value('id', $params));
     //CRM-9015 - the hooks are called here & in add (since add doesn't call create)
     // but in future should be tidied per ticket
index 3418350d8ec0c68e746d855a88c756a21dcca79d..d4564a378f7fd64a9f6aceb558bd6eda41eea294 100644 (file)
@@ -239,7 +239,7 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution {
    * @access public
    * @static
    */
-  static function &create(&$params, $ids = array()) {
+  static function create(&$params, $ids = array()) {
     $dateFields = array('receive_date', 'cancel_date', 'receipt_date', 'thankyou_date');
     foreach ($dateFields as $df) {
       if (isset($params[$df])) {
index 41b944d9700c61b938253794d369e699d85fe8ae..54cb7295942c832d5d8fa3a5efd35f55ac4ff835 100644 (file)
@@ -192,7 +192,7 @@ class CRM_Event_BAO_Participant extends CRM_Event_DAO_Participant {
    * @access public
    * @static
    */
-  static function &create(&$params) {
+  static function create(&$params) {
 
     $transaction = new CRM_Core_Transaction();
     $status = NULL;
@@ -209,7 +209,7 @@ class CRM_Event_BAO_Participant extends CRM_Event_DAO_Participant {
     }
 
     if ((!CRM_Utils_Array::value('id', $params)) ||
-      ($params['status_id'] != $status)
+      (isset($params['status_id']) && $params['status_id'] != $status)
     ) {
       CRM_Activity_BAO_Activity::addActivity($participant);
     }
index d595f23ac9ab97fdaf7a4460301030997b1d8dd5..04e2d3f8bbd6ef385d755bc006421b2c7e53fb35 100644 (file)
@@ -134,6 +134,7 @@ function civicrm_api3_case_create($params) {
 function _civicrm_api3_case_get_spec(&$params) {
   $params['contact_id']['api.aliases'] = array('client_id');
   $params['contact_id']['title'] = 'Case Client';
+  $params['creator_id']['api.default'] = 'user_contact_id';
 }
 
 /**
@@ -234,7 +235,7 @@ SELECT DISTINCT case_id
  WHERE (contact_id_a = $contact
     OR contact_id_b = $contact)
    AND case_id IS NOT NULL";
-    $dao = &CRM_Core_DAO::executeQuery($sql);
+    $dao = CRM_Core_DAO::executeQuery($sql);
 
     $cases = array();
     while ($dao->fetch()) {
@@ -372,8 +373,11 @@ function civicrm_api3_case_delete($params) {
  *
  * @param int $caseId
  *
- * @return array (reference) case object
+ * @param $params
+ *
+ * @internal param $options
  *
+ * @return array (reference) case object
  */
 function _civicrm_api3_case_read($caseId, $options) {
   $return = CRM_Utils_Array::value('return', $options, array());
@@ -412,13 +416,6 @@ function _civicrm_api3_case_read($caseId, $options) {
  * Internal function to format create params for processing
  */
 function _civicrm_api3_case_format_params(&$params) {
-  if (!array_key_exists('creator_id', $params)) {
-    $session = CRM_Core_Session::singleton();
-    $params['creator_id'] = $session->get('userID');
-  }
-  if (empty($params['start_date'])) {
-    $params['start_date'] = date('YmdHis');
-  }
   // figure out case type id from case type and vice-versa
   $caseTypes = CRM_Case_PseudoConstant::caseType('label', FALSE);
   if (empty($params['case_type_id'])) {
index 52d7a81f0d91c8ea79e511a063bc8733b984f826..a7f0eebda3c95ee08eacac7d706c2fb62af65a67 100644 (file)
  * @access public
  */
 function civicrm_api3_grant_create($params) {
-  $values = array();
-  _civicrm_api3_custom_format_params($params, $values, 'Grant');
-  $params = array_merge($values, $params);
-  return _civicrm_api3_basic_create(_civicrm_api3_get_BAO(__FUNCTION__), $params, 'grant');
+  return _civicrm_api3_basic_create(_civicrm_api3_get_BAO(__FUNCTION__), $params, 'Grant');
 }
 
 /**
@@ -77,7 +74,7 @@ function _civicrm_api3_grant_create_spec(&$params) {
  * @access public
  */
 function civicrm_api3_grant_get($params) {
-  return _civicrm_api3_basic_get(_civicrm_api3_get_BAO(__FUNCTION__), $params);
+  return _civicrm_api3_basic_get(_civicrm_api3_get_BAO(__FUNCTION__), $params, TRUE, 'Grant');
 }
 
 /**
index c9cca2efb0a5d6ff9025c4a599a5fc3da3dadfd4..29b4810f85089113f6cacf670a5006a06a6e3f7e 100644 (file)
@@ -200,7 +200,7 @@ function civicrm_api3_membership_get($params) {
   if ($options['is_count']) {
     return _civicrm_api3_basic_get(_civicrm_api3_get_BAO(__FUNCTION__), $params);
   }
-  $membershipValues = _civicrm_api3_basic_get(_civicrm_api3_get_BAO(__FUNCTION__), $params, FALSE);
+  $membershipValues = _civicrm_api3_basic_get(_civicrm_api3_get_BAO(__FUNCTION__), $params, FALSE, 'Membership');
 
   $return = $options['return'];
   if(empty($membershipValues) ||
index 31c5d626da28e574d3326e3b9c2164e80d13282f..fdebc49a95c763f5731a5a71a1b51541874c91e3 100644 (file)
@@ -711,7 +711,7 @@ function _civicrm_api3_get_options_from_params(&$params, $queryObject = FALSE, $
     'sort' => CRM_Utils_Rule::string($sort) ? $sort : NULL,
     'limit' => CRM_Utils_Rule::integer($limit) ? $limit : NULL,
     'is_count' => $is_count,
-    'return' => !empty($returnProperties) ? $returnProperties : NULL,
+    'return' => !empty($returnProperties) ? $returnProperties : array(),
   );
 
   if ($options['sort'] && stristr($options['sort'], 'SELECT')) {
@@ -993,7 +993,7 @@ function _civicrm_api3_basic_get($bao_name, &$params, $returnAsSuccess = TRUE, $
       return civicrm_api3_create_success(_civicrm_api3_dao_to_array($bao, $params, FALSE, $entity), $params, $entity, 'get');
   }
   else {
-    return _civicrm_api3_dao_to_array($bao, $params, FALSE, $entity);
+    return _civicrm_api3_dao_to_array($bao, $params, FALSE, $entity, 'get');
   }
 }
 
@@ -1125,7 +1125,7 @@ function _civicrm_api3_basic_delete($bao_name, &$params) {
  * @param string $subName - Subtype of entity
  */
 function _civicrm_api3_custom_data_get(&$returnArray, $entity, $entity_id, $groupID = NULL, $subType = NULL, $subName = NULL) {
-  $groupTree = &CRM_Core_BAO_CustomGroup::getTree($entity,
+  $groupTree = CRM_Core_BAO_CustomGroup::getTree($entity,
     CRM_Core_DAO::$_nullObject,
     $entity_id,
     $groupID,