From ea24cf7f739eb0558aec19d10ee6b22263b075c2 Mon Sep 17 00:00:00 2001 From: Tim Otten Date: Mon, 7 Apr 2014 16:53:04 -0700 Subject: [PATCH] API TransactionSubscriber - Rollback on soft errors (as well as exceptions) --- Civi/API/Subscriber/TransactionSubscriber.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Civi/API/Subscriber/TransactionSubscriber.php b/Civi/API/Subscriber/TransactionSubscriber.php index 71c8439736..ab47f07b28 100644 --- a/Civi/API/Subscriber/TransactionSubscriber.php +++ b/Civi/API/Subscriber/TransactionSubscriber.php @@ -71,7 +71,12 @@ class TransactionSubscriber implements EventSubscriberInterface { */ function onApiRespond(\Civi\API\Event\RespondEvent $event) { $apiRequest = $event->getApiRequest(); - unset($this->transactions[$apiRequest['id']]); + if (isset($this->transactions[$apiRequest['id']])) { + if (civicrm_error($event->getResponse())) { + $this->transactions[$apiRequest['id']]->rollback(); + } + unset($this->transactions[$apiRequest['id']]); + } } /** -- 2.25.1