*
* When the api is only doing a $bao::del then use this if api::del doesn't exist it will try DAO delete method.
*
- * @param string $bao_name
+ * @param string|CRM_Core_DAO $bao_name
* @param array $params
*
* @return array
function _civicrm_api3_basic_delete($bao_name, &$params) {
civicrm_api3_verify_mandatory($params, NULL, ['id']);
_civicrm_api3_check_edit_permissions($bao_name, ['id' => $params['id']]);
- $args = [&$params['id']];
if (method_exists($bao_name, 'del')) {
+ $args = [&$params['id']];
$dao = new $bao_name();
$dao->id = $params['id'];
if ($dao->find()) {
}
throw new API_Exception('Could not delete entity id ' . $params['id']);
}
- elseif (method_exists($bao_name, 'delete')) {
- $dao = new $bao_name();
- $dao->id = $params['id'];
- if ($dao->find()) {
- while ($dao->fetch()) {
- $dao->delete();
- return civicrm_api3_create_success();
- }
- }
- else {
- throw new API_Exception('Could not delete entity id ' . $params['id']);
- }
+ else {
+ $bao_name::deleteRecord($params);
+ return civicrm_api3_create_success();
}
-
- throw new API_Exception('no delete method found');
}
/**