You are here

function salesforce_pull_update_8004 in Salesforce Suite 8.4

Same name and namespace in other branches
  1. 8.3 modules/salesforce_pull/salesforce_pull.install \salesforce_pull_update_8004()
  2. 5.0.x modules/salesforce_pull/salesforce_pull.install \salesforce_pull_update_8004()

Refactor pull timestamps, again, into per-mapping timestamps.

File

modules/salesforce_pull/salesforce_pull.install, line 78
Install/uninstall tasks for the Salesforce Pull module.

Code

function salesforce_pull_update_8004() {
  $mapping_pull_info = [];
  $pull_info = \Drupal::state()
    ->get('salesforce.sobject_pull_info', []);
  $mappings = \Drupal::entityTypeManager()
    ->getStorage('salesforce_mapping')
    ->loadMultiple();
  $new_pull_info = [];
  foreach ($mappings as $mapping) {
    $sobject_type = $mapping
      ->getSalesforceObjectType();
    if (empty($pull_info[$sobject_type])) {
      continue;
    }
    $mapping_pull_info = $pull_info[$sobject_type];
    $new_pull_info[$mapping
      ->id()] = $mapping_pull_info;
  }
  \Drupal::state()
    ->set('salesforce.mapping_pull_info', $mapping_pull_info);
  \Drupal::state()
    ->delete('salesforce.sobject_pull_info');
}