Return false if delete unsuccessful
authorColeman Watts <coleman@civicrm.org>
Wed, 27 Mar 2013 17:37:02 +0000 (10:37 -0700)
committerColeman Watts <coleman@civicrm.org>
Wed, 27 Mar 2013 17:37:02 +0000 (10:37 -0700)
CRM/Contact/BAO/Contact.php
CRM/Core/BAO/Address.php
CRM/Core/BAO/Email.php
CRM/Core/BAO/IM.php
CRM/Core/BAO/OpenID.php
CRM/Core/BAO/Phone.php
CRM/Core/BAO/Website.php
api/v3/utils.php

index 723745e3973579e0141e248e8bb69f5956739a3e..cfd2fb10cace58711a47a5725c3fd3b909560dcc 100644 (file)
@@ -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;
   }
 }
index fba41e28d3a9f92937c19072fe2e076d7ab4d8a3..23ecb75ebdf3c3a5758672ed5b73a97f401a1682 100644 (file)
@@ -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);
   }
 }
index 6de62fdcead70523eba8169d20907f89c565fdef..bd99c13940c3c6209dbdf242de7ba674386f89e5 100644 (file)
@@ -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);
   }
 }
 
index a20f81541ca4377ef8f597255d7f183176f39823..20561926fda87c9de0d58437aba08626c56a4bba 100644 (file)
@@ -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);
   }
 }
 
index 4ece5a75a902bd3326d6e02ddf6887975149ba5c..eae3f9017d5d184c3428e033bd308af2001fa393 100644 (file)
@@ -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);
   }
 }
 
index a514671e193f4532b58530796ea07843df451167..14572de4e2d1a81a5058688c54ebb76d154d0218 100644 (file)
@@ -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);
   }
 }
 
index 7dab7a17285416a4cdecccb4929ebaa84ce3458c..42e6406e892ca2868cec3f89a2a75295fb41bc19 100644 (file)
@@ -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;
   }
 
   /**
index 5db195396df6bd5ccea1d81dd87f48cbc7f9e898..e1d468d714259f2a7ff7193429a40ff56516dffc 100644 (file)
@@ -134,8 +134,7 @@ function civicrm_api3_verify_mandatory($params, $daoName = NULL, $keys = array(
  *
  * @return <type>
  */
-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();