aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/github.com/graphql-go/graphql/graphql.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/graphql-go/graphql/graphql.go')
-rw-r--r--vendor/github.com/graphql-go/graphql/graphql.go63
1 files changed, 63 insertions, 0 deletions
diff --git a/vendor/github.com/graphql-go/graphql/graphql.go b/vendor/github.com/graphql-go/graphql/graphql.go
new file mode 100644
index 00000000..c9bdb168
--- /dev/null
+++ b/vendor/github.com/graphql-go/graphql/graphql.go
@@ -0,0 +1,63 @@
+package graphql
+
+import (
+ "context"
+
+ "github.com/graphql-go/graphql/gqlerrors"
+ "github.com/graphql-go/graphql/language/parser"
+ "github.com/graphql-go/graphql/language/source"
+)
+
+type Params struct {
+ // The GraphQL type system to use when validating and executing a query.
+ Schema Schema
+
+ // A GraphQL language formatted string representing the requested operation.
+ RequestString string
+
+ // The value provided as the first argument to resolver functions on the top
+ // level type (e.g. the query object type).
+ RootObject map[string]interface{}
+
+ // A mapping of variable name to runtime value to use for all variables
+ // defined in the requestString.
+ VariableValues map[string]interface{}
+
+ // The name of the operation to use if requestString contains multiple
+ // possible operations. Can be omitted if requestString contains only
+ // one operation.
+ OperationName string
+
+ // Context may be provided to pass application-specific per-request
+ // information to resolve functions.
+ Context context.Context
+}
+
+func Do(p Params) *Result {
+ source := source.NewSource(&source.Source{
+ Body: []byte(p.RequestString),
+ Name: "GraphQL request",
+ })
+ AST, err := parser.Parse(parser.ParseParams{Source: source})
+ if err != nil {
+ return &Result{
+ Errors: gqlerrors.FormatErrors(err),
+ }
+ }
+ validationResult := ValidateDocument(&p.Schema, AST, nil)
+
+ if !validationResult.IsValid {
+ return &Result{
+ Errors: validationResult.Errors,
+ }
+ }
+
+ return Execute(ExecuteParams{
+ Schema: p.Schema,
+ Root: p.RootObject,
+ AST: AST,
+ OperationName: p.OperationName,
+ Args: p.VariableValues,
+ Context: p.Context,
+ })
+}