X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=api%2Fv3%2FCase.php;h=d595f23ac9ab97fdaf7a4460301030997b1d8dd5;hb=61ac5f959d775677c6eadffed193fde1d815eac4;hp=063d6de4f3262a5f9c517b699111508ab3c3d714;hpb=d0cb7e8ce9933e5db71aaec2ccacbf08860387f6;p=civicrm-core.git diff --git a/api/v3/Case.php b/api/v3/Case.php index 063d6de4f3..d595f23ac9 100644 --- a/api/v3/Case.php +++ b/api/v3/Case.php @@ -2,9 +2,9 @@ /* +--------------------------------------------------------------------+ - | CiviCRM version 4.4 | + | CiviCRM version 4.5 | +--------------------------------------------------------------------+ - | Copyright CiviCRM LLC (c) 2004-2013 | + | Copyright CiviCRM LLC (c) 2004-2014 | +--------------------------------------------------------------------+ | This file is a part of CiviCRM. | | | @@ -32,7 +32,7 @@ * * @package CiviCRM_APIv3 * @subpackage API_Case - * @copyright CiviCRM LLC (c) 2004-2013 + * @copyright CiviCRM LLC (c) 2004-2014 * */ @@ -190,31 +190,8 @@ function _civicrm_api3_case_delete_spec(&$params) { * @todo Erik Hommel 16 dec 2010 check if all DB fields are returned */ function civicrm_api3_case_get($params) { - civicrm_api3_verify_mandatory($params, NULL, array( - array('case_id', 'contact_id', 'activity_id', 'contact_id') - )); - $options = _civicrm_api3_get_options_from_params($params); - // Get by id - $caseId = CRM_Utils_Array::value('id', $params); - if ($caseId) { - // Validate param - if (!is_numeric($caseId)) { - return civicrm_api3_create_error('Invalid parameter: case_id. Must provide a numeric value.'); - } - // For historic reasons we always return these when an id is provided - $options['return'] = array('contacts' => 1, 'activities' => 1); - $case = _civicrm_api3_case_read($caseId, $options); - - if ($case) { - return civicrm_api3_create_success(array($caseId => $case), $params, 'case', 'get'); - } - else { - return civicrm_api3_create_success(array(), $params, 'case', 'get'); - } - } - //search by client if (!empty($params['contact_id'])) { $ids = array(); @@ -265,6 +242,22 @@ SELECT DISTINCT case_id } return civicrm_api3_create_success($cases, $params, 'case', 'get'); } + + // For historic reasons we always return these when an id is provided + $caseId = CRM_Utils_Array::value('id', $params); + if ($caseId) { + $options['return'] = array('contacts' => 1, 'activities' => 1); + } + + $foundcases = _civicrm_api3_basic_get(_civicrm_api3_get_BAO(__FUNCTION__), $params, TRUE, 'Case'); + $cases = array(); + foreach ($foundcases['values'] as $foundcase) { + if ($case = _civicrm_api3_case_read($foundcase['id'], $options)) { + $cases[$foundcase['id']] = $case; + } + } + + return civicrm_api3_create_success($cases, $params, 'case', 'get'); } /**