async Task <ExecutionResult> Execute(Data.TaskContext dataContext, string query, string operationName, JObject variables, CancellationToken cancellation) { var executionOptions = new ExecutionOptions { Schema = schema, Query = query, OperationName = operationName, Inputs = variables?.ToInputs(), UserContext = dataContext, CancellationToken = cancellation, #if (DEBUG) ExposeExceptions = true, EnableMetrics = true, #endif }; var result = await executer.ExecuteAsync(executionOptions).ConfigureAwait(false); if (result.Errors?.Count > 0) { Response.StatusCode = (int)HttpStatusCode.BadRequest; } return(result); }
public Task <ExecutionResult> Post( [BindRequired, FromBody] PostBody body, [FromServices] Data.TaskContext dataContext, CancellationToken cancellation) { return(Execute(dataContext, body.Query, body.OperationName, body.Variables, cancellation)); }