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)); }
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; }
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; }