public async Task InvokeAsync(HttpContext context) { var query = pathResolver.Parse(context.Request.Path); if (query.IsHandled && context.Request.Method.Equals("GET")) { context.Response.ContentType = "application/json"; context.Response.StatusCode = 200; string authToken = GetAuthorizarionToken(context); if (query.NodeType != null) { nodeSerializer.StreamSchema(query.NodeType, authToken, context.Response.Body); } else { nodeSerializer.WriteValue(context.Response.Body, authToken, factory.RegisterdTypeNames()); } await context.Response.Body.FlushAsync(); } else { await _next(context); } }
//private readonly IContainer container; //private readonly INodeTypeFactory factory; public NodeQuery(IContainer container, INodeTypeFactory factory) { //this.container = container; //this.factory = factory; var nodeResolver = new NodeResolver(container); foreach (var typeName in factory.RegisterdTypeNames()) { var type = factory.GetTypeByName(typeName); var ft = new FieldType() { Arguments = new QueryArguments( new QueryArgument <NonNullGraphType <StringGraphType> > { Name = "id", Description = "id of the node" } ), Resolver = nodeResolver, Name = typeName, Type = type, ResolvedType = new NodeGraphType(typeName, type) }; fields.Add(ft); } IsTypeOf = type => type is INode; }
private void RegisterNodeTypes() { var nodeResolver = new NodeResolver(container); foreach (var typeName in factory.RegisterdTypeNames()) { var type = factory.GetTypeByName(typeName); AddField(new FieldType() { Arguments = GetIdQuery(), Resolver = nodeResolver, Name = typeName, Type = type, ResolvedType = new NodeReflectionGraphType(typeName, type, container) }); } }
public void GetAll() { SendOkJson(); _serializer.WriteValue(Response.Body, GetToken(), _factory.RegisterdTypeNames()); }