public async Task <IActionResult> Post([FromBody] GraphQLParameter parameter) { if (parameter == null) { throw new ArgumentNullException(nameof(parameter)); } var executionOptions = new ExecutionOptions { Schema = _schema, Query = parameter.Query, Inputs = parameter.Variables.ToInputs(), OperationName = parameter.OperationName, UserContext = new GraphQLUserContext { User = User }, ValidationRules = DocumentValidator.CoreRules().Concat(_validationRules).ToList() }; executionOptions.Listeners.Add(_listener); var result = await _documentExecuter .ExecuteAsync(executionOptions) .ConfigureAwait(false); if (result.Errors?.Count > 0) { return(BadRequest(result.Errors)); } return(Ok(result)); }
public async Task <IActionResult> Post([FromBody] GraphQLParameter query) { if (query == null) { throw new ArgumentNullException(nameof(query)); } var inputs = query.Variables.ToInputs(); var executionOptions = new ExecutionOptions { Schema = _schema, Query = query.Query, Inputs = inputs, ////UserContext = Request.Headers, ExposeExceptions = _utilityService.IsTrusted(), //UserContext = new GraphQLUserContext { Headers = Request.Headers } ThrowOnUnhandledException = true, }; //executionOptions.Listeners.Add(_serviceProvider.GetRequiredService<DataLoaderDocumentListener>()); var result = await _documentExecuter.ExecuteAsync(executionOptions).ConfigureAwait(false); //throw new Exception("Exception while fetching all the students from the storage."); if (result.Errors?.Count > 0) { return(BadRequest(result)); } return(Ok(result)); }
public async Task <string> ProcessAsync(GraphQLParameter query) { Inputs inputs = null; if (query.Variables != null) { var variables = query.Variables as JObject; var values = GetValue(variables) as Dictionary <string, object>; inputs = new Inputs(values); } var queryToExecute = query.Query; var result = await _executer.ExecuteAsync(_ => { _.Schema = _schema; _.Query = queryToExecute; _.OperationName = query.OperationName; _.Inputs = inputs; _.ComplexityConfiguration = new ComplexityConfiguration { MaxDepth = 15 }; }); return(_writer.Write(result)); }
public async Task <IActionResult> Post([FromBody] GraphQLParameter query) { var executionOptions = new ExecutionOptions { Schema = _schema, Query = query.Query, UserContext = _repository }; var result = await _documentExecuter.ExecuteAsync(executionOptions).ConfigureAwait(false); if (result.Errors?.Count > 0) { return(BadRequest(result.Errors)); } return(Ok(result)); }
public async Task <IActionResult> GraphQLPostQuery([FromBody] GraphQLParameter query) { if (query == null) { throw new ArgumentNullException(nameof(query)); } //var inputs = query.Variables.ToInputs(); var executionOptions = new ExecutionOptions { Schema = _schema, Query = query.Query }; var result = await _documentExecuter .ExecuteAsync(executionOptions).ConfigureAwait(false); if (result.Errors?.Count > 0) { return(BadRequest(result.Errors)); } return(Ok(result)); }
public async Task <IHttpActionResult> Query(CancellationToken cancellationToken) { string requestBody = await Request.Content.ReadAsStringAsync(); GraphQLParameter parameters = JsonConvert.DeserializeObject <GraphQLParameter>(requestBody); if (parameters == null) { return(BadRequest()); } var executionOptions = new ExecutionOptions { CancellationToken = cancellationToken, Schema = _schema, OperationName = parameters.OperationName, Query = parameters.Query, Inputs = parameters.Variables.ToInputs(), UserContext = User, #if DEBUG ExposeExceptions = true #else ExposeExceptions = _permissionService.IsPermitted(User, SystemPermissions.DetailedErrorMessage) #endif }; var result = await _documentExecuter.ExecuteAsync(executionOptions); if (result.Errors?.Count > 0) { return(new NegotiatedContentResult <ExecutionResult>(HttpStatusCode.BadRequest, result, this)); } return(Ok(result)); } }
public async Task <object> PostAsync([FromBody] GraphQLParameter query) => await _processor.ProcessAsync(query);