Source of file Builder.php
Size: 0,956 Bytes - Last Modified: 2021-12-23T10:27:34+00:00
/var/www/docs.ssmods.com/process/src/code/GraphQL/Schema/Builder.php
12345678910111213141516171819202122232425262728293031323334 | <?php namespace SilverStripe\AssetAdmin\GraphQL\Schema; use SilverStripe\Assets\File; use SilverStripe\GraphQL\Schema\Interfaces\SchemaUpdater; use SilverStripe\GraphQL\Schema\Schema; use SilverStripe\GraphQL\Schema\Type\Enum; use SilverStripe\ORM\ArrayLib; if (!interface_exists(SchemaUpdater::class)) { return; } class Builder implements SchemaUpdater { public static function updateSchema(Schema $schema): void { $categoryValues = array_map(function ($category) { return ['value' => $category]; }, File::config()->get('app_categories')); // Sanitise GraphQL Enum aliases (some contain slashes) foreach ($categoryValues as $key => $v) { unset($categoryValues[$key]); $newKey = strtoupper(preg_replace('/[^[[:alnum:]]]*/', '', $key)); $categoryValues[$newKey] = $v; } $schema->addEnum(Enum::create('AppCategory', $categoryValues)); } } |