From 05d8941e8a8f10a120928f2a5882a6da7d5c1f29 Mon Sep 17 00:00:00 2001 From: Marc Michalsky forumZFD Date: Mon, 18 Jan 2021 17:07:07 +0100 Subject: [PATCH] fix various bugs --- CRM/TwingleCampaign/BAO/TwingleApiCall.php | 2 +- CRM/TwingleCampaign/BAO/TwingleEvent.php | 2 +- api/v3/TwingleSync/Sync.php | 5 +++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/CRM/TwingleCampaign/BAO/TwingleApiCall.php b/CRM/TwingleCampaign/BAO/TwingleApiCall.php index 7f82be5..45c5e17 100644 --- a/CRM/TwingleCampaign/BAO/TwingleApiCall.php +++ b/CRM/TwingleCampaign/BAO/TwingleApiCall.php @@ -150,7 +150,7 @@ class CRM_TwingleCampaign_BAO_TwingleApiCall { $result = array_merge($result, $response['data']); } else { - $result = $response; + $result = $response['data']; } } return $result; diff --git a/CRM/TwingleCampaign/BAO/TwingleEvent.php b/CRM/TwingleCampaign/BAO/TwingleEvent.php index 11536db..95cc956 100644 --- a/CRM/TwingleCampaign/BAO/TwingleEvent.php +++ b/CRM/TwingleCampaign/BAO/TwingleEvent.php @@ -310,7 +310,7 @@ class CRM_TwingleCampaign_BAO_TwingleEvent extends Campaign { * @return array * Returns a response array that contains title, id, project_id and status */ - public function getResponse(string $status) { + public function getResponse(string $status): array { return [ 'title' => $this->values['description'], 'id' => (int) $this->id, diff --git a/api/v3/TwingleSync/Sync.php b/api/v3/TwingleSync/Sync.php index ce8e895..60e6d27 100644 --- a/api/v3/TwingleSync/Sync.php +++ b/api/v3/TwingleSync/Sync.php @@ -80,8 +80,9 @@ function civicrm_api3_twingle_sync_Sync($params) { // Try to retrieve twingleApi from cache $twingleApi = Civi::cache()->get('twinglecampaign_twingle_api'); - if (NULL === $twingleApi) { + if (NULL === $twingleApi || $params['twingle_api_key']) { $twingleApi = new TwingleApiCall($apiKey, $limit); + Civi::cache('long')->set('twinglecampaign_twingle_api', $twingleApi); } if ($params['id'] && !$params['project_id']) { @@ -116,7 +117,7 @@ function civicrm_api3_twingle_sync_Sync($params) { $i = 0; // Push missing projects to Twingle - foreach ($projects_from_civicrm as $project_from_civicrm) { + foreach ($projects_from_civicrm['values'] as $project_from_civicrm) { if (!in_array($project_from_civicrm['project_id'], array_column($projects_from_twingle, 'id'))) { // store campaign id in $id