From a65e2e55464fe88959ec19a1b91b97e9297545ad Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Wed, 27 Mar 2013 10:37:02 -0700 Subject: [PATCH] Return false if delete unsuccessful --- CRM/Contact/BAO/Contact.php | 5 +++-- CRM/Core/BAO/Address.php | 2 +- CRM/Core/BAO/Email.php | 2 +- CRM/Core/BAO/IM.php | 2 +- CRM/Core/BAO/OpenID.php | 2 +- CRM/Core/BAO/Phone.php | 2 +- CRM/Core/BAO/Website.php | 2 ++ api/v3/utils.php | 8 +++++--- 8 files changed, 15 insertions(+), 10 deletions(-) diff --git a/CRM/Contact/BAO/Contact.php b/CRM/Contact/BAO/Contact.php index 723745e397..cfd2fb10ca 100644 --- a/CRM/Contact/BAO/Contact.php +++ b/CRM/Contact/BAO/Contact.php @@ -2986,7 +2986,7 @@ LEFT JOIN civicrm_address add2 ON ( add1.master_id = add2.id ) */ public static function deleteObjectWithPrimary($type, $id) { if (!$id || !is_numeric($id)) { - return false; + return FALSE; } $daoName = "CRM_Core_DAO_$type"; $obj = new $daoName(); @@ -2998,7 +2998,7 @@ LEFT JOIN civicrm_address add2 ON ( add1.master_id = add2.id ) $obj->delete(); } else { - return false; + return FALSE; } $dao = new $daoName(); $dao->contact_id = $contactId; @@ -3015,5 +3015,6 @@ LEFT JOIN civicrm_address add2 ON ( add1.master_id = add2.id ) $dao->free(); CRM_Utils_Hook::post('delete', $type, $id, $obj); $obj->free(); + return TRUE; } } diff --git a/CRM/Core/BAO/Address.php b/CRM/Core/BAO/Address.php index fba41e28d3..23ecb75ebd 100644 --- a/CRM/Core/BAO/Address.php +++ b/CRM/Core/BAO/Address.php @@ -1135,6 +1135,6 @@ SELECT is_primary, * Call common delete function */ static function del($id) { - CRM_Contact_BAO_Contact::deleteObjectWithPrimary('Address', $id); + return CRM_Contact_BAO_Contact::deleteObjectWithPrimary('Address', $id); } } diff --git a/CRM/Core/BAO/Email.php b/CRM/Core/BAO/Email.php index 6de62fdcea..bd99c13940 100644 --- a/CRM/Core/BAO/Email.php +++ b/CRM/Core/BAO/Email.php @@ -311,7 +311,7 @@ AND reset_date IS NULL * Call common delete function */ static function del($id) { - CRM_Contact_BAO_Contact::deleteObjectWithPrimary('Email', $id); + return CRM_Contact_BAO_Contact::deleteObjectWithPrimary('Email', $id); } } diff --git a/CRM/Core/BAO/IM.php b/CRM/Core/BAO/IM.php index a20f81541c..20561926fd 100644 --- a/CRM/Core/BAO/IM.php +++ b/CRM/Core/BAO/IM.php @@ -171,7 +171,7 @@ ORDER BY cim.is_primary DESC, im_id ASC "; * Call common delete function */ static function del($id) { - CRM_Contact_BAO_Contact::deleteObjectWithPrimary('IM', $id); + return CRM_Contact_BAO_Contact::deleteObjectWithPrimary('IM', $id); } } diff --git a/CRM/Core/BAO/OpenID.php b/CRM/Core/BAO/OpenID.php index 4ece5a75a9..eae3f9017d 100644 --- a/CRM/Core/BAO/OpenID.php +++ b/CRM/Core/BAO/OpenID.php @@ -145,7 +145,7 @@ ORDER BY * Call common delete function */ static function del($id) { - CRM_Contact_BAO_Contact::deleteObjectWithPrimary('OpenID', $id); + return CRM_Contact_BAO_Contact::deleteObjectWithPrimary('OpenID', $id); } } diff --git a/CRM/Core/BAO/Phone.php b/CRM/Core/BAO/Phone.php index a514671e19..14572de4e2 100644 --- a/CRM/Core/BAO/Phone.php +++ b/CRM/Core/BAO/Phone.php @@ -252,7 +252,7 @@ ORDER BY ph.is_primary DESC, phone_id ASC "; * Call common delete function */ static function del($id) { - CRM_Contact_BAO_Contact::deleteObjectWithPrimary('Phone', $id); + return CRM_Contact_BAO_Contact::deleteObjectWithPrimary('Phone', $id); } } diff --git a/CRM/Core/BAO/Website.php b/CRM/Core/BAO/Website.php index 7dab7a1728..42e6406e89 100644 --- a/CRM/Core/BAO/Website.php +++ b/CRM/Core/BAO/Website.php @@ -120,6 +120,8 @@ class CRM_Core_BAO_Website extends CRM_Core_DAO_Website { static function del($ids) { $query = 'DELETE FROM civicrm_website WHERE id IN ( ' . implode(',', $ids) . ')'; CRM_Core_DAO::executeQuery($query); + // FIXME: we should return false if the del was unsuccessful + return TRUE; } /** diff --git a/api/v3/utils.php b/api/v3/utils.php index 5db195396d..e1d468d714 100644 --- a/api/v3/utils.php +++ b/api/v3/utils.php @@ -134,8 +134,7 @@ function civicrm_api3_verify_mandatory($params, $daoName = NULL, $keys = array( * * @return */ -function civicrm_api3_create_error($msg, $data = array( - ), &$dao = NULL) { +function civicrm_api3_create_error($msg, $data = array(), &$dao = NULL) { //fix me - $dao should be param 4 & 3 should be $apiRequest if (is_object($dao)) { $dao->free(); @@ -989,7 +988,10 @@ function _civicrm_api3_basic_delete($bao_name, &$params) { $args = array(&$params['id']); if (method_exists($bao_name, 'del')) { $bao = call_user_func_array(array($bao_name, 'del'), $args); - return civicrm_api3_create_success(TRUE); + if ($bao !== FALSE) { + return civicrm_api3_create_success(TRUE); + } + return civicrm_api3_create_error('Could not delete entity id ' . $params['id']); } elseif (method_exists($bao_name, 'delete')) { $dao = new $bao_name(); -- 2.25.1