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);
            }
        }
Exemple #2
0
        //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;
        }
Exemple #3
0
        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)
                });
            }
        }
Exemple #4
0
 public void GetAll()
 {
     SendOkJson();
     _serializer.WriteValue(Response.Body, GetToken(), _factory.RegisterdTypeNames());
 }