Пример #1
0
        public async Task <(object Data, object[]? Errors)> ExecuteAsync(GraphQLExecutionContext context, GraphQLQuery query)
        {
            Guard.NotNull(context, nameof(context));

            var result = await Executor.ExecuteAsync(execution =>
            {
                context.Setup(execution);

                execution.Schema = graphQLSchema;
                execution.Inputs = query.Inputs;
                execution.Query  = query.Query;
            });

            if (result.Errors != null && result.Errors.Any())
            {
                log.LogWarning(w => w
                               .WriteProperty("action", "GraphQL")
                               .WriteProperty("status", "Failed")
                               .WriteArray("errors", a =>
                {
                    foreach (var error in result.Errors)
                    {
                        a.WriteObject(error, (error, e) => e.WriteException(error));
                    }
                }));
            }

            var errors = result.Errors?.Select(x => (object)new { x.Message, x.Locations }).ToArray();

            return(result.Data, errors);
        }
Пример #2
0
        public async Task <(object Data, object[]? Errors)> ExecuteAsync(GraphQLExecutionContext context, GraphQLQuery query)
        {
            Guard.NotNull(context, nameof(context));

            var result = await new DocumentExecuter().ExecuteAsync(execution =>
            {
                context.Setup(execution);

                execution.Schema = graphQLSchema;
                execution.Inputs = query.Variables?.ToInputs();
                execution.Query  = query.Query;
            }).ConfigureAwait(false);

            return(result.Data, result.Errors?.Select(x => (object)new { x.Message, x.Locations }).ToArray());
        }