projects
/
civicrm-core.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge pull request #3679 from yashodha/CRM-14951
[civicrm-core.git]
/
api
/
v3
/
Activity.php
diff --git
a/api/v3/Activity.php
b/api/v3/Activity.php
index 9c2e9ec0824591fab4578950cec9fe20216bb1fb..c7d033ec6a7face4fe37a68cd638ff51288be445 100644
(file)
--- a/
api/v3/Activity.php
+++ b/
api/v3/Activity.php
@@
-3,9
+3,9
@@
/*
+--------------------------------------------------------------------+
/*
+--------------------------------------------------------------------+
- | CiviCRM version 4.
4
|
+ | CiviCRM version 4.
5
|
+--------------------------------------------------------------------+
+--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-201
3
|
+ | Copyright CiviCRM LLC (c) 2004-201
4
|
+--------------------------------------------------------------------+
| This file is a part of CiviCRM. |
| |
+--------------------------------------------------------------------+
| This file is a part of CiviCRM. |
| |
@@
-32,7
+32,7
@@
*
* @package CiviCRM_APIv3
* @subpackage API_Activity
*
* @package CiviCRM_APIv3
* @subpackage API_Activity
- * @copyright CiviCRM LLC (c) 2004-201
3
+ * @copyright CiviCRM LLC (c) 2004-201
4
* @version $Id: Activity.php 30486 2010-11-02 16:12:09Z shot $
*
*/
* @version $Id: Activity.php 30486 2010-11-02 16:12:09Z shot $
*
*/
@@
-41,16
+41,16
@@
/**
* Creates or updates an Activity. See the example for usage
*
/**
* Creates or updates an Activity. See the example for usage
*
- * @param array
$params
Associative array of property name/value
+ * @param array
$params
Associative array of property name/value
* pairs for the activity.
* {@getfields activity_create}
*
* pairs for the activity.
* {@getfields activity_create}
*
+ * @throws API_Exception
* @return array Array containing 'is_error' to denote success or failure and details of the created activity
*
* @example ActivityCreate.php Standard create example
* @example Activity/ContactRefCustomField.php Create example including setting a contact reference custom field
* {@example ActivityCreate.php 0}
* @return array Array containing 'is_error' to denote success or failure and details of the created activity
*
* @example ActivityCreate.php Standard create example
* @example Activity/ContactRefCustomField.php Create example including setting a contact reference custom field
* {@example ActivityCreate.php 0}
- *
*/
function civicrm_api3_activity_create($params) {
*/
function civicrm_api3_activity_create($params) {
@@
-64,8
+64,6
@@
function civicrm_api3_activity_create($params) {
);
}
);
}
- $errors = array();
-
// check for various error and required conditions
// note that almost all the processing in there should be managed by the wrapper layer
// & should be removed - needs testing
// check for various error and required conditions
// note that almost all the processing in there should be managed by the wrapper layer
// & should be removed - needs testing
@@
-79,7
+77,7
@@
function civicrm_api3_activity_create($params) {
// processing for custom data
// processing for custom data
- $values = array();
+ $values =
$activityArray =
array();
_civicrm_api3_custom_format_params($params, $values, 'Activity');
if (!empty($values['custom'])) {
_civicrm_api3_custom_format_params($params, $values, 'Activity');
if (!empty($values['custom'])) {
@@
-104,14
+102,17
@@
function civicrm_api3_activity_create($params) {
CRM_Activity_BAO_Activity::retrieve($oldActivityParams, $oldActivityValues);
}
if (empty($oldActivityValues)) {
CRM_Activity_BAO_Activity::retrieve($oldActivityParams, $oldActivityValues);
}
if (empty($oldActivityValues)) {
-
return civicrm_api3_create_error(ts("Unable to locate existing activity."), NULL, CRM_Core_DAO::$_nullObject
);
+
throw new API_Exception(ts("Unable to locate existing activity.")
);
}
else {
$activityDAO = new CRM_Activity_DAO_Activity();
$activityDAO->id = $params['id'];
$activityDAO->is_current_revision = 0;
if (!$activityDAO->save()) {
}
else {
$activityDAO = new CRM_Activity_DAO_Activity();
$activityDAO->id = $params['id'];
$activityDAO->is_current_revision = 0;
if (!$activityDAO->save()) {
- return civicrm_api3_create_error(ts("Unable to revision existing case activity."), NULL, $activityDAO);
+ if (is_object($activityDAO)) {
+ $activityDAO->free();
+ }
+ throw new API_Exception(ts("Unable to revision existing case activity."));
}
$createRevision = TRUE;
}
}
$createRevision = TRUE;
}
@@
-154,7
+155,7
@@
function civicrm_api3_activity_create($params) {
$params['original_id'] = empty($oldActivityValues['original_id']) ? $oldActivityValues['id'] : $oldActivityValues['original_id'];
}
else {
$params['original_id'] = empty($oldActivityValues['original_id']) ? $oldActivityValues['id'] : $oldActivityValues['original_id'];
}
else {
-
return civicrm_api3_create_error(ts("Unable to create new revision of case activity."), NULL, CRM_Core_DAO::$_nullObject
);
+
throw new API_Exception(ts("Unable to create new revision of case activity.")
);
}
}
}
}
@@
-232,6
+233,10
@@
function civicrm_api3_activity_get($params) {
else {
$activities = _civicrm_api3_basic_get(_civicrm_api3_get_BAO(__FUNCTION__), $params, FALSE);
}
else {
$activities = _civicrm_api3_basic_get(_civicrm_api3_get_BAO(__FUNCTION__), $params, FALSE);
}
+ $options = _civicrm_api3_get_options_from_params($params, FALSE,'activity','get');
+ if($options['is_count']) {
+ return civicrm_api3_create_success($activities, $params, 'activity', 'get');
+ }
$activities = _civicrm_api3_activity_get_formatResult($params, $activities);
//legacy custom data get - so previous formatted response is still returned too
$activities = _civicrm_api3_activity_get_formatResult($params, $activities);
//legacy custom data get - so previous formatted response is still returned too
@@
-287,9
+292,9
@@
function _civicrm_api3_activity_get_formatResult($params, $activities) {
}
if (!empty($activities) && (!empty($returnProperties) || !empty($params['contact_id']))) {
foreach ($activities as $activityId => $values) {
}
if (!empty($activities) && (!empty($returnProperties) || !empty($params['contact_id']))) {
foreach ($activities as $activityId => $values) {
- _civicrm_api3_custom_data_get($activities[$activityId], 'Activity', $activityId, NULL, $values['activity_type_id']);
+ //@todo - should possibly load activity type id if not loaded (update with id)
+ _civicrm_api3_custom_data_get($activities[$activityId], 'Activity', $activityId, NULL, CRM_Utils_Array::value('activity_type_id', $values));
}
}
- return $activities;
}
return $activities;
}
}
return $activities;
}
@@
-301,6
+306,7
@@
function _civicrm_api3_activity_get_formatResult($params, $activities) {
* @param array $params array holding 'id' of activity to be deleted
* {@getfields activity_delete}
*
* @param array $params array holding 'id' of activity to be deleted
* {@getfields activity_delete}
*
+ * @throws API_Exception
* @return void|CRM_Core_Error An error if 'activityName or ID' is invalid,
* permissions are insufficient, etc. or CiviCRM success array
*
* @return void|CRM_Core_Error An error if 'activityName or ID' is invalid,
* permissions are insufficient, etc. or CiviCRM success array
*
@@
-308,7
+314,6
@@
function _civicrm_api3_activity_get_formatResult($params, $activities) {
*
* @example ActivityDelete.php Standard Delete Example
*
*
* @example ActivityDelete.php Standard Delete Example
*
- *
*/
function civicrm_api3_activity_delete($params) {
*/
function civicrm_api3_activity_delete($params) {
@@
-316,15
+321,18
@@
function civicrm_api3_activity_delete($params) {
return civicrm_api3_create_success(1, $params, 'activity', 'delete');
}
else {
return civicrm_api3_create_success(1, $params, 'activity', 'delete');
}
else {
-
return civicrm_api3_create_error
('Could not delete activity');
+
throw new API_Exception
('Could not delete activity');
}
}
/**
* Function to check for required params
*
}
}
/**
* Function to check for required params
*
- * @param array $params associated array of fields
- * @param boolean $addMode true for add mode
+ * @param array $params associated array of fields
+ *
+ * @throws API_Exception
+ * @throws Exception
+ * @internal param bool $addMode true for add mode
*
* @return array $error array with errors
*/
*
* @return array $error array with errors
*/
@@
-363,7
+371,7
@@
SELECT count(*)
FROM civicrm_contact
WHERE id IN (' . implode(', ', $contactIds) . ' )';
if (count($contactIds) != CRM_Core_DAO::singleValueQuery($sql)) {
FROM civicrm_contact
WHERE id IN (' . implode(', ', $contactIds) . ' )';
if (count($contactIds) != CRM_Core_DAO::singleValueQuery($sql)) {
-
return civicrm_api3_create_error
('Invalid ' . ' Contact Id');
+
throw new API_Exception
('Invalid ' . ' Contact Id');
}
}
}
}
@@
-377,7
+385,7
@@
SELECT count(*)
if ($value &&
!CRM_Core_DAO::getFieldValue('CRM_Activity_DAO_Activity', $value, 'id')
) {
if ($value &&
!CRM_Core_DAO::getFieldValue('CRM_Activity_DAO_Activity', $value, 'id')
) {
-
return civicrm_api3_create_error
('Invalid ' . ucfirst($id) . ' Id');
+
throw new API_Exception
('Invalid ' . ucfirst($id) . ' Id');
}
}
// this should be handled by wrapper layer & probably the api would already manage it
}
}
// this should be handled by wrapper layer & probably the api would already manage it
@@
-401,21
+409,21
@@
SELECT count(*)
throw new Exception($errorString);
}
elseif ($activityTypeId && ($activityTypeId != $activityTypeIdInList)) {
throw new Exception($errorString);
}
elseif ($activityTypeId && ($activityTypeId != $activityTypeIdInList)) {
-
return civicrm_api3_create_error
('Mismatch in Activity');
+
throw new API_Exception
('Mismatch in Activity');
}
$params['activity_type_id'] = $activityTypeIdInList;
}
elseif ($activityTypeId &&
!array_key_exists($activityTypeId, $activityTypes)
) {
}
$params['activity_type_id'] = $activityTypeIdInList;
}
elseif ($activityTypeId &&
!array_key_exists($activityTypeId, $activityTypes)
) {
-
return civicrm_api3_create_error
('Invalid Activity Type ID');
+
throw new API_Exception
('Invalid Activity Type ID');
}
// check for activity duration minutes
// this should be validated @ the wrapper layer not here
// needs testing
if (isset($params['duration_minutes']) && !is_numeric($params['duration_minutes'])) {
}
// check for activity duration minutes
// this should be validated @ the wrapper layer not here
// needs testing
if (isset($params['duration_minutes']) && !is_numeric($params['duration_minutes'])) {
-
return civicrm_api3_create_error
('Invalid Activity Duration (in minutes)');
+
throw new API_Exception
('Invalid Activity Duration (in minutes)');
}
}