X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=api%2Fv3%2FCase.php;h=d595f23ac9ab97fdaf7a4460301030997b1d8dd5;hb=c90a093af5607c80a76a7af50f76d2c1d5bf4f37;hp=856b335a4e64780d9d19e0e0159d9fe059baa614;hpb=f0985b2635377b0e02d204d5adf872fce4997758;p=civicrm-core.git diff --git a/api/v3/Case.php b/api/v3/Case.php index 856b335a4e..d595f23ac9 100644 --- a/api/v3/Case.php +++ b/api/v3/Case.php @@ -2,9 +2,9 @@ /* +--------------------------------------------------------------------+ - | CiviCRM version 4.3 | + | 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 * */ @@ -146,6 +146,10 @@ function _civicrm_api3_case_create_spec(&$params) { $params['contact_id']['title'] = 'Case Client'; $params['contact_id']['api.required'] = 1; $params['status_id']['api.default'] = 1; + $params['medium_id'] = array( + 'name' => 'medium_id', + 'title' => 'Activity Medium', + ); } /** @@ -186,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(); @@ -261,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'); } /** @@ -301,7 +298,7 @@ function civicrm_api3_case_update($params) { // get original contact id and creator id of case if (!empty($params['contact_id'])) { - $origContactIds = CRM_Case_BAO_Case::retrieveContactIdsByCaseId($params['case_id']); + $origContactIds = CRM_Case_BAO_Case::retrieveContactIdsByCaseId($params['id']); $origContactId = $origContactIds[1]; } @@ -322,7 +319,7 @@ function civicrm_api3_case_update($params) { } if (!empty($mCaseId[0])) { - $params['case_id'] = $mCaseId[0]; + $params['id'] = $mCaseId[0]; } $dao = new CRM_Case_BAO_Case();