Use CRM_Utils_Array:first() for robustness
authorMatthew Wire <mjw@mjwconsult.co.uk>
Thu, 10 Aug 2017 20:33:12 +0000 (21:33 +0100)
committerMatthew Wire <mjw@mjwconsult.co.uk>
Thu, 10 Aug 2017 20:33:12 +0000 (21:33 +0100)
CRM/Case/BAO/Case.php
api/v3/Case.php

index 2490024ad6c71995b848e9c1fc0f62923cbf2bc7..609c3d3cbab94d43e2a4100224c4b3e6441245c9 100644 (file)
@@ -273,6 +273,7 @@ WHERE civicrm_case.id = %1";
     $caseContact->case_id = $caseId;
     $caseContact->find();
     $contactArray = array();
+    // FIXME: Why does this return a 1-based array?
     $count = 1;
     while ($caseContact->fetch()) {
       if ($contactID != $caseContact->contact_id) {
index c8a0f46b87f0bbd1a73f8a33ebba42a08045235b..b2a2bd9fc0815162659ff82184068f3a3e119937 100644 (file)
@@ -89,10 +89,10 @@ function civicrm_api3_case_create($params) {
 
     // get original contact id and creator id of case
     if (!empty($params['contact_id'])) {
-      // FIXME: CRM_Case_BAO_Case::retrieveContactIdsByCaseId returns a 1-based array (1 is the first element)
-      // It should really return a 0-based array for consistency.
       $origContactIds = CRM_Case_BAO_Case::retrieveContactIdsByCaseId($params['id']);
-      $origContactId = $origContactIds[1];
+      $origContactId = CRM_Utils_Array::first($origContactIds);
+
+
     }
 
     // FIXME: Refactor as separate method to get contactId
@@ -529,7 +529,7 @@ function civicrm_api3_case_update($params) {
   // get original contact id and creator id of case
   if (!empty($params['contact_id'])) {
     $origContactIds = CRM_Case_BAO_Case::retrieveContactIdsByCaseId($params['id']);
-    $origContactId = $origContactIds[1];
+    $origContactId = CRM_Utils_Array::first($origContactIds);
   }
 
   if (count($origContactIds) > 1) {