From 6acf443245c0de32bd64f4962236fc7d3e17476b Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Sat, 26 Nov 2022 20:29:57 -0500 Subject: [PATCH] MailingEventBounce - Rename `create` function to `recordBounce` Because it's not a standard CRUD create function it was messing up the APIv4 syntaxConformanceTest Best rename it for clarity. --- CRM/Mailing/BAO/MailingJob.php | 2 +- CRM/Mailing/Event/BAO/MailingEventBounce.php | 33 +++++++++++-------- CRM/Mailing/Event/BAO/MailingEventForward.php | 2 +- api/v3/Mailing.php | 2 +- ext/flexmailer/src/Listener/DefaultSender.php | 2 +- 5 files changed, 24 insertions(+), 17 deletions(-) diff --git a/CRM/Mailing/BAO/MailingJob.php b/CRM/Mailing/BAO/MailingJob.php index 01f70ecf2d..2522030c6a 100644 --- a/CRM/Mailing/BAO/MailingJob.php +++ b/CRM/Mailing/BAO/MailingJob.php @@ -679,7 +679,7 @@ VALUES (%1, %2, %3, %4, %5, %6, %7) $params = array_merge($params, CRM_Mailing_BAO_BouncePattern::match($result->getMessage()) ); - CRM_Mailing_Event_BAO_MailingEventBounce::create($params); + CRM_Mailing_Event_BAO_MailingEventBounce::recordBounce($params); } elseif (is_a($result, 'PEAR_Error') && $mailing->sms_provider_id) { // Handle SMS errors: CRM-15426 diff --git a/CRM/Mailing/Event/BAO/MailingEventBounce.php b/CRM/Mailing/Event/BAO/MailingEventBounce.php index 2ac191bb65..7a2d808ff2 100644 --- a/CRM/Mailing/Event/BAO/MailingEventBounce.php +++ b/CRM/Mailing/Event/BAO/MailingEventBounce.php @@ -17,16 +17,16 @@ class CRM_Mailing_Event_BAO_MailingEventBounce extends CRM_Mailing_Event_DAO_MailingEventBounce { /** - * Create a new bounce event, update the email address if necessary + * Record a new bounce event, update the email address if necessary * * @param array $params * * @return bool|null */ - public static function create(&$params) { - $q = CRM_Mailing_Event_BAO_MailingEventQueue::verify($params['job_id'], - $params['event_queue_id'], - $params['hash'] + public static function recordBounce(&$params) { + $q = CRM_Mailing_Event_BAO_MailingEventQueue::verify($params['job_id'] ?? NULL, + $params['event_queue_id'] ?? NULL, + $params['hash'] ?? NULL ); $success = NULL; @@ -35,11 +35,8 @@ class CRM_Mailing_Event_BAO_MailingEventBounce extends CRM_Mailing_Event_DAO_Mai } $transaction = new CRM_Core_Transaction(); - $bounce = new CRM_Mailing_Event_BAO_MailingEventBounce(); - $bounce->time_stamp = date('YmdHis'); - $action = empty($params['id']) ? 'create' : 'edit'; - CRM_Utils_Hook::pre($action, 'MailingEventBounce', CRM_Utils_Array::value('id', $params), $params); + $params['time_stamp'] = date('YmdHis'); // if we dont have a valid bounce type, we should set it // to bounce_type_id 11 which is Syntax error. this allows such email @@ -64,10 +61,7 @@ class CRM_Mailing_Event_BAO_MailingEventBounce extends CRM_Mailing_Event_DAO_Mai // CRM-11989 $params['bounce_reason'] = mb_strcut($params['bounce_reason'], 0, 254); - $bounce->copyValues($params); - $bounce->save(); - - CRM_Utils_Hook::post($action, 'MailingEventBounce', $bounce->id, $bounce); + self::writeRecord($params); if ($q->email_id) { self::putEmailOnHold($q->email_id); @@ -77,6 +71,19 @@ class CRM_Mailing_Event_BAO_MailingEventBounce extends CRM_Mailing_Event_DAO_Mai return TRUE; } + /** + * Create function was renamed `recordBounce` because it's not a standard CRUD create function + * + * @param array $params + * @deprecated + * + * @return bool|null + */ + public static function create(&$params) { + CRM_Core_Error::deprecatedFunctionWarning('recordBounce'); + return self::recordBounce($params); + } + /** * Get row count for the event selector. * diff --git a/CRM/Mailing/Event/BAO/MailingEventForward.php b/CRM/Mailing/Event/BAO/MailingEventForward.php index 2e9a7fbbb9..a94fcab29a 100644 --- a/CRM/Mailing/Event/BAO/MailingEventForward.php +++ b/CRM/Mailing/Event/BAO/MailingEventForward.php @@ -177,7 +177,7 @@ class CRM_Mailing_Event_BAO_MailingEventForward extends CRM_Mailing_Event_DAO_Ma $params = array_merge($params, CRM_Mailing_BAO_BouncePattern::match($result->getMessage()) ); - CRM_Mailing_Event_BAO_MailingEventBounce::create($params); + CRM_Mailing_Event_BAO_MailingEventBounce::recordBounce($params); } else { $successfulForward = TRUE; diff --git a/api/v3/Mailing.php b/api/v3/Mailing.php index 6d85649dc4..3a04791f6c 100644 --- a/api/v3/Mailing.php +++ b/api/v3/Mailing.php @@ -321,7 +321,7 @@ function civicrm_api3_mailing_event_bounce($params) { $params += CRM_Mailing_BAO_BouncePattern::match($body); - if (CRM_Mailing_Event_BAO_MailingEventBounce::create($params)) { + if (CRM_Mailing_Event_BAO_MailingEventBounce::recordBounce($params)) { return civicrm_api3_create_success($params); } else { diff --git a/ext/flexmailer/src/Listener/DefaultSender.php b/ext/flexmailer/src/Listener/DefaultSender.php index 21b756e22f..d2e0d7b09d 100644 --- a/ext/flexmailer/src/Listener/DefaultSender.php +++ b/ext/flexmailer/src/Listener/DefaultSender.php @@ -196,7 +196,7 @@ class DefaultSender extends BaseListener { $params = array_merge($params, \CRM_Mailing_BAO_BouncePattern::match($errorMessage) ); - \CRM_Mailing_Event_BAO_MailingEventBounce::create($params); + \CRM_Mailing_Event_BAO_MailingEventBounce::recordBounce($params); } } -- 2.25.1