From 4618f0ce8ffaa975df7ff8a8afb294fe876c4919 Mon Sep 17 00:00:00 2001
From: Aaron Bauman <aaronbauman@384578.no-reply.drupal.org>
Date: Wed, 30 Oct 2013 13:09:12 -0400
Subject: [PATCH] Issue #1866326 by nicksanta, JasonMcE - add
 hook_features_rebuild implementation for salesforce features

---
 salesforce_api/salesforce_api.features.inc | 27 ++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/salesforce_api/salesforce_api.features.inc b/salesforce_api/salesforce_api.features.inc
index d2355345..bc85cbb3 100644
--- a/salesforce_api/salesforce_api.features.inc
+++ b/salesforce_api/salesforce_api.features.inc
@@ -45,6 +45,33 @@ function salesforce_api_fieldmap_features_revert($module = 'salesforce_api') {
   ctools_component_features_revert($module);
 }
 
+/*
+ * Implements hook_features_rebuild().
+ */
+function salesforce_fieldmap_features_rebuild($module) {
+  $table = 'salesforce_fieldmap';
+  $defaults = features_get_default($table, $module);
+
+  if (empty($defaults)) {
+    return;
+  }
+
+  // Revert.
+  if (!empty($defaults)) {
+    foreach ($defaults as $object) {
+      if (empty($object->name) || empty($object->drupal_entity) || empty($object->salesforce)) {
+        continue;
+      }
+
+      // If it exists, just update the record.
+      $existing = salesforce_api_salesforce_fieldmap_load($object->name);
+      $primary_key = empty($existing->in_code_only) ? 'name' : array();
+      drupal_write_record('salesforce_fieldmap', $object, $primary_key);
+    }
+  }
+}
+
+
 /**
  * }
  */
-- 
GitLab