Remove support for pre-2019 usage of core function
authorEileen McNaughton <emcnaughton@wikimedia.org>
Wed, 20 Dec 2023 00:34:47 +0000 (13:34 +1300)
committerEileen McNaughton <emcnaughton@wikimedia.org>
Wed, 20 Dec 2023 00:38:33 +0000 (13:38 +1300)
CRM/Contribute/BAO/ContributionRecur.php
api/v3/ContributionRecur.php

index 7e7644c15151cb7e5b6e8ca39bfb89633f21119e..e6beb6ca2e45fed16e7fc768a690204d8321a96e 100644 (file)
@@ -275,14 +275,12 @@ class CRM_Contribute_BAO_ContributionRecur extends CRM_Contribute_DAO_Contributi
    *   Recur contribution params
    *
    * @return bool
+   * @throws \CRM_Core_Exception
+   * @internal
+   *
    */
-  public static function cancelRecurContribution($params) {
-    if (is_numeric($params)) {
-      CRM_Core_Error::deprecatedFunctionWarning('You are using a BAO function whose signature has changed. Please use the ContributionRecur.cancel api');
-      $params = ['id' => $params];
-    }
-    $recurId = $params['id'];
-    if (!$recurId) {
+  public static function cancelRecurContribution(array $params): bool {
+    if (!$params['id']) {
       return FALSE;
     }
     $activityParams = [
@@ -292,7 +290,7 @@ class CRM_Contribute_BAO_ContributionRecur extends CRM_Contribute_DAO_Contributi
 
     $cancelledId = CRM_Core_PseudoConstant::getKey('CRM_Contribute_BAO_ContributionRecur', 'contribution_status_id', 'Cancelled');
     $recur = new CRM_Contribute_DAO_ContributionRecur();
-    $recur->id = $recurId;
+    $recur->id = $params['id'];
     $recur->whereAdd("contribution_status_id != $cancelledId");
 
     if ($recur->find(TRUE)) {
@@ -303,7 +301,7 @@ class CRM_Contribute_BAO_ContributionRecur extends CRM_Contribute_DAO_Contributi
       $recur->save();
 
       // @fixme https://lab.civicrm.org/dev/core/issues/927 Cancelling membership etc is not desirable for all use-cases and we should be able to disable it
-      $dao = CRM_Contribute_BAO_ContributionRecur::getSubscriptionDetails($recurId);
+      $dao = CRM_Contribute_BAO_ContributionRecur::getSubscriptionDetails($params['id']);
       if ($dao && $dao->recur_id) {
         $details = $activityParams['details'] ?? NULL;
         if ($dao->auto_renew && $dao->membership_id) {
index 0294581b2b4f0ab7693368983585bf0a14177f50..9121740712283e510128ca66fb51bf94f6eabf29 100644 (file)
@@ -64,10 +64,11 @@ function civicrm_api3_contribution_recur_get($params) {
  * @param array $params
  *   Array containing id of the recurring contribution.
  *
- * @return bool
+ * @return array
  *   returns true is successfully cancelled
+ * @throws \CRM_Core_Exception
  */
-function civicrm_api3_contribution_recur_cancel($params) {
+function civicrm_api3_contribution_recur_cancel(array $params): array {
   return CRM_Contribute_BAO_ContributionRecur::cancelRecurContribution($params) ? civicrm_api3_create_success() : civicrm_api3_create_error(ts('Error while cancelling recurring contribution'));
 }