Example #1
0
        public async Task <IActionResult> Post([FromBody] GraphQLQuery query)
        {
            if (query == null)
            {
                return(BadRequest());
            }

            var inputs = query.Variables.ToInputs();
            var schema = new AppSchema(_resolver);

            var options = new ExecutionOptions
            {
                Schema                  = schema,
                Query                   = query.Query,
                Inputs                  = inputs,
                UserContext             = User,
                ComplexityConfiguration = new ComplexityConfiguration {
                    FieldImpact = 2, MaxComplexity = 30, MaxDepth = 15
                }
            };

            options.Listeners.Add(_documentListener);

            var result = await _documentExecuter.ExecuteAsync(options).ConfigureAwait(false);

            if (result.Errors?.Count > 0)
            {
                return(BadRequest(result.Errors));
            }
            return(Ok(result.Data));
        }
Example #2
0
        public TestFixture()
        {
            DocumentExecutor = new DocumentExecuter();
            var serviceCollection = new ServiceCollection();

            SetupGraphQLApi(serviceCollection);
            ServiceProvider = serviceCollection.BuildServiceProvider();
            AppSchema       = ServiceProvider.GetRequiredService <AppSchema>();
        }
 public ProductController(IProductRepository irepos,
                          AppQuery graphQLQuery,
                          IDocumentExecuter documentExecuter,
                          AppSchema schema)
 {
     repos             = irepos;
     _graphQLQuery     = graphQLQuery;
     _documentExecuter = documentExecuter;
     _schema           = schema;
 }
Example #4
0
 public GraphQLController(
     AppSchema schema,
     IDataLoaderContextAccessor accessor
     )
 {
     this.Schema = schema;
     //init a new DataLoader context on each request
     accessor.Context           = new DataLoaderContext();
     DataLoaderDocumentListener = new DataLoaderDocumentListener(accessor);
 }
 public GraphQLController(AppSchema schema)
 {
     _schema = schema;
 }