api_v3_CaseType - Tweak edge cases
authorTim Otten <totten@civicrm.org>
Tue, 3 Jun 2014 04:21:05 +0000 (21:21 -0700)
committerTim Otten <totten@civicrm.org>
Tue, 3 Jun 2014 06:19:19 +0000 (23:19 -0700)
CRM/Case/BAO/CaseType.php
api/v3/CaseType.php

index 2fef389b8bc3056dc8428e25ee8635da4ac06b40..00e0547e97855ff04c5ec4acd52db4927aa1af88 100644 (file)
@@ -72,7 +72,9 @@ class CRM_Case_BAO_CaseType extends CRM_Case_DAO_CaseType {
     }
 
     // function to format definition column
-    $params['definition'] = self::convertDefinitionToXML($params['name'], $params['definition']);
+    if (isset($params['definition']) && is_array($params['definition'])) {
+      $params['definition'] = self::convertDefinitionToXML($params['name'], $params['definition']);
+    }
 
     $caseTypeDAO->copyValues($params);
     return $caseTypeDAO->save();
index ed2aa8c0b67531ee8d783508a7befa2dcec4052c..d046c5a20cf4f5245a8f979c591cec84dd4bea26 100644 (file)
@@ -83,10 +83,12 @@ function civicrm_api3_case_type_get($params) {
  */
 function _civicrm_api3_case_type_get_formatResult(&$result) {
   foreach ($result['values'] as $key => $caseType) {
-    $definition = CRM_Case_BAO_CaseType::convertXmlToDefinition(
-      CRM_Case_XMLRepository::singleton()->retrieve($caseType['name'])
-    );
-    $result['values'][$key]['definition'] = $definition;
+    $xml = CRM_Case_XMLRepository::singleton()->retrieve($caseType['name']);
+    if ($xml) {
+      $result['values'][$key]['definition'] = CRM_Case_BAO_CaseType::convertXmlToDefinition($xml);
+    } else {
+      $result['values'][$key]['definition'] = array();
+    }
   }
   return $result;
 }