本文整理汇总了Golang中github.com/chris-ramon/graphql-go/types.NewGraphQLObjectType函数的典型用法代码示例。如果您正苦于以下问题:Golang NewGraphQLObjectType函数的具体用法?Golang NewGraphQLObjectType怎么用?Golang NewGraphQLObjectType使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了NewGraphQLObjectType函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: init
func init() {
nodeTestUserType = types.NewGraphQLObjectType(types.GraphQLObjectTypeConfig{
Name: "User",
Fields: types.GraphQLFieldConfigMap{
"id": &types.GraphQLFieldConfig{
Type: types.NewGraphQLNonNull(types.GraphQLID),
},
"name": &types.GraphQLFieldConfig{
Type: types.GraphQLString,
},
},
Interfaces: []*types.GraphQLInterfaceType{nodeTestDef.NodeInterface},
})
nodeTestPhotoType = types.NewGraphQLObjectType(types.GraphQLObjectTypeConfig{
Name: "Photo",
Fields: types.GraphQLFieldConfigMap{
"id": &types.GraphQLFieldConfig{
Type: types.NewGraphQLNonNull(types.GraphQLID),
},
"width": &types.GraphQLFieldConfig{
Type: types.GraphQLInt,
},
},
Interfaces: []*types.GraphQLInterfaceType{nodeTestDef.NodeInterface},
})
nodeTestSchema, _ = types.NewGraphQLSchema(types.GraphQLSchemaConfig{
Query: nodeTestQueryType,
})
}
开发者ID:TribeMedia,项目名称:graphql-relay-go,代码行数:30,代码来源:node_test.go
示例2: init
func init() {
globalIDTestUserType = types.NewGraphQLObjectType(types.GraphQLObjectTypeConfig{
Name: "User",
Fields: types.GraphQLFieldConfigMap{
"id": gqlrelay.GlobalIdField("User", nil),
"name": &types.GraphQLFieldConfig{
Type: types.GraphQLString,
},
},
Interfaces: []*types.GraphQLInterfaceType{globalIDTestDef.NodeInterface},
})
photoIdFetcher := func(obj interface{}, info types.GraphQLResolveInfo) string {
switch obj := obj.(type) {
case *photo2:
return fmt.Sprintf("%v", obj.PhotoId)
}
return ""
}
globalIDTestPhotoType = types.NewGraphQLObjectType(types.GraphQLObjectTypeConfig{
Name: "Photo",
Fields: types.GraphQLFieldConfigMap{
"id": gqlrelay.GlobalIdField("Photo", photoIdFetcher),
"width": &types.GraphQLFieldConfig{
Type: types.GraphQLInt,
},
},
Interfaces: []*types.GraphQLInterfaceType{globalIDTestDef.NodeInterface},
})
globalIDTestSchema, _ = types.NewGraphQLSchema(types.GraphQLSchemaConfig{
Query: globalIDTestQueryType,
})
}
开发者ID:TribeMedia,项目名称:graphql-relay-go,代码行数:33,代码来源:node_global_test.go
示例3: schemaWithArgOfType
func schemaWithArgOfType(ttype types.GraphQLType) (types.GraphQLSchema, error) {
badObject := types.NewGraphQLObjectType(types.GraphQLObjectTypeConfig{
Name: "BadObject",
Fields: types.GraphQLFieldConfigMap{
"badField": &types.GraphQLFieldConfig{
Type: types.GraphQLString,
Args: types.GraphQLFieldConfigArgumentMap{
"badArg": &types.GraphQLArgumentConfig{
Type: ttype,
},
},
},
},
})
return types.NewGraphQLSchema(types.GraphQLSchemaConfig{
Query: types.NewGraphQLObjectType(types.GraphQLObjectTypeConfig{
Name: "Query",
Fields: types.GraphQLFieldConfigMap{
"f": &types.GraphQLFieldConfig{
Type: badObject,
},
},
}),
})
}
开发者ID:EmergentBehavior,项目名称:graphql-go,代码行数:26,代码来源:validation_test.go
示例4: init
func init() {
postType = types.NewGraphQLObjectType(types.GraphQLObjectTypeConfig{
Name: "Post",
Fields: types.GraphQLFieldConfigMap{
// Define `id` field as a Relay GlobalID field.
// It helps with translating your GraphQL object's id into a global id
// For eg:
// For a `Post` type, with an id of `1`, it's global id will be `UG9zdDox`
// which is a base64 encoded version of `Post:1` string
// We will explore more in the next part of this series.
"id": gqlrelay.GlobalIdField("Post", nil),
"text": &types.GraphQLFieldConfig{
Type: types.GraphQLString,
},
},
})
queryType = types.NewGraphQLObjectType(types.GraphQLObjectTypeConfig{
Name: "Query",
Fields: types.GraphQLFieldConfigMap{
"latestPost": &types.GraphQLFieldConfig{
Type: postType,
Resolve: func(p types.GQLFRParams) interface{} {
return GetLatestPost()
},
},
},
})
Schema, _ = types.NewGraphQLSchema(types.GraphQLSchemaConfig{
Query: queryType,
})
}
开发者ID:learn-golang-graphql-relay,项目名称:hello-world-relay-part-1,代码行数:34,代码来源:schema.go
示例5: TestUsesTheMutationSchemaForQueries
func TestUsesTheMutationSchemaForQueries(t *testing.T) {
doc := `query Q { a } mutation M { c }`
data := map[string]interface{}{
"a": "b",
"c": "d",
}
expected := &types.GraphQLResult{
Data: map[string]interface{}{
"c": "d",
},
}
schema, err := types.NewGraphQLSchema(types.GraphQLSchemaConfig{
Query: types.NewGraphQLObjectType(types.GraphQLObjectTypeConfig{
Name: "Q",
Fields: types.GraphQLFieldConfigMap{
"a": &types.GraphQLFieldConfig{
Type: types.GraphQLString,
},
},
}),
Mutation: types.NewGraphQLObjectType(types.GraphQLObjectTypeConfig{
Name: "M",
Fields: types.GraphQLFieldConfigMap{
"c": &types.GraphQLFieldConfig{
Type: types.GraphQLString,
},
},
}),
})
if err != nil {
t.Fatalf("Error in schema %v", err.Error())
}
// parse query
ast := testutil.Parse(t, doc)
// execute
ep := executor.ExecuteParams{
Schema: schema,
AST: ast,
Root: data,
OperationName: "M",
}
result := testutil.Execute(t, ep)
if len(result.Errors) > 0 {
t.Fatalf("wrong result, unexpected errors: %v", result.Errors)
}
if !reflect.DeepEqual(expected, result) {
t.Fatalf("Unexpected result, Diff: %v", testutil.Diff(expected, result))
}
}
开发者ID:tallstreet,项目名称:graphql-go,代码行数:54,代码来源:executor_test.go
示例6:
func TestTypeSystem_SchemaMustContainUniquelyNamedTypes_RejectsASchemaWhichHaveSameNamedObjectsImplementingAnInterface(t *testing.T) {
anotherInterface := types.NewGraphQLInterfaceType(types.GraphQLInterfaceTypeConfig{
Name: "AnotherInterface",
ResolveType: func(value interface{}, info types.GraphQLResolveInfo) *types.GraphQLObjectType {
return nil
},
Fields: types.GraphQLFieldConfigMap{
"f": &types.GraphQLFieldConfig{
Type: types.GraphQLString,
},
},
})
_ = types.NewGraphQLObjectType(types.GraphQLObjectTypeConfig{
Name: "BadObject",
Interfaces: []*types.GraphQLInterfaceType{
anotherInterface,
},
Fields: types.GraphQLFieldConfigMap{
"f": &types.GraphQLFieldConfig{
Type: types.GraphQLString,
},
},
})
_ = types.NewGraphQLObjectType(types.GraphQLObjectTypeConfig{
Name: "BadObject",
Interfaces: []*types.GraphQLInterfaceType{
anotherInterface,
},
Fields: types.GraphQLFieldConfigMap{
"f": &types.GraphQLFieldConfig{
Type: types.GraphQLString,
},
},
})
queryType := types.NewGraphQLObjectType(types.GraphQLObjectTypeConfig{
Name: "Query",
Fields: types.GraphQLFieldConfigMap{
"iface": &types.GraphQLFieldConfig{
Type: anotherInterface,
},
},
})
_, err := types.NewGraphQLSchema(types.GraphQLSchemaConfig{
Query: queryType,
})
expectedError := `Schema must contain unique named types but contains multiple types named "BadObject".`
if err == nil || err.Error() != expectedError {
t.Fatalf("Expected error: %v, got %v", expectedError, err)
}
}
开发者ID:EmergentBehavior,项目名称:graphql-go,代码行数:51,代码来源:validation_test.go
示例7: TestDoesNotIncludeIllegalFieldsInOutput
func TestDoesNotIncludeIllegalFieldsInOutput(t *testing.T) {
doc := `mutation M {
thisIsIllegalDontIncludeMe
}`
expected := &types.GraphQLResult{
Data: map[string]interface{}{},
}
schema, err := types.NewGraphQLSchema(types.GraphQLSchemaConfig{
Query: types.NewGraphQLObjectType(types.GraphQLObjectTypeConfig{
Name: "Q",
Fields: types.GraphQLFieldConfigMap{
"a": &types.GraphQLFieldConfig{
Type: types.GraphQLString,
},
},
}),
Mutation: types.NewGraphQLObjectType(types.GraphQLObjectTypeConfig{
Name: "M",
Fields: types.GraphQLFieldConfigMap{
"c": &types.GraphQLFieldConfig{
Type: types.GraphQLString,
},
},
}),
})
if err != nil {
t.Fatalf("Error in schema %v", err.Error())
}
// parse query
ast := testutil.Parse(t, doc)
// execute
ep := executor.ExecuteParams{
Schema: schema,
AST: ast,
}
result := testutil.Execute(t, ep)
if len(result.Errors) != 0 {
t.Fatalf("wrong result, expected len(%v) errors, got len(%v)", len(expected.Errors), len(result.Errors))
}
if !reflect.DeepEqual(expected, result) {
t.Fatalf("Unexpected result, Diff: %v", testutil.Diff(expected, result))
}
}
开发者ID:tallstreet,项目名称:graphql-go,代码行数:48,代码来源:executor_test.go
示例8: TestTypeSystem_SchemaMustContainUniquelyNamedTypes_RejectsASchemaWhichRedefinesABuiltInType
func TestTypeSystem_SchemaMustContainUniquelyNamedTypes_RejectsASchemaWhichRedefinesABuiltInType(t *testing.T) {
fakeString := types.NewGraphQLScalarType(types.GraphQLScalarTypeConfig{
Name: "String",
Serialize: func(value interface{}) interface{} {
return nil
},
})
queryType := types.NewGraphQLObjectType(types.GraphQLObjectTypeConfig{
Name: "Query",
Fields: types.GraphQLFieldConfigMap{
"normal": &types.GraphQLFieldConfig{
Type: types.GraphQLString,
},
"fake": &types.GraphQLFieldConfig{
Type: fakeString,
},
},
})
_, err := types.NewGraphQLSchema(types.GraphQLSchemaConfig{
Query: queryType,
})
expectedError := `Schema must contain unique named types but contains multiple types named "String".`
if err == nil || err.Error() != expectedError {
t.Fatalf("Expected error: %v, got %v", expectedError, err)
}
}
开发者ID:EmergentBehavior,项目名称:graphql-go,代码行数:27,代码来源:validation_test.go
示例9: TestTypeSystem_ObjectsMustAdhereToInterfaceTheyImplement_RejectsAnObjectMissingAnInterfaceArgument
func TestTypeSystem_ObjectsMustAdhereToInterfaceTheyImplement_RejectsAnObjectMissingAnInterfaceArgument(t *testing.T) {
anotherInterface := types.NewGraphQLInterfaceType(types.GraphQLInterfaceTypeConfig{
Name: "AnotherInterface",
ResolveType: func(value interface{}, info types.GraphQLResolveInfo) *types.GraphQLObjectType {
return nil
},
Fields: types.GraphQLFieldConfigMap{
"field": &types.GraphQLFieldConfig{
Type: types.GraphQLString,
Args: types.GraphQLFieldConfigArgumentMap{
"input": &types.GraphQLArgumentConfig{
Type: types.GraphQLString,
},
},
},
},
})
anotherObject := types.NewGraphQLObjectType(types.GraphQLObjectTypeConfig{
Name: "AnotherObject",
Interfaces: []*types.GraphQLInterfaceType{anotherInterface},
Fields: types.GraphQLFieldConfigMap{
"field": &types.GraphQLFieldConfig{
Type: types.GraphQLString,
},
},
})
_, err := schemaWithObjectFieldOfType(anotherObject)
expectedError := `AnotherInterface.field expects argument "input" but AnotherObject.field does not provide it.`
if err == nil || err.Error() != expectedError {
t.Fatalf("Expected error: %v, got %v", expectedError, err)
}
}
开发者ID:EmergentBehavior,项目名称:graphql-go,代码行数:32,代码来源:validation_test.go
示例10: TestIntrospection_IdentifiesDeprecatedFields
func TestIntrospection_IdentifiesDeprecatedFields(t *testing.T) {
testType := types.NewGraphQLObjectType(types.GraphQLObjectTypeConfig{
Name: "TestType",
Fields: types.GraphQLFieldConfigMap{
"nonDeprecated": &types.GraphQLFieldConfig{
Type: types.GraphQLString,
},
"deprecated": &types.GraphQLFieldConfig{
Type: types.GraphQLString,
DeprecationReason: "Removed in 1.0",
},
},
})
schema, err := types.NewGraphQLSchema(types.GraphQLSchemaConfig{
Query: testType,
})
if err != nil {
t.Fatalf("Error creating GraphQLSchema: %v", err.Error())
}
query := `
{
__type(name: "TestType") {
name
fields(includeDeprecated: true) {
name
isDeprecated,
deprecationReason
}
}
}
`
expected := &types.GraphQLResult{
Data: map[string]interface{}{
"__type": map[string]interface{}{
"name": "TestType",
"fields": []interface{}{
map[string]interface{}{
"name": "nonDeprecated",
"isDeprecated": false,
"deprecationReason": nil,
},
map[string]interface{}{
"name": "deprecated",
"isDeprecated": true,
"deprecationReason": "Removed in 1.0",
},
},
},
},
}
result := graphql(t, gql.GraphqlParams{
Schema: schema,
RequestString: query,
})
if !testutil.ContainSubset(result.Data.(map[string]interface{}), expected.Data.(map[string]interface{})) {
t.Fatalf("Unexpected result, Diff: %v", testutil.Diff(expected, result))
}
}
开发者ID:EmergentBehavior,项目名称:graphql-go,代码行数:59,代码来源:introspection_test.go
示例11: TestCorrectlyThreadsArguments
func TestCorrectlyThreadsArguments(t *testing.T) {
query := `
query Example {
b(numArg: 123, stringArg: "foo")
}
`
var resolvedArgs map[string]interface{}
schema, err := types.NewGraphQLSchema(types.GraphQLSchemaConfig{
Query: types.NewGraphQLObjectType(types.GraphQLObjectTypeConfig{
Name: "Type",
Fields: types.GraphQLFieldConfigMap{
"b": &types.GraphQLFieldConfig{
Args: types.GraphQLFieldConfigArgumentMap{
"numArg": &types.GraphQLArgumentConfig{
Type: types.GraphQLInt,
},
"stringArg": &types.GraphQLArgumentConfig{
Type: types.GraphQLString,
},
},
Type: types.GraphQLString,
Resolve: func(ctx context.Context, p types.GQLFRParams) interface{} {
resolvedArgs = p.Args
return resolvedArgs
},
},
},
}),
})
if err != nil {
t.Fatalf("Error in schema %v", err.Error())
}
// parse query
ast := testutil.Parse(t, query)
// execute
ep := executor.ExecuteParams{
Schema: schema,
AST: ast,
}
result := testutil.Execute(t, ep)
if len(result.Errors) > 0 {
t.Fatalf("wrong result, unexpected errors: %v", result.Errors)
}
expectedNum := 123
expectedString := "foo"
if resolvedArgs["numArg"] != expectedNum {
t.Fatalf("Expected args.numArg to equal `%v`, got `%v`", expectedNum, resolvedArgs["numArg"])
}
if resolvedArgs["stringArg"] != expectedString {
t.Fatalf("Expected args.stringArg to equal `%v`, got `%v`", expectedNum, resolvedArgs["stringArg"])
}
}
开发者ID:tallstreet,项目名称:graphql-go,代码行数:58,代码来源:executor_test.go
示例12: ConnectionDefinitions
func ConnectionDefinitions(config ConnectionConfig) *GraphQLConnectionDefinitions {
edgeType := types.NewGraphQLObjectType(types.GraphQLObjectTypeConfig{
Name: config.Name + "Edge",
Description: "An edge in a connection",
Fields: types.GraphQLFieldConfigMap{
"node": &types.GraphQLFieldConfig{
Type: config.NodeType,
Description: "The item at the end of the edge",
},
"cursor": &types.GraphQLFieldConfig{
Type: types.NewGraphQLNonNull(types.GraphQLString),
Description: " cursor for use in pagination",
},
},
})
for fieldName, fieldConfig := range config.EdgeFields {
edgeType.AddFieldConfig(fieldName, fieldConfig)
}
connectionType := types.NewGraphQLObjectType(types.GraphQLObjectTypeConfig{
Name: config.Name + "Connection",
Description: "A connection to a list of items.",
Fields: types.GraphQLFieldConfigMap{
"pageInfo": &types.GraphQLFieldConfig{
Type: types.NewGraphQLNonNull(pageInfoType),
Description: "Information to aid in pagination.",
},
"edges": &types.GraphQLFieldConfig{
Type: types.NewGraphQLList(edgeType),
Description: "Information to aid in pagination.",
},
},
})
for fieldName, fieldConfig := range config.ConnectionFields {
connectionType.AddFieldConfig(fieldName, fieldConfig)
}
return &GraphQLConnectionDefinitions{
EdgeType: edgeType,
ConnectionType: connectionType,
}
}
开发者ID:TribeMedia,项目名称:graphql-relay-go,代码行数:44,代码来源:connection.go
示例13: TestTypeSystem_ObjectsMustHaveFields_RejectsAnObjectTypeWithMissingFields
func TestTypeSystem_ObjectsMustHaveFields_RejectsAnObjectTypeWithMissingFields(t *testing.T) {
badObject := types.NewGraphQLObjectType(types.GraphQLObjectTypeConfig{
Name: "SomeObject",
})
_, err := schemaWithFieldType(badObject)
expectedError := `SomeObject fields must be an object with field names as keys or a function which return such an object.`
if err == nil || err.Error() != expectedError {
t.Fatalf("Expected error: %v, got %v", expectedError, err)
}
}
开发者ID:EmergentBehavior,项目名称:graphql-go,代码行数:10,代码来源:validation_test.go
示例14: TestTypeSystem_DefinitionExample_IncludesInterfacesThunkSubtypesInTheTypeMap
func TestTypeSystem_DefinitionExample_IncludesInterfacesThunkSubtypesInTheTypeMap(t *testing.T) {
someInterface := types.NewGraphQLInterfaceType(types.GraphQLInterfaceTypeConfig{
Name: "SomeInterface",
Fields: types.GraphQLFieldConfigMap{
"f": &types.GraphQLFieldConfig{
Type: types.GraphQLInt,
},
},
})
someSubType := types.NewGraphQLObjectType(types.GraphQLObjectTypeConfig{
Name: "SomeSubtype",
Fields: types.GraphQLFieldConfigMap{
"f": &types.GraphQLFieldConfig{
Type: types.GraphQLInt,
},
},
Interfaces: (types.GraphQLInterfacesThunk)(func() []*types.GraphQLInterfaceType {
return []*types.GraphQLInterfaceType{someInterface}
}),
IsTypeOf: func(value interface{}, info types.GraphQLResolveInfo) bool {
return true
},
})
schema, err := types.NewGraphQLSchema(types.GraphQLSchemaConfig{
Query: types.NewGraphQLObjectType(types.GraphQLObjectTypeConfig{
Name: "Query",
Fields: types.GraphQLFieldConfigMap{
"iface": &types.GraphQLFieldConfig{
Type: someInterface,
},
},
}),
})
if err != nil {
t.Fatalf("unexpected error, got: %v", err)
}
if schema.GetType("SomeSubtype") != someSubType {
t.Fatalf(`schema.GetType("SomeSubtype") expected to equal someSubType, got: %v`, schema.GetType("SomeSubtype"))
}
}
开发者ID:EmergentBehavior,项目名称:graphql-go,代码行数:42,代码来源:definition_test.go
示例15: schemaWithObjectFieldOfType
func schemaWithObjectFieldOfType(fieldType types.GraphQLInputType) (types.GraphQLSchema, error) {
badObjectType := types.NewGraphQLObjectType(types.GraphQLObjectTypeConfig{
Name: "BadObject",
Fields: types.GraphQLFieldConfigMap{
"badField": &types.GraphQLFieldConfig{
Type: fieldType,
},
},
})
return types.NewGraphQLSchema(types.GraphQLSchemaConfig{
Query: types.NewGraphQLObjectType(types.GraphQLObjectTypeConfig{
Name: "Query",
Fields: types.GraphQLFieldConfigMap{
"f": &types.GraphQLFieldConfig{
Type: badObjectType,
},
},
}),
})
}
开发者ID:EmergentBehavior,项目名称:graphql-go,代码行数:21,代码来源:validation_test.go
示例16: schemaWithFieldType
func schemaWithFieldType(ttype types.GraphQLOutputType) (types.GraphQLSchema, error) {
return types.NewGraphQLSchema(types.GraphQLSchemaConfig{
Query: types.NewGraphQLObjectType(types.GraphQLObjectTypeConfig{
Name: "Query",
Fields: types.GraphQLFieldConfigMap{
"f": &types.GraphQLFieldConfig{
Type: ttype,
},
},
}),
})
}
开发者ID:EmergentBehavior,项目名称:graphql-go,代码行数:12,代码来源:validation_test.go
示例17: schemaWithObjectImplementingType
func schemaWithObjectImplementingType(implementedType *types.GraphQLInterfaceType) (types.GraphQLSchema, error) {
badObjectType := types.NewGraphQLObjectType(types.GraphQLObjectTypeConfig{
Name: "BadObject",
Interfaces: []*types.GraphQLInterfaceType{implementedType},
Fields: types.GraphQLFieldConfigMap{
"f": &types.GraphQLFieldConfig{
Type: types.GraphQLString,
},
},
})
return types.NewGraphQLSchema(types.GraphQLSchemaConfig{
Query: types.NewGraphQLObjectType(types.GraphQLObjectTypeConfig{
Name: "Query",
Fields: types.GraphQLFieldConfigMap{
"f": &types.GraphQLFieldConfig{
Type: badObjectType,
},
},
}),
})
}
开发者ID:EmergentBehavior,项目名称:graphql-go,代码行数:22,代码来源:validation_test.go
示例18: TestTypeSystem_ObjectsMustHaveFields_AcceptsAnObjectTypeWithFieldsObject
func TestTypeSystem_ObjectsMustHaveFields_AcceptsAnObjectTypeWithFieldsObject(t *testing.T) {
_, err := schemaWithFieldType(types.NewGraphQLObjectType(types.GraphQLObjectTypeConfig{
Name: "SomeObject",
Fields: types.GraphQLFieldConfigMap{
"f": &types.GraphQLFieldConfig{
Type: types.GraphQLString,
},
},
}))
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
}
开发者ID:EmergentBehavior,项目名称:graphql-go,代码行数:13,代码来源:validation_test.go
示例19: MutationWithClientMutationId
func MutationWithClientMutationId(config MutationConfig) *types.GraphQLFieldConfig {
augmentedInputFields := config.InputFields
if augmentedInputFields == nil {
augmentedInputFields = types.InputObjectConfigFieldMap{}
}
augmentedInputFields["clientMutationId"] = &types.InputObjectFieldConfig{
Type: types.NewGraphQLNonNull(types.GraphQLString),
}
augmentedOutputFields := config.OutputFields
if augmentedOutputFields == nil {
augmentedOutputFields = types.GraphQLFieldConfigMap{}
}
augmentedOutputFields["clientMutationId"] = &types.GraphQLFieldConfig{
Type: types.NewGraphQLNonNull(types.GraphQLString),
}
inputType := types.NewGraphQLInputObjectType(types.InputObjectConfig{
Name: config.Name + "Input",
Fields: augmentedInputFields,
})
outputType := types.NewGraphQLObjectType(types.GraphQLObjectTypeConfig{
Name: config.Name + "Payload",
Fields: augmentedOutputFields,
})
return &types.GraphQLFieldConfig{
Type: outputType,
Args: types.GraphQLFieldConfigArgumentMap{
"input": &types.GraphQLArgumentConfig{
Type: types.NewGraphQLNonNull(inputType),
},
},
Resolve: func(p types.GQLFRParams) interface{} {
if config.MutateAndGetPayload == nil {
return nil
}
input := map[string]interface{}{}
if inputVal, ok := p.Args["input"]; ok {
if inputVal, ok := inputVal.(map[string]interface{}); ok {
input = inputVal
}
}
payload := config.MutateAndGetPayload(input, p.Info)
if clientMutationId, ok := input["clientMutationId"]; ok {
payload["clientMutationId"] = clientMutationId
}
return payload
},
}
}
开发者ID:TribeMedia,项目名称:graphql-relay-go,代码行数:50,代码来源:mutation.go
示例20: TestTypeSystem_SchemaMustContainUniquelyNamedTypes_RejectsASchemaWhichDefinesAnObjectTypeTwice
func TestTypeSystem_SchemaMustContainUniquelyNamedTypes_RejectsASchemaWhichDefinesAnObjectTypeTwice(t *testing.T) {
a := types.NewGraphQLObjectType(types.GraphQLObjectTypeConfig{
Name: "SameName",
Fields: types.GraphQLFieldConfigMap{
"f": &types.GraphQLFieldConfig{
Type: types.GraphQLString,
},
},
})
b := types.NewGraphQLObjectType(types.GraphQLObjectTypeConfig{
Name: "SameName",
Fields: types.GraphQLFieldConfigMap{
"f": &types.GraphQLFieldConfig{
Type: types.GraphQLString,
},
},
})
queryType := types.NewGraphQLObjectType(types.GraphQLObjectTypeConfig{
Name: "Query",
Fields: types.GraphQLFieldConfigMap{
"a": &types.GraphQLFieldConfig{
Type: a,
},
"b": &types.GraphQLFieldConfig{
Type: b,
},
},
})
_, err := types.NewGraphQLSchema(types.GraphQLSchemaConfig{
Query: queryType,
})
expectedError := `Schema must contain unique named types but contains multiple types named "SameName".`
if err == nil || err.Error() != expectedError {
t.Fatalf("Expected error: %v, got %v", expectedError, err)
}
}
开发者ID:EmergentBehavior,项目名称:graphql-go,代码行数:37,代码来源:validation_test.go
注:本文中的github.com/chris-ramon/graphql-go/types.NewGraphQLObjectType函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论