From 2533c97f4c566ca74af3aebdccdc0af9aa6bce2c Mon Sep 17 00:00:00 2001 From: Marc Michalsky forumZFD Date: Tue, 9 Feb 2021 16:30:43 +0100 Subject: [PATCH] fix getsingle apis return an array that contains the values instead of an array that contains another array --- api/v3/TwingleEvent/Sync.php | 8 ++++---- api/v3/TwingleForm/Getsingle.php | 7 ++++++- api/v3/TwingleProject/Getsingle.php | 10 ++++++++-- api/v3/TwingleProject/Sync.php | 18 +++++++++--------- 4 files changed, 27 insertions(+), 16 deletions(-) diff --git a/api/v3/TwingleEvent/Sync.php b/api/v3/TwingleEvent/Sync.php index e61549b..790fb4c 100644 --- a/api/v3/TwingleEvent/Sync.php +++ b/api/v3/TwingleEvent/Sync.php @@ -113,15 +113,15 @@ function civicrm_api3_twingle_event_Sync(array $params): array { if ($result['is_error'] == 0) { // Get the event from Twingle - if ($result['values'][0]['event_id']) { + if ($result['values']['event_id']) { $event_from_twingle = $twingleApi->getEvent( - $result['values'][0]['project_id'], - $result['values'][0]['event_id'] + $result['values']['project_id'], + $result['values']['event_id'] ); // instantiate event from CiviCRM try { - $event = _instantiateEvent($result['values'][0]); + $event = _instantiateEvent($result['values']); } catch (CiviCRM_API3_Exception $e) { Civi::log()->error( $e->getMessage(), diff --git a/api/v3/TwingleForm/Getsingle.php b/api/v3/TwingleForm/Getsingle.php index 654124a..93a92a5 100644 --- a/api/v3/TwingleForm/Getsingle.php +++ b/api/v3/TwingleForm/Getsingle.php @@ -65,5 +65,10 @@ function civicrm_api3_twingle_form_Getsingle(array $params): array { if ($count != 1){ return civicrm_api3_create_error("Expected one TwingleForm but found $count"); } - return civicrm_api3_create_success($returnValues['values'], $params, 'TwingleForm', 'Getsingle'); + return civicrm_api3_create_success( + $returnValues['values'][$returnValues['id']], + $params, + 'TwingleForm', + 'Getsingle' + ); } diff --git a/api/v3/TwingleProject/Getsingle.php b/api/v3/TwingleProject/Getsingle.php index fe91987..b703103 100644 --- a/api/v3/TwingleProject/Getsingle.php +++ b/api/v3/TwingleProject/Getsingle.php @@ -113,7 +113,13 @@ function civicrm_api3_twingle_project_Getsingle(array $params): array { $count = $returnValues['count']; if ($count != 1) { - return civicrm_api3_create_error("Expected one TwingleProject but found $count"); + return civicrm_api3_create_error( + "Expected one TwingleProject but found $count" + ); } - return civicrm_api3_create_success($returnValues['values'], $params, 'TwingleProject', 'Getsingle'); + return civicrm_api3_create_success( + $returnValues['values'][$returnValues['id']], + $params, 'TwingleProject', + 'Getsingle' + ); } diff --git a/api/v3/TwingleProject/Sync.php b/api/v3/TwingleProject/Sync.php index da8441e..d078169 100644 --- a/api/v3/TwingleProject/Sync.php +++ b/api/v3/TwingleProject/Sync.php @@ -100,13 +100,13 @@ function civicrm_api3_twingle_project_Sync(array $params): array { // If the TwingleProject campaign already has a project_id try to get the // project from Twingle - if ($result['values'][0]['project_id']) { - $project_from_twingle = $twingleApi->getProject($result['values'][0]['project_id']); + if ($result['values']['project_id']) { + $project_from_twingle = $twingleApi->getProject($result['values']['project_id']); // instantiate project from CiviCRM - $id = $result['values'][0]['id']; - unset($result['values'][0]['id']); - $project = new TwingleProject($result['values'][0], $id); + $id = $result['values']['id']; + unset($result['values']['id']); + $project = new TwingleProject($result['values'], $id); // Synchronize projects if (!empty($project_from_twingle)) { @@ -127,11 +127,11 @@ function civicrm_api3_twingle_project_Sync(array $params): array { else { // store campaign id in $id - $id = $result['values'][0]['id']; - unset($result['values'][0]['id']); + $id = $result['values']['id']; + unset($result['values']['id']); // instantiate project - $project = new TwingleProject($result['values'][0], $id); + $project = new TwingleProject($result['values'], $id); // Push project to Twingle return _pushProjectToTwingle($project, $twingleApi, $params); @@ -252,7 +252,7 @@ function civicrm_api3_twingle_project_Sync(array $params): array { $project->getResponse($result['error_message']); } else { - $result_values[$project->getId()] = $result['values'][0]; + $result_values[$project->getId()] = $result['values']; } break; }