Source of file SchemaScaffolderExtension.php
Size: 1,391 Bytes - Last Modified: 2021-12-23T10:35:47+00:00
/var/www/docs.ssmods.com/process/src/_legacy/GraphQL/Extensions/SchemaScaffolderExtension.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | <?php namespace SilverStripe\Versioned\GraphQL\Extensions; use SilverStripe\Core\Extension; use SilverStripe\GraphQL\Manager; use SilverStripe\GraphQL\Scaffolding\Scaffolders\SchemaScaffolder; use SilverStripe\GraphQL\Scaffolding\StaticSchema; use SilverStripe\Security\Member; use SilverStripe\Versioned\Versioned; // GraphQL dependency is optional in versioned, // and legacy implementation relies on existence of this class (in GraphQL v3) if (!class_exists(Manager::class)) { return; } /** * @deprecated 4.8..5.0 Use silverstripe/graphql:^4 functionality. */ class SchemaScaffolderExtension extends Extension { /** * If any types are using Versioned, make sure Member is added as a type. Because * the Versioned_Version object is just ViewableData, it has to be added explicitly. * * @param Manager $manager */ public function onBeforeAddToManager(Manager $manager) { $memberType = StaticSchema::inst()->typeNameForDataObject(Member::class); if ($manager->hasType($memberType)) { return; } /* @var SchemaScaffolder $owner */ $owner = $this->owner; foreach ($owner->getTypes() as $scaffold) { if ($scaffold->getDataObjectInstance()->hasExtension(Versioned::class)) { $owner->type(Member::class); break; } } } } |