Chris@0: get('rest_update_8201_resources', []); Chris@0: foreach ($resources as $key => $resource) { Chris@0: $resource = RestResourceConfig::create([ Chris@0: 'id' => str_replace(':', '.', $key), Chris@0: 'granularity' => RestResourceConfigInterface::METHOD_GRANULARITY, Chris@0: 'configuration' => $resource, Chris@0: ]); Chris@0: $resource->save(); Chris@0: } Chris@0: } Chris@0: Chris@0: /** Chris@0: * Simplify method-granularity REST resource config to resource-granularity. Chris@0: * Chris@0: * @see https://www.drupal.org/node/2721595 Chris@0: */ Chris@0: function rest_post_update_resource_granularity() { Chris@0: /** @var \Drupal\rest\RestResourceConfigInterface[] $resource_config_entities */ Chris@0: $resource_config_entities = RestResourceConfig::loadMultiple(); Chris@0: Chris@0: foreach ($resource_config_entities as $resource_config_entity) { Chris@0: if ($resource_config_entity->get('granularity') === RestResourceConfigInterface::METHOD_GRANULARITY) { Chris@0: $configuration = $resource_config_entity->get('configuration'); Chris@0: Chris@0: $format_and_auth_configuration = []; Chris@0: foreach (array_keys($configuration) as $method) { Chris@0: $format_and_auth_configuration['format'][$method] = implode(',', $configuration[$method]['supported_formats']); Chris@0: $format_and_auth_configuration['auth'][$method] = implode(',', $configuration[$method]['supported_auth']); Chris@0: } Chris@0: Chris@0: // If each method has the same formats and the same authentication Chris@0: // providers configured, convert it to 'granularity: resource', which has Chris@0: // a simpler/less verbose configuration. Chris@0: if (count(array_unique($format_and_auth_configuration['format'])) === 1 && count(array_unique($format_and_auth_configuration['auth'])) === 1) { Chris@0: $first_method = array_keys($configuration)[0]; Chris@0: $resource_config_entity->set('configuration', [ Chris@0: 'methods' => array_keys($configuration), Chris@0: 'formats' => $configuration[$first_method]['supported_formats'], Chris@17: 'authentication' => $configuration[$first_method]['supported_auth'], Chris@0: ]); Chris@0: $resource_config_entity->set('granularity', RestResourceConfigInterface::RESOURCE_GRANULARITY); Chris@0: $resource_config_entity->save(); Chris@0: } Chris@0: } Chris@0: } Chris@0: } Chris@17: Chris@17: /** Chris@17: * Clear caches due to changes in route definitions. Chris@17: */ Chris@17: function rest_post_update_161923() { Chris@17: // Empty post-update hook. Chris@17: }