You are here

function service_update_8001 in Services 8.4

Same name and namespace in other branches
  1. 9.0.x services.install \service_update_8001()

Migrate endpoint service providers to service resources.

File

./services.install, line 13
The installation implementation for the services module.

Code

function service_update_8001() {
  $config_factory = \Drupal::configFactory();
  foreach ($config_factory
    ->listAll('services.service_endpoint.') as $name) {
    $config = $config_factory
      ->getEditable($name);
    if (!$config instanceof Config) {
      continue;
    }
    $data = $config
      ->getRawData();
    if (!isset($data['service_providers']) || empty($data['service_providers'])) {
      continue;
    }
    foreach ($data['service_providers'] as $plugin_id) {
      \Drupal::entityTypeManager()
        ->getStorage('service_endpoint_resource')
        ->create([
        'service_plugin_id' => $plugin_id,
        'service_endpoint_id' => $data['id'],
      ])
        ->save();
    }
    unset($data['service_providers']);
    $config
      ->setData($data)
      ->save();
  }
}