From aef0297dafe0ffd69242cbb8f9979a250f885839 Mon Sep 17 00:00:00 2001 From: Marc Michalsky forumZFD Date: Thu, 4 Feb 2021 09:36:26 +0100 Subject: [PATCH] bug fix provide TwingleEvent campaign id for instantiation --- CRM/TwingleCampaign/BAO/TwingleEvent.php | 3 --- api/v3/TwingleEvent/Getsingle.php | 8 +++++++- api/v3/TwingleEvent/Sync.php | 7 ++++--- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/CRM/TwingleCampaign/BAO/TwingleEvent.php b/CRM/TwingleCampaign/BAO/TwingleEvent.php index 0a089f9..2769704 100644 --- a/CRM/TwingleCampaign/BAO/TwingleEvent.php +++ b/CRM/TwingleCampaign/BAO/TwingleEvent.php @@ -62,9 +62,6 @@ class CRM_TwingleCampaign_BAO_TwingleEvent extends Campaign { self::IN ); - // Set id - $values_prepared_for_import['id'] = $this->id; - // Create campaign $result = civicrm_api3('Campaign', 'create', $values_prepared_for_import); diff --git a/api/v3/TwingleEvent/Getsingle.php b/api/v3/TwingleEvent/Getsingle.php index ad84fe1..56aa246 100644 --- a/api/v3/TwingleEvent/Getsingle.php +++ b/api/v3/TwingleEvent/Getsingle.php @@ -96,11 +96,17 @@ function _civicrm_api3_twingle_event_Getsingle_spec(array &$spec) { * @see civicrm_api3_create_success */ function civicrm_api3_twingle_event_Getsingle(array $params): array { + $returnValues = civicrm_api3('TwingleEvent', 'get', $params); $count = $returnValues['count']; if ($count != 1) { return civicrm_api3_create_error("Expected one TwingleEvent but found $count"); } - return civicrm_api3_create_success($returnValues['values'], $params, 'TwingleEvent', 'Getsingle'); + return civicrm_api3_create_success( + $returnValues['values'][$returnValues['id']], + $params, + 'TwingleEvent', + 'Getsingle' + ); } diff --git a/api/v3/TwingleEvent/Sync.php b/api/v3/TwingleEvent/Sync.php index 9b8271a..e68a54a 100644 --- a/api/v3/TwingleEvent/Sync.php +++ b/api/v3/TwingleEvent/Sync.php @@ -256,7 +256,7 @@ function civicrm_api3_twingle_event_Sync(array $params): array { if ($event_from_twingle['id'] == $event_from_civicrm['event_id']) { // instantiate project with values from TwingleEvent.Get - $event = _instantiateEvent($event_from_civicrm); + $event = _instantiateEvent($event_from_civicrm, $event_from_civicrm['id']); // sync event $result = _eventSync($event, $event_from_twingle, $twingleApi, $params); @@ -298,13 +298,14 @@ function civicrm_api3_twingle_event_Sync(array $params): array { * # Instantiates a TwingleEvent * * @param $values + * @param null $id * * @return \CRM_TwingleCampaign_BAO_TwingleEvent * @throws \CiviCRM_API3_Exception */ -function _instantiateEvent($values): CRM_TwingleCampaign_BAO_TwingleEvent { +function _instantiateEvent($values, $id = NULL): CRM_TwingleCampaign_BAO_TwingleEvent { try { - return new TwingleEvent($values, $values['id']); + return new TwingleEvent($values, $id); } catch (Exception $e) { throw new CiviCRM_API3_Exception( $e->getMessage(),