From 2317c7e8e1c18e7d8ce785611e9869b387dc1dea Mon Sep 17 00:00:00 2001 From: Marc Michalsky forumZFD Date: Tue, 15 Dec 2020 16:11:04 +0100 Subject: [PATCH] update status message when project was pushed and locally updated --- api/v3/TwingleSync/Sync.php | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/api/v3/TwingleSync/Sync.php b/api/v3/TwingleSync/Sync.php index 41d4711..c568b82 100644 --- a/api/v3/TwingleSync/Sync.php +++ b/api/v3/TwingleSync/Sync.php @@ -52,6 +52,7 @@ function _civicrm_api3_twingle_sync_Sync_spec(array &$spec) { * API result descriptor * * @throws API_Exception|\CiviCRM_API3_Exception + * @throws \Exception * @see civicrm_api3_create_success * */ @@ -94,14 +95,23 @@ function civicrm_api3_twingle_sync_Sync($params) { 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 $id = $project_from_civicrm['id']; unset($project_from_civicrm['id']); + // change 'title' to 'name' to match Twingle format $project_from_civicrm['name'] = $project_from_civicrm['title']; + // instantiate project with values from TwingleProject.Get $project = new TwingleProject($project_from_civicrm, $id); - $values = $twingleApi->pushProject($project); - $project->update($values); - $result_values['sync']['projects'][$i++] = $project->create(); - + // push project to Twingle + $result = $twingleApi->pushProject($project); + // update local campaign with data coming back from Twingle + $project->update($result); + $project_create = $project->create(); + // set status + $result_values['sync']['projects'][$i++] = + $project_create['status'] == 'TwingleProject created' + ? 'TwingleProject pushed to Twingle' + : 'TwingleProject got likely pushed to Twingle but local update failed'; } }