Merge pull request #3179 from webpartners/master
[civicrm-core.git] / api / v3 / CaseType.php
index e3a137c47aad33cf04efe7fb066355ca8c5ca5eb..d046c5a20cf4f5245a8f979c591cec84dd4bea26 100644 (file)
@@ -50,9 +50,9 @@
  * @access public
  */
 function civicrm_api3_case_type_create($params) {
-  civicrm_api3_verify_mandatory($params, _civicrm_api3_get_DAO(__FUNCTION__), array('name'));
+  civicrm_api3_verify_mandatory($params, _civicrm_api3_get_DAO(__FUNCTION__));
 
-  if (!array_key_exists('is_active', $params) && !empty($params['id'])) {
+  if (!array_key_exists('is_active', $params) && empty($params['id'])) {
     $params['is_active'] = TRUE;
   }
   return _civicrm_api3_basic_create(_civicrm_api3_get_BAO(__FUNCTION__), $params, 'CaseType');
@@ -62,13 +62,35 @@ function civicrm_api3_case_type_create($params) {
 /**
  * Function to retrieve case types
  *
+ * @param $params
+ *
  * @return array $caseTypes case types keyed by id
  * @access public
- *
  */
 function civicrm_api3_case_type_get($params) {
   civicrm_api3_verify_mandatory($params);
-  return _civicrm_api3_basic_get(_civicrm_api3_get_BAO(__FUNCTION__), $params);
+  $caseTypes = _civicrm_api3_basic_get(_civicrm_api3_get_BAO(__FUNCTION__), $params);
+
+  // format case type, to fetch xml definition
+  return _civicrm_api3_case_type_get_formatResult($caseTypes);
+}
+
+/**
+ * Function to format definition
+ *
+ * @param $caseTypes
+ * @return mixed
+ */
+function _civicrm_api3_case_type_get_formatResult(&$result) {
+  foreach ($result['values'] as $key => $caseType) {
+    $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;
 }
 
 /**