This commit is contained in:
Gogs 2021-06-02 01:52:05 +02:00
parent 499abe195e
commit e7d7d18f77
7 changed files with 77 additions and 7 deletions

View File

@ -15,6 +15,18 @@ class Plugin extends PluginBase
public function registerSettings()
{
return [
'settings' => [
'label' => 'germanairlinesva.graphql::lang.settings.label',
'description' => 'germanairlinesva.graphql::lang.settings.description',
'category' => 'system::lang.system.categories.cms',
'icon' => 'icon-compress',
'class' => 'GermanAirlinesVa\Graphql\Models\Settings',
'order' => 1000,
'keywords' => 'graphql',
'permissions' => ['germanairlinesva.graphql.schemas']
]
];
}
public function boot()
@ -49,7 +61,7 @@ class Plugin extends PluginBase
{
foreach ($options['providers'] as $provider)
{
App::register($provider);
App::register($provider);
}
}
@ -58,7 +70,7 @@ class Plugin extends PluginBase
{
foreach ($options['aliases'] as $alias => $path)
{
$aliasLoader->alias($alias, $path);
$aliasLoader->alias($alias, $path);
}
}
}

View File

@ -72,11 +72,11 @@ class SchemaSourceProvider implements LighthouseSchemaSourceProvider
// root types
$schema = '
type Query {
graphql: Boolean
dummy: Boolean
}
type Mutation {
graphql: Boolean
dummy: Boolean
}
';
// schema

View File

@ -1,6 +1,7 @@
<?php
use Cms\Classes\Theme;
use GermanAirlinesVa\Graphql\Models\Settings;
return [
'packages' => [
@ -71,7 +72,7 @@ return [
*/
'cache' => [
'enable' => false,
'enable' => Settings::get('enable_cache', false),
'key' => env('GRAPHQL_CACHE_KEY', 'graphql-schema'),
'ttl' => env('GRAPHQL_CACHE_TTL', null),
],
@ -189,7 +190,7 @@ return [
|
*/
'batched_queries' => true,
'batched_queries' => Settings::get('batched_queries', true),
/*
|--------------------------------------------------------------------------

View File

@ -6,4 +6,26 @@
'menu' => [
'main' => 'GraphQL',
],
];
'permission' => [
'tab' => [
'schemas' => 'Schemas',
],
'label' => [
'schemas' => 'Manage schemas',
],
],
'settings' => [
'label' => 'German Airlines VA - GraphQL',
'description' => 'Configure GrapQL',
'general' => 'General',
'engine' => 'Engine',
'enable_cache' => [
'label' => 'Enable Schema Cache',
'comment' => 'A large part of the Schema generation is parsing the various graph definition into an AST. These operations are pretty expensive so it is recommended to enable caching in production mode.'
],
'batched_queries' => [
'label' => 'Batched Queries',
'comment' => 'GraphQL query batching means sending multiple queries to the server in one request. You may set this flag to process/deny batched queries.'
]
],
];

15
models/Settings.php Normal file
View File

@ -0,0 +1,15 @@
<?php namespace GermanAirlinesVa\Graphql\Models;
use Cms\Classes\Theme;
use Model;
class Settings extends Model
{
public $implement = ['System.Behaviors.SettingsModel'];
public $settingsCode = 'germanairlinesva_graphql_settings';
public $settingsFields = 'fields.yaml';
}

View File

@ -0,0 +1,16 @@
tabs:
fields:
enable_cache:
label: 'germanairlinesva.graphql::lang.settings.enable_cache.label'
span: left
default: false
type: checkbox
comment: 'germanairlinesva.graphql::lang.settings.enable_cache.comment'
tab: 'germanairlinesva.graphql::lang.settings.engine'
batched_queries:
label: 'germanairlinesva.graphql::lang.settings.batched_queries.label'
span: right
default: true
type: checkbox
comment: 'germanairlinesva.graphql::lang.settings.batched_queries.comment'
tab: 'germanairlinesva.graphql::lang.settings.engine'

View File

@ -4,3 +4,7 @@ plugin:
author: 'German Airlines VA'
icon: oc-icon-database
homepage: ''
permissions:
schemas:
tab: 'germanairlinesva.graphql::lang.permission.tab.schemas'
label: 'germanairlinesva.graphql::lang.permission.label.schemas'