You are here

function apigee_edge_teams_update_8702 in Apigee Edge 8

Install team_invitation entity, dependencies and config.

File

modules/apigee_edge_teams/apigee_edge_teams.install, line 99
Copyright 2019 Google Inc.

Code

function apigee_edge_teams_update_8702() {

  // Install 'team_invitation' entity.
  \Drupal::entityTypeManager()
    ->clearCachedDefinitions();
  $entity_definition_update_manager = \Drupal::entityDefinitionUpdateManager();
  $entity_definition_update_manager
    ->installEntityType(\Drupal::entityTypeManager()
    ->getDefinition('team_invitation'));

  // Install 'views' module.
  \Drupal::service('module_installer')
    ->install([
    'views',
  ]);

  // Install new config.
  $settings_to_sync = [
    'team_invitation_expiry_days',
    'team_invitation_email_existing',
    'team_invitation_email_new',
  ];

  /** @var \Drupal\Core\Config\StorageInterface $config_storage */
  $config_storage = \Drupal::service('config.storage');
  $module_path = drupal_get_path('module', 'apigee_edge_teams');
  $source = new FileStorage("{$module_path}/config/install");
  $new_team_settings = $source
    ->read('apigee_edge_teams.team_settings');
  $team_settings = $config_storage
    ->read('apigee_edge_teams.team_settings');
  foreach ($settings_to_sync as $setting) {
    $team_settings[$setting] = $new_team_settings[$setting];
  }
  $config_storage
    ->write('apigee_edge_teams.team_settings', $team_settings);
  $optional = new FileStorage("{$module_path}/config/optional");
  $team_invitations_view = $optional
    ->read('views.view.team_invitations');
  $config_storage
    ->write('views.view.team_invitations', $team_invitations_view);
}