示例#1
0
        async Task <ExecutionResult> Execute(
            BeawreContext dbContext,
            string query,
            string operationName,
            JObject variables,
            CancellationToken cancellation)
        {
            var options = new ExecutionOptions
            {
                Schema            = schema,
                Query             = query,
                OperationName     = operationName,
                Inputs            = variables?.ToInputs(),
                UserContext       = dbContext,
                CancellationToken = cancellation,
#if (DEBUG)
                ExposeExceptions = true,
                EnableMetrics    = true,
#endif
            };

            var result = await executer.ExecuteAsync(options);

            if (result.Errors?.Count > 0)
            {
                Response.StatusCode = (int)HttpStatusCode.BadRequest;
            }
            return(result);
        }
示例#2
0
        public IActionResult Get(
            [FromQuery] string query,
            [FromQuery] string variables,
            [FromQuery] string operationName,
            [FromServices] BeawreContext dbContext,
            CancellationToken cancellation)
        {
            var jObject = ParseVariables(variables);

            return(Ok(Execute(dbContext, query, operationName, jObject, cancellation).Result.Data));
        }