From aef6b64004d9f59941030bdb7b739c7069c3b787 Mon Sep 17 00:00:00 2001 From: Marc Michalsky forumZFD Date: Mon, 5 Oct 2020 17:01:47 +0200 Subject: [PATCH] rename "Models" to "BAO" in paths and namespaces --- CRM/TwingleCampaign/Upgrader.php | 22 +++++----- .../Upgrader/{models => BAO}/CampaignType.php | 4 +- .../Upgrader/{models => BAO}/CustomField.php | 4 +- .../Upgrader/{models => BAO}/CustomGroup.php | 4 +- .../{models => BAO}/TwingleApiCall.php | 41 +++++++++++++++---- api/v3/TwingleSync/BAO/TwingleCampaign.php | 9 ++++ api/v3/TwingleSync/BAO/TwingleEvent.php | 9 ++++ .../{models => BAO}/TwingleProject.php | 17 +++++--- api/v3/TwingleSync/Get.php | 4 +- api/v3/TwingleSync/models/TwingleCampaign.php | 9 ---- api/v3/TwingleSync/models/TwingleEvent.php | 9 ---- 11 files changed, 82 insertions(+), 50 deletions(-) rename CRM/TwingleCampaign/Upgrader/{models => BAO}/CampaignType.php (97%) rename CRM/TwingleCampaign/Upgrader/{models => BAO}/CustomField.php (98%) rename CRM/TwingleCampaign/Upgrader/{models => BAO}/CustomGroup.php (98%) rename api/v3/TwingleSync/{models => BAO}/TwingleApiCall.php (83%) create mode 100644 api/v3/TwingleSync/BAO/TwingleCampaign.php create mode 100644 api/v3/TwingleSync/BAO/TwingleEvent.php rename api/v3/TwingleSync/{models => BAO}/TwingleProject.php (96%) delete mode 100644 api/v3/TwingleSync/models/TwingleCampaign.php delete mode 100644 api/v3/TwingleSync/models/TwingleEvent.php diff --git a/CRM/TwingleCampaign/Upgrader.php b/CRM/TwingleCampaign/Upgrader.php index 1be2733..0710800 100644 --- a/CRM/TwingleCampaign/Upgrader.php +++ b/CRM/TwingleCampaign/Upgrader.php @@ -1,11 +1,11 @@ create(); } // Create custom groups foreach ($campaign_info['custom_groups'] as $custom_group) { - foreach (Models\CampaignType::getCampaignTypes() as $campaign_type) { + foreach (BAO\CampaignType::getCampaignTypes() as $campaign_type) { if ($campaign_type->getName() == $custom_group['campaign_type']) { $custom_group['extends_entity_column_value'] = $campaign_type->getValue(); } } - $cg = new Models\CustomGroup($custom_group); + $cg = new BAO\CustomGroup($custom_group); $cg->create(); } // Create custom fields foreach ($campaign_info['custom_fields'] as $custom_field) { - $cf = new Models\CustomField($custom_field); + $cf = new BAO\CustomField($custom_field); $cf->create(); } } @@ -95,7 +95,7 @@ class CRM_TwingleCampaign_Upgrader extends CRM_TwingleCampaign_Upgrader_Base { // Delete campaign types foreach ($campaign_info['campaign_types'] as $campaign_type) { - $result = Models\CampaignType::fetch($campaign_type['name']); + $result = BAO\CampaignType::fetch($campaign_type['name']); if ($result) { $result->delete(); } @@ -103,7 +103,7 @@ class CRM_TwingleCampaign_Upgrader extends CRM_TwingleCampaign_Upgrader_Base { // Delete custom groups foreach ($campaign_info['custom_groups'] as $custom_group) { - $result = Models\CustomGroup::fetch($custom_group['name']); + $result = BAO\CustomGroup::fetch($custom_group['name']); if ($result) { $result->delete(); } diff --git a/CRM/TwingleCampaign/Upgrader/models/CampaignType.php b/CRM/TwingleCampaign/Upgrader/BAO/CampaignType.php similarity index 97% rename from CRM/TwingleCampaign/Upgrader/models/CampaignType.php rename to CRM/TwingleCampaign/Upgrader/BAO/CampaignType.php index a22c6b7..261fd75 100644 --- a/CRM/TwingleCampaign/Upgrader/models/CampaignType.php +++ b/CRM/TwingleCampaign/Upgrader/BAO/CampaignType.php @@ -1,6 +1,6 @@ lastUpdate() ) { - $result = $this->updateProject($project->export()); + // If this is a test do not make database changes + if ($is_test) { + $result = TwingleProject::fetch($values['id'])->getResponse( + 'TwingleProject ready to push' + ); + } + else { + $result = $this->updateProject($project->export()); + } + } // Return a response of the synchronization @@ -151,12 +160,30 @@ class TwingleApiCall { } - public function updateProject(array $values, bool $is_test = FALSE) { - // TODO: Implement $is_test + /** + * @param array $values + * @param bool $is_test + * + * @return array + * @throws \CiviCRM_API3_Exception + * @throws \Exception + */ + public function updateProject(array $values) { + + // Prepare url for curl $url = $this->protocol . 'project' . $this->baseUrl . $values['id']; - return $this->curlPost($url, $values); + + // Send curl + $result = $this->curlPost($url, $values); + + // Update TwingleProject in Civi with results from api call + $updated_project = new TwingleProject($result, TwingleProject::TWINGLE); + $updated_project->create(); + return $updated_project->getResponse("TwingleProject pushed to Twingle"); + } + public function updateEvent() { } diff --git a/api/v3/TwingleSync/BAO/TwingleCampaign.php b/api/v3/TwingleSync/BAO/TwingleCampaign.php new file mode 100644 index 0000000..b6ebe28 --- /dev/null +++ b/api/v3/TwingleSync/BAO/TwingleCampaign.php @@ -0,0 +1,9 @@ +values; - $this->formatForExport($values); + self::formatValues($values, self::OUT); + self::translateKeys($values, self::OUT); + unset($values['campaign_type_id']); return $values; } @@ -246,7 +251,7 @@ class TwingleProject { * * @param $id * - * @return \CRM\TwingleCampaign\Models\TwingleProject + * @return \CRM\TwingleCampaign\BAO\TwingleProject * @throws \CiviCRM_API3_Exception * @throws \Exception */ @@ -324,7 +329,7 @@ class TwingleProject { // Set the direction of the translation if ($direction == self::OUT) { - array_flip($fields); + $translations = array_flip($translations); } // Throw error if $direction constant does not match IN or OUT elseif ($direction != self::IN) { diff --git a/api/v3/TwingleSync/Get.php b/api/v3/TwingleSync/Get.php index 81ef21d..e2a7933 100644 --- a/api/v3/TwingleSync/Get.php +++ b/api/v3/TwingleSync/Get.php @@ -1,9 +1,9 @@