CRM-16701 - Fix in cleanup result values of SavedSearch API.
authorJohan Vervloet <johanv@johanv.org>
Mon, 22 Jun 2015 10:55:43 +0000 (12:55 +0200)
committerJohan Vervloet <johanv@johanv.org>
Mon, 22 Jun 2015 10:55:43 +0000 (12:55 +0200)
If there are no result values (e.g. for a getCount operation), the
API should not try to unserialize the form_values fields of the
result values.

----------------------------------------
* CRM-16701: Create API for saved searches
  https://issues.civicrm.org/jira/browse/CRM-16701

api/v3/SavedSearch.php

index d7708498dc2d67742ce5eb1e805009cb9480740c..7307c71d02f54874eb0646ffae5b9bdec08ec118 100644 (file)
@@ -99,7 +99,11 @@ function civicrm_api3_saved_search_get($params) {
  * @param array $result API result to be cleaned up.
  */
 function _civicrm_api3_saved_search_result_cleanup(&$result) {
-  foreach ($result['values'] as $key => $value) {
-    $result['values'][$key]['form_values'] = unserialize($value['form_values']);
+  // Only clean up the values if there are values. (A getCount operation
+  // for example does not return values.)
+  if (isset($result['values'])) {
+    foreach ($result['values'] as $key => $value) {
+      $result['values'][$key]['form_values'] = unserialize($value['form_values']);
+    }
   }
 }