4 * Contains Drupal\Console\Command\Shared\RestTrait.
7 namespace Drupal\Console\Command\Shared;
12 * [geRest get a list of Rest Resouces].
14 * @param bool $rest_status return Rest Resources by status
16 * @return array list of rest resources
18 public function getRestResources($rest_status = false)
20 $config = $this->getRestDrupalConfig();
22 $resources = $this->pluginManagerRest->getDefinitions();
25 $enabled_resources = array_combine(array_keys($config), array_keys($config));
26 $available_resources = ['enabled' => [], 'disabled' => []];
28 foreach ($resources as $id => $resource) {
29 $status = in_array($id, $enabled_resources) ? 'enabled' : 'disabled';
30 $available_resources[$status][$id] = $resource;
33 // Sort the list of resources by label.
34 $sort_resources = function ($resource_a, $resource_b) {
35 return strcmp($resource_a['label'], $resource_b['label']);
37 if (!empty($available_resources['enabled'])) {
38 uasort($available_resources['enabled'], $sort_resources);
40 if (!empty($available_resources['disabled'])) {
41 uasort($available_resources['disabled'], $sort_resources);
44 if (isset($available_resources[$rest_status])) {
45 return [$rest_status => $available_resources[$rest_status]];
48 return $available_resources;
51 public function getRestDrupalConfig()
53 if ($this->configFactory) {
54 return $this->configFactory->get('rest.settings')->get('resources') ?: [];
62 * @param $rest_resources_ids
67 public function validateRestResource($rest, $rest_resources_ids, $translator)
69 if (in_array($rest, $rest_resources_ids)) {
72 throw new \InvalidArgumentException(
74 $translator->trans('commands.rest.disable.messages.invalid-rest-id'),