diff --git a/go.mod b/go.mod index 60ed561fc2..ee4dbf58c8 100644 --- a/go.mod +++ b/go.mod @@ -36,6 +36,6 @@ replace ( github.com/SierraSoftworks/connor => github.com/sourcenetwork/connor v1.0.3-0.20210312091030-4823d0411a12 // temp bug fixing - github.com/graphql-go/graphql => github.com/sourcenetwork/graphql v0.7.10-0.20211201133854-7e4c02b364c3 + github.com/graphql-go/graphql => github.com/sourcenetwork/graphql v0.7.10-0.20220122211559-2fe60b2360cc // github.com/graphql-go/graphql => github.com/sourcenetwork/graphql v0.7.10-0.20210211004004-07fce0d1409f ) diff --git a/go.sum b/go.sum index 93e0596beb..bfa5e2b896 100644 --- a/go.sum +++ b/go.sum @@ -913,8 +913,8 @@ github.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d/go.mod h1:Udh github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e/go.mod h1:HuIsMU8RRBOtsCgI77wP899iHVBQpCmg4ErYMZB+2IA= github.com/sourcenetwork/connor v1.0.3-0.20210312091030-4823d0411a12 h1:MELz22GoPeecJnBS5RT4i52bNY/wlpvbGW3L4lLuBTU= github.com/sourcenetwork/connor v1.0.3-0.20210312091030-4823d0411a12/go.mod h1:IimP/qkAJro1hXbVA8xOMDdkUeWkVw8rF40XrZq5YX0= -github.com/sourcenetwork/graphql v0.7.10-0.20211201133854-7e4c02b364c3 h1:tlzloRd2CwVQmUUKp+xnZ8ydOgI/D0h/BooFNrDFNGg= -github.com/sourcenetwork/graphql v0.7.10-0.20211201133854-7e4c02b364c3/go.mod h1:3Ty9EMes+aoxl8xS0CsuCGQZ4JEsOlC5yqQDLOKoBRw= +github.com/sourcenetwork/graphql v0.7.10-0.20220122211559-2fe60b2360cc h1:Jl+vKL3i+wE+T95aHU0wGVUWf17NxeS+1ku+IQT6ZdU= +github.com/sourcenetwork/graphql v0.7.10-0.20220122211559-2fe60b2360cc/go.mod h1:3Ty9EMes+aoxl8xS0CsuCGQZ4JEsOlC5yqQDLOKoBRw= github.com/spacemonkeygo/openssl v0.0.0-20181017203307-c2dcc5cca94a/go.mod h1:7AyxJNCJ7SBZ1MfVQCWD6Uqo2oubI2Eq2y2eqf+A5r0= github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572 h1:RC6RW7j+1+HkWaX/Yh71Ee5ZHaHYt7ZP4sQgUrm6cDU= github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572/go.mod h1:w0SWMsp6j9O/dk4/ZpIhL+3CkG8ofA2vuv7k+ltqUMc= diff --git a/query/graphql/schema/generate.go b/query/graphql/schema/generate.go index 6350ff465e..82dbc9ec87 100644 --- a/query/graphql/schema/generate.go +++ b/query/graphql/schema/generate.go @@ -117,6 +117,20 @@ func (g *Generator) fromAST(document *ast.Document) ([]*gql.Object, error) { return nil, err } + generatedFilterBaseArgs := make([]*gql.InputObject, len(g.typeDefs)) + for i, t := range g.typeDefs { + generatedFilterBaseArgs[i] = g.genTypeFilterBaseArgInput(t) + } + + for _, t := range generatedFilterBaseArgs { + g.manager.schema.AppendType(t) + } + + // resolve types + if err := g.manager.ResolveTypes(); err != nil { + return nil, err + } + // for each built type // generate query inputs queryType := g.manager.schema.QueryType() @@ -601,13 +615,9 @@ func (g *Generator) genTypeFilterArgInput(obj *gql.Object) *gql.InputObject { inputCfg := gql.InputObjectConfig{ Name: genTypeName(obj, "FilterArg"), } - fieldThunk := (gql.InputObjectConfigFieldMapThunk)(func() gql.InputObjectConfigFieldMap { + fieldThunk := (gql.InputObjectConfigFieldMapThunk)(func() (gql.InputObjectConfigFieldMap, error) { fields := gql.InputObjectConfigFieldMap{} - // @attention: do we need to explicitly add our "sub types" to the TypeMap - filterBaseArgType := g.genTypeFilterBaseArgInput(obj) - g.manager.schema.AppendType(filterBaseArgType) - // conditionals compoundListType := &gql.InputObjectFieldConfig{ Type: gql.NewList(selfRefType), @@ -640,7 +650,7 @@ func (g *Generator) genTypeFilterArgInput(obj *gql.Object) *gql.InputObject { // fmt.Println("#####################") // spew.Dump(fields) - return fields + return fields, nil }) // add the fields thunker @@ -711,7 +721,7 @@ func (g *Generator) genTypeOrderArgInput(obj *gql.Object) *gql.InputObject { inputCfg := gql.InputObjectConfig{ Name: genTypeName(obj, "OrderArg"), } - fieldThunk := (gql.InputObjectConfigFieldMapThunk)(func() gql.InputObjectConfigFieldMap { + fieldThunk := (gql.InputObjectConfigFieldMapThunk)(func() (gql.InputObjectConfigFieldMap, error) { fields := gql.InputObjectConfigFieldMap{} for f, field := range obj.Fields() { @@ -729,7 +739,7 @@ func (g *Generator) genTypeOrderArgInput(obj *gql.Object) *gql.InputObject { } } - return fields + return fields, nil }) inputCfg.Fields = fieldThunk