X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=api%2Fv3%2FCaseType.php;h=3caa7fba6d3a06f2d4e637851d88600e7559542c;hb=f9c24859fea3ff56f151c2d0d712407eaaf2b74d;hp=9cdcbc8a00e2e65aac6545c9355e18b29802944e;hpb=d1ae16d11c8eaf40d7489f4a2d4605ef2f7c607c;p=civicrm-core.git diff --git a/api/v3/CaseType.php b/api/v3/CaseType.php index 9cdcbc8a00..3caa7fba6d 100644 --- a/api/v3/CaseType.php +++ b/api/v3/CaseType.php @@ -27,22 +27,7 @@ */ function civicrm_api3_case_type_create($params) { civicrm_api3_verify_mandatory($params, _civicrm_api3_get_DAO(__FUNCTION__)); - // Computed properties. - unset($params['is_forkable']); - unset($params['is_forked']); - if (!array_key_exists('is_active', $params) && empty($params['id'])) { - $params['is_active'] = TRUE; - } - // This is an existing case-type. - if (!empty($params['id']) && isset($params['definition']) - // which is not yet forked - && !CRM_Case_BAO_CaseType::isForked($params['id']) - // for which new forks are prohibited - && !CRM_Case_BAO_CaseType::isForkable($params['id']) - ) { - unset($params['definition']); - } $result = _civicrm_api3_basic_create(_civicrm_api3_get_BAO(__FUNCTION__), $params, 'CaseType'); return _civicrm_api3_case_type_get_formatResult($result); } @@ -76,16 +61,9 @@ function civicrm_api3_case_type_get($params) { */ function _civicrm_api3_case_type_get_formatResult(&$result, $options = []) { foreach ($result['values'] as $key => &$caseType) { - if (!empty($caseType['definition'])) { - list($xml) = CRM_Utils_XML::parseString($caseType['definition']); - $caseType['definition'] = $xml ? CRM_Case_BAO_CaseType::convertXmlToDefinition($xml) : []; - } - else { - if (empty($options['return']) || !empty($options['return']['definition'])) { - $caseTypeName = (isset($caseType['name'])) ? $caseType['name'] : CRM_Core_DAO::getFieldValue('CRM_Case_DAO_CaseType', $caseType['id'], 'name', 'id', TRUE); - $xml = CRM_Case_XMLRepository::singleton()->retrieve($caseTypeName); - $caseType['definition'] = $xml ? CRM_Case_BAO_CaseType::convertXmlToDefinition($xml) : []; - } + if (!empty($caseType['definition']) || empty($options['return']) || !empty($options['return']['definition'])) { + $caseType += ['definition' => NULL]; + CRM_Case_BAO_CaseType::formatOutputDefinition($caseType['definition'], $caseType); } $caseType['is_forkable'] = CRM_Case_BAO_CaseType::isForkable($caseType['id']); $caseType['is_forked'] = CRM_Case_BAO_CaseType::isForked($caseType['id']);