public async Task <ActionResult> Post([FromBody] GraphQLQuery query) { var schema = new MySchema(); var inputs = query.Variables.ToInputs(); // 2 way to use graphql - // proper dotnet way, which gives you the authentication and authorization, // graphqL way. // 1. graphql way implemented in the service/database/graphql easy to implement - to run comment // ValidationRules, _.Schema = _newschema; // 2. .NET way, GraphQLModel folder - gives auhtentication and authorization implement - // comment _.Schema = schema.GraphQLSchema; and uncomment rest var result = await new DocumentExecuter().ExecuteAsync(_ => { _.Schema = schema.GraphQLSchema; // _.Schema = _newschema; _.Query = query.Query; _.OperationName = query.OperationName; _.Inputs = inputs; _.ExposeExceptions = true; //_.ValidationRules = new List<IValidationRule> { _validationRule }; _.UserContext = _httpContextAccessor.HttpContext.User; }); if (result.Errors?.Count > 0) { return(BadRequest(result.Errors)); } return(Ok(result)); }
public Task throw_loop_has_been_detected_for_use_derived_type() { var services = new SimpleContainer(); //Create a derived type FooType2 for FooType in type resolving services.Register <FooType>(() => new FooType2()); var schema = new MySchema(new SimpleContainerAdapter(services)); schema.Initialize(); //throw the 'A loop has been detected while registering schema types.' exception return(Task.CompletedTask); }
public async Task <ActionResult> Post([FromBody] GraphQLQuery query) { var schema = new MySchema(); var inputs = query.Variables.ToInputs(); var result = await new DocumentExecuter().ExecuteAsync(_ => { _.Schema = schema.GraphQLSchema; _.Query = query.Query; _.OperationName = query.OperationName; _.ExposeExceptions = true; _.Inputs = inputs; }); return(Ok(result)); }
public async Task<IActionResult> Post([FromBody] GraphQlQuery query) { var schema = new MySchema(); var inputs = new GraphQL.Inputs(query.Variables.AsDictionary());//.ToInputs(); var result = await new DocumentExecuter().ExecuteAsync( schema.GraphQlSchema, null, query.Query, query.OperationName, inputs); if (result.Errors?.Count > 0) { return BadRequest(); } return Ok(result); }
public async Task <ActionResult> Get() { var schema = new MySchema(); var result = await new DocumentExecuter().ExecuteAsync(_ => { _.Schema = schema.GraphQLSchema; _.Query = "{ collections { name } }";// query.Query; //_.OperationName = query.OperationName; //_.Inputs = inputs; }); if (result.Errors?.Count > 0) { return(BadRequest()); } return(Ok(result)); }
public async Task <ActionResult> Post([FromBody] GraphQLQuery query) { var schema = new MySchema(); var result = await new DocumentExecuter().ExecuteAsync(executionOptions => { executionOptions.Schema = schema.GraphQLSchema; executionOptions.Query = query.Query; executionOptions.OperationName = query.OperationName; }); if (result.Errors?.Count > 0) { result.Errors.ToList().ForEach(error => _logger.LogWarning($"{query.OperationName} with {query.Query} faulted by {error.Message}")); return(BadRequest()); } return(Ok(result)); }
public async Task <ActionResult> Post([FromBody] GraphQLQuery query) { var schema = new MySchema(); var inputs = query.Variables.ToInputs(); var result = await new DocumentExecuter().ExecuteAsync(_ => { _.Schema = schema.GraphQLSchema; _.Query = query.Query; _.OperationName = query.OperationName; _.Inputs = inputs; }); if (result.Errors?.Count > 0) { return(BadRequest()); } return(Ok(result)); }
public void ShouldTurnSchemaIemIntoDocument() { var schema = new MySchema { Id = 1, Text = "Some text", Date = new DateTime(2000, 1, 1), Long = 4294967296L, Guid = _guid, Enum = FieldIndex.Analyzed, NoStore = "YOOOOOOO" }; var document = schema.ToDocument(); document.GetField("Id").StringValue.Should().Be("1"); document.GetField("Text").StringValue.Should().Be("Some text"); var date = DateTime.ParseExact(document.GetField("Date").StringValue, Constants.QueryDateFormat, null); date.Should().Be(schema.Date); }
public async Task <ExecutionResult> GetResultAsync(GraphQLQuery query) { var start = DateTime.UtcNow; var inputs = query.Variables.As <Inputs>(); var schema = new MySchema(); ExecutionResult result = await new DocumentExecuter().ExecuteAsync(_ => { _.Schema = schema.GraphQLSchema; _.Query = query.Query; _.OperationName = query.OperationName; _.Inputs = inputs; _.EnableMetrics = true; }); result.EnrichWithApolloTracing(start); return(result); }
public async Task <object> GetResultAsync(JObject queryJObject) { var start = DateTime.UtcNow; GraphQLQuery query = queryJObject.ToObject <GraphQLQuery>(); var inputs = query.Variables?.ToInputs(); var schema = new MySchema(); var result = await new DocumentExecuter().ExecuteAsync(_ => { _.Schema = schema.GraphQLSchema; _.Query = query.Query; _.OperationName = query.OperationName; _.Inputs = inputs; _.ExposeExceptions = true; _.EnableMetrics = true; }); result.EnrichWithApolloTracing(start); return(result); }
public void ShouldConvertADocumentBackToTypeT() { var schema = new MySchema { Id = 1, Text = "Some text", Date = new DateTime(2000, 1, 1), Long = 4294967296L, Guid = _guid, Enum = FieldIndex.Analyzed, NoStore = "YOOOOOOO" }; var document = schema.ToDocument(); var item = document.ToSchema<MySchema>(); item.Id.Should().Be(1); item.Text.Should().Be("Some text"); item.Date.Should().Be(new DateTime(2000, 1, 1)); item.Long.Should().Be(4294967296L); item.Guid.Should().Be(_guid); item.Enum.Should().Be(FieldIndex.Analyzed); item.NoStore.Should().BeNull(); }