func Graphql(p GraphqlParams, resultChannel chan *types.GraphQLResult) { source := source.NewSource(&source.Source{ Body: p.RequestString, Name: "GraphQL request", }) AST, err := parser.Parse(parser.ParseParams{Source: source}) if err != nil { result := types.GraphQLResult{ Errors: graphqlerrors.FormatErrors(err), } resultChannel <- &result return } validationResult := validator.ValidateDocument(p.Schema, AST) if !validationResult.IsValid { result := types.GraphQLResult{ Errors: validationResult.Errors, } resultChannel <- &result return } else { ep := executor.ExecuteParams{ Schema: p.Schema, Root: p.RootObject, AST: AST, Ctx: p.Ctx, OperationName: p.OperationName, Args: p.VariableValues, } executor.Execute(ep, resultChannel) return } }
func Execute(t *testing.T, ep executor.ExecuteParams) *types.GraphQLResult { resultChannel := make(chan *types.GraphQLResult) go executor.Execute(ep, resultChannel) result := <-resultChannel return result }